AppUI自動化中的圖像識別的使用

2021-02-25 測試開發探秘

     人工智慧現在使用的越來越成熟了,如人臉識別,圖像識別等,在AppUI自動化測試中,也有越來越多的框架或是公司引入圖像識別技術來提高自動化測試的執行效率。圖像識別,是指利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象的技術,是應用深度學習算法的一種實踐應用。 現階段圖像識別技術一般分為人臉識別與商品識別,人臉識別主要運用在安全檢查、身份核驗與行動支付中;商品識別主要運用在商品流通過程中,特別是無人貨架、智能零售櫃等無人零售領域 。

        圖像的傳統識別流程分為四個步驟:圖像採集→圖像預處理→特徵提取→圖像識別。圖像識別軟體國外代表的有康耐視等,國內代表的有圖智能、海深科技等。另外在地理學中指將遙感圖像進行分類的技術。

一,測試框架中的圖像識別

     在我們做 App 自動化測試的時候,會發現很多場景下元素沒有 id、content-desc、text 等等屬性,並且有可能也會碰到由於開發採用的是自定義 View,View 中的元素也無法識別到,很多的自動化測試框架對此類場景束手無策。Appium 在 V1.9.0 中有給我們帶來了針對於圖像識別的全新圖片元素定位的方法:-image

具體使用方法可以參考:http://testingpai.com/article/1597824416789

      如果是公司自己做二次開發的自動化測試框架,可以根據業務需要自行集成圖像識別功能,方便在做AppUI自動化測試時,提高測試效率。

二,收費的圖像識別服務

       現在越來越多的公司都提供了雲服務,在服務的產品當中,都有圖像識別服務,如下所示:

當前提供圖像識別服務的雲有:

百度云:https://cloud.baidu.com/solution/aiplatform/index.html

阿里云:https://ai.aliyun.com/image?utm_content=se_1006839984

騰訊云:https://cloud.tencent.com/product/generalocr

商湯圖像識別:https://www.sensetime.com/cn/technology-detail?categoryId=30

      當你們公司需要引入圖像識別服務,來提高AppUI自動化測試效率時,就需要購買相應的服務。當得到對應的Key後,就可以通過調用相應的API來處理圖像識別需求,結合AppUI自動化測試框架,處理自動化實施過程中傳統框架無法操作的元素識別等操作。

三,APPUI中如何引用圖像識別

      在做APPUI自動化測試時,常規的做法就是:

   (1)引入自動化測試框架,如Appium;

  (2)藉助於編碼語言,通過對App元素的屬性,如resouce_id, Xpath, text等屬性定位要操作的元素;

  (3)根據測試用例的需求,對相應的元素做指定的操作,如:click,send_keys等。

     但在自動化測試執行過程中,就會遇到各種問題,如:

(1)被測試App元素屬性有變化,屬性被開發修改,打包的時候代碼混淆從而造成測試用例必須進行維護;

(2)測試用例執行完成,需要檢測的內容較多,定位檢測元素效率比較低等。

(3)被測App無法獲取元素屬性,傳統定位方法無法定位;

(4)App測試中喚起其他的應用,造成driver需要切換等。

    為了解決這樣的問題,引入圖像識別方法是最優的解決方案,而圖像識別解決的App通用操作有:

1,獲取頁面所有元素,檢測需要操作的元素

通過圖像識別功能,先將用例執行到需要操作的頁面;對當前頁面進行截屏,然後調用圖像識別功能,識別出當前頁面上的所有元素。接下來需要過濾出要操作的頁面元素,如,通過元素上的文字篩選元素;通過元素類別,如image,button來區分元素;通過位置來篩選元素,如:元素在屏幕右上角,則判斷元素的位置,x大於屏幕的一半,y小於屏幕的三分之一就是要查找的元素。找到要操作的元素後,執行需要的操作即可。

2,通過元素文字操作元素

一個應用無論從元素屬性,還是打包混淆來影響自動化測試,但是元素顯示的文字內容變化的頻率是相對來說要小的多。如果能通過元素的文案來操作元素,將是不錯的選擇。我們藉助於圖像識別法,可以識別出元素對應的文字所在的位置,然後使用driver.click(x,y),就可以單擊相應位置的元素。此方法可以執行單擊元素操作,當然也可以對輸入框輸入內容。如果對輸入框輸入內容的話,先單擊這個輸入框,讓其處於激活狀態,然後使用driver.sendKeys()輸入內容。

3,檢測測試結果

    當一個測試用例執行完成後,需要檢測一下用例的執行情況。此時可以通過封裝函數,獲取當前頁面的所有文字信息,然後檢測用例執行效果的關鍵文字,是否在當前頁面?如果在,則認為當前用例執行通過,如果不在則用例執行失敗。

    當然,如果用例關注的檢測點較多,或是關注頁面布局,圖片信息等,則可以採取圖像對比法。我們截取標準的頁面顯示,然後在執行完用例後,保存當前頁面與標準頁面做對比,設置相似度,如99%為測試通過,否則為測試失敗。但是此方法有一定的問題,不能做兼容性測試,不同的設備顯示的內容是不一樣的。

4,封裝業務操作

    在完成了上面的基本元素的圖像操作後,就可以根據你要測試的產品的業務邏輯,封裝一定的業務函數,從而提高代碼的通過性。如下:美團眾包的圖像識別法進入接單設置功能函數:

/**

* 進入接單設置頁

*/

public void enterOrderSetting()

{

   if(!checkEleByText("刷新列表"))

   {

       startWork();

   }

   Utils.sleep(3000);

   clickByText("接單設置");

   //處理首次進入的提醒

   if(checkEleByText("知道了"))

   {

       clickByText("知道了");

   }

   System.out.println("進入接單設置頁....");

  Utils.sleep(3000);

   driver.back();

}

四,AppUI圖像識別法使用注意事項

      圖像識別法雖然可以解決不少AppUI自動化存在的問題,但是我們也需要知道其劣勢,合理地與傳統的自動化測試框架配合,從而才能達到使我們的自動化測試工程執行效率最好,發揮最佳的使用用。

1,圖像識別的效率消耗

在引用語言,框架的圖像識別法時,需要先將當前頁面進行截圖,然後分析圖像上的元素,文案信息。無論是什麼圖像識別算法,都是有一定的效率消耗的,所以不能在測試用例中反覆引用圖像識別法,要根據業務操作,安排好執行策略,提高效率。

2,圖像識別的網絡消耗

     如果使用的是第三方提供的圖像識別服務,識別效率比我們自己的會高一些,但是就會有相應的網絡請求。過多的網絡請求,也會影響自動化測試的執行效率,同時開通的服務是按次收費的,如果測試安排的不合理,網絡和金錢的消耗會非常多。

3,合理結合傳統框架與圖像識別

在實施AppUI自動化測試時,先分析產品的情況,如果產品變化較小,元素屬性清晰,建議首先選擇通過元素屬性進行定位,如resouce_id。針對元素屬性變化較多,頁面無法抓取屬性(競對產品),H5頁面,跨App的操作,檢測元素內容較多,檢測對象是圖片等情況,就引入圖像識別法解決相應的問題。

五,總結

  本文介紹了如何在AppUI自動化測試中使用圖像識別法,此方法可以降低測試的維護成本,提高測試用例的執行效率。當然,也有一定的限制,可以根據公司的需要,可使用的資源來合理規劃你的自動化測試架構設計,將AppUI自動化真正地在業務中使用起來,發揮其有的使用。

相關焦點

  • 【前沿技術】清華大學自動化系張長水教授:圖像識別與機器學習
    6月8日,清華大學自動化系教授張長水也在清華大學發表了精彩演講。整理演講內容如下:清華大學自動化系張長水教授:圖像識別與機器學習比如在某個圖片裡,熙熙攘攘的人群中,如何判斷人群中被遮擋人物的性別,對於計算機而言還是有一定難度。  六是變形。非鋼體在運動時會產生變形。  ▲ 圖像識別的發展歷史  視覺領域做圖象識別,物體的識別研究已經有幾十年歷史了,但是直到幾年以前,有影響的圖像識別產品不多,一個是OCR,一個是指紋,還有一個就是人臉檢測。
  • 【研究】圖像識別及應用
    圖像分割著重於對象和背景的關係,研究的是對象在特定背景下所表現出來的整體屬性,而圖像識別則著重於對象本身的屬性。圖像分割以及識別技術在航天、醫學、通信、工業自動化、機器人及軍事等領域均有著廣泛的應用。數字圖像與模擬圖像相比具有存儲,傳輸方便可壓縮、傳輸過程中不易失真、處理方便等巨大優勢,這些都為圖像識別技術的發展提供了強大的動力。▷ 物體識別主要指的是對三維世界的客體及環境的感知和認識,屬於高級的計算機視覺範疇。它是以數字圖像處理與識別為基礎的結合人工智慧、系統學等學科的研究方向,其研究成果被廣泛應用在各種工業及探測機器人上。
  • 圖像識別 | 基於Amazon Rekognition的圖像識別應用
    今天我們就來藉由亞馬遜開發出的Amazon Rekognition看一看,人工智慧深度學習在圖像識別方面有哪些實際性的應用。Tom Mitchell在其《Machine Learning》一書的序言開場白中給出了一個定義:「機器學習這門學科所關注的問題是:電腦程式如何隨著經驗積累自動提高性能。」在整個機器學習知識領域中,深度學習作為機器學習的一個子領域,是人工智慧的重要分支之一。深度學習大致上基於大腦中的信息處理和通信模型,使用從大量的注釋數據中學到的特徵代替人工編寫的特徵。
  • 圖像驗證碼和大規模圖像識別技術
    ImageNet圖像識別(分類)是最有影響力的一個公開PK圖像識別算法的比賽,其最基本的任務是訓練一個1000類的圖像識別器。在深度學習方式使用之前,最好的識別「前5準確率」(也就是給待測圖像預測出的前5個標籤中有一個是對的)只有74%左右,而深度學習第一次就將這個結果提升了將近10個百分點,到達83.6%。而最新的2015年的最好結果達到了96.3%[6]。
  • 營銷自動化如何使用AI?牛X公司這麼搞事
    從1992年開始起步到今天,營銷自動化已經走過了一段很長的發展階段,並從2.25億美元規模成長為一個16.5億美元的行業。當社交媒體應運而生,自動化供應商看到了巨大的機遇。眾多營銷自動化工具軟體出現了,幫助營銷人員從他們的社交媒體活動中獲得更多。
  • 人工智慧與圖像識別在醫療診斷中的應用
    本文將探討人工智慧在關乎人類生老病死的醫療健康行業中的應用,重點講述醫療影像識別中的優劣勢及市場應用。由於一些生理結構圖像過於複雜,人眼往往難以識別出其中的特徵,但是人工智慧通過大量案例學習後能發現潛在的規律。史丹福大學的研究者表明,他們開發的機器學習算法可以比醫生更加準確的識別肺部癌變【2】。國內上海交通大學與浙江大學聯合開發的阿爾法醫生也獲得了相似的結果,在更短的時間內處理了更多的圖片,並且取得了95%的正確率,高於測試中的醫生正確率約兩個百分點【3】。
  • 圖像識別技術的行業應用
    圖像識別,是指利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象的技術,自動識別圖像中的對象,人物,位置和動作等。圖像識別用於執行任務,是應用深度學習算法的一種實踐應用。如何實現圖像識別?圖像識別對於人類和動物來說是很自然的,但是對於計算機來說卻是一項極其困難的任務。
  • 清華大學張長水教授:機器學習和圖像識別(附視頻、PPT下載)
    演講視頻:視頻時長約半個小時,建議使用wifi觀看張長水:大家好,我來自清華大學自動化系,主要做機器學習和圖像識別的研究。現在人工智慧很流行,機器學習也推到風口浪尖上,圖像識別已經變成產品,新聞媒體告訴我們AlphaGo、AlphaGo zero已經戰勝了人類、皮膚癌的識別超過了大夫、無人車已經上路測試,很快要量產。這些新聞仿佛告訴我們,圖像識別的問題已經解決了,然而很多高科技做圖像識別公司都還在高薪聘用掌握機器學習的人才。圖像識別問題解決了嗎?我們看看現在圖像識別還有些什麼問題。
  • 面部識別、深度偽造、隱私和自動化定義的AI 2019
    面部識別在2019年的新聞報導中,我們可以發現,面部識別技術比其它任何人工智慧應用更受矚目。2019年1月份,麻省理工學院的一個科學家團隊聲稱:亞馬遜公司的面部識別和分析軟體reko在某些種族中的性別識別準確性低於其他面部識別解決方案。
  • 貼片傳感檢測式導光板模組圖像識別檢驗技術的研發
    反射片的用途在於將底面露出的光反射回導光板中,用來提高光的使用效率;同等面積發光亮度情況下,發光效率高,功耗低。單面微結構陣列導光板一般採用押出成型的製作工藝。導光板設計原理源於筆記本電腦的液晶顯示屏,是將線光源轉變為面光源的高科技產品。
  • 基於慣性導航、RFID 及圖像識別的 AGV 融合導航系統
    關鍵詞:AGV; 慣性導航;圖像識別;姿態解算中圖分類號:TP391 文獻標識碼:A 文章編號:1001-0785(2018)08-0081-040 引言隨著勞動力成本的上升和技術水平的提高,物流倉儲行業的自動化程度不斷提升。作為倉儲物流的核心設備,自動導引小車(AGV)的應用範圍與導航技術得到迅猛發展。
  • 文字識別在高德地圖數據生產中的演進
    阿里妹導讀:豐富準確的地圖數據大大提升了我們在使用高德地圖出行的體驗。相比於傳統的地圖數據採集和製作,高德地圖大量採用了圖像識別技術來進行數據的自動化生產,而其中場景文字識別技術佔據了重要位置。商家招牌上的藝術字、LOGO五花八門,文字背景複雜或被遮擋,拍攝的圖像質量差,如此複雜的場景下,如何解決文字識別技術全、準、快的問題?
  • 譯圖證照智能分類識別技術,信審自動化的利器
    在金融信貸業務中,金融機構要了解借款人身份信息、婚姻情況、擁有動產(如汽車)和不動產(如房產)情況,從而評估借款人的償債能力,傳統的信審、授信作業方式是人工錄入客戶信息,費時費力,業務拓展受到限制。譯圖證照分類識別技術可以將多種證照材料自動歸類並完成OCR識別,結合身份核驗和大數據分析,從而提高信審自動化的效率,幫助金融機構展業。圖智訊OCR識別系統裝有圖像分類器,可將雜亂的證件信息自動識別分類到指定的文件夾,省去人工分類的時間,讓工作視圖化界面更清晰,大大提升了工作質量。
  • 圖像識別與人工智慧圖像識別和機器視覺有什麼區別
    當人工智慧,特別是與人工智慧與圖像識別、計算機視覺等「熱門領域」結合在一起的時候,能不能迸發出革命性的能量?下面小編就來為大家解答一下。圖像識別與人工智慧圖像識別和機器視覺有什麼區別?這個問題很多人看到這個問題一定會發蒙,不都是相同的基礎麼?上面的圖片如果上傳到網上,很多人就會問,這是不是把圖片中的東西翻譯成英文了?其實圖像識別不單單是把原文字翻譯成英文這麼簡單。
  • 圖像識別中的深度學習【香港中文大學王曉剛】
    在非深度學習算法中,最高的識別率是96.33%[7]。目前深度學習可以達到99.47%的識別率[8]。  在欣頓的科研小組贏得ImageNet比賽冠軍之後的6個月,谷歌和百度都發布了新的基於圖像內容的搜尋引擎。他們採用深度學習模型,應用在各自的數據上,發現圖像搜索準確率得到了大幅度提高。
  • 深度學習與圖像識別
    其中3000對是正樣本,每對的兩張圖像屬於同一個人;剩下3000對是負樣本,每對的兩張圖像屬於不同的人。隨機猜的準確率是50%。有研究表明[5],如果只把不包括頭髮在內的人臉的中心區域給人看,人眼在LFW測試集上的識別率是97.53%。如果把整張圖像,包括背景和頭髮給人看,人眼的識別率是99.15%。經典的人臉識別算法Eigenface [6] 在這個測試集上只有60%的識別率。
  • 乾貨:Python+百度圖像識別進行圖像審查
    圖像識別在做平臺類應用的時候,我們經常要對用戶上傳的內容進行審核,包括圖片、視頻的內容中是否涉黃、暴力、血腥等等不合格內容的審核,過去這類工作只能靠人工審查。代碼實現截圖AipImageCensor(APP_ID, API_KEY, SECRET_KEY)# 讀取圖片def get_file_content(filePath):with open(filePath, 'rb') as fp: return fp.read()img = get_file_content('E://work//baiduaudio//zhengzhi1.jpg')# 調用圖像審核接口
  • 基於機器學習實現圖像識別探索
    在這個AR/VR技術的變革中,圖像識別技術依舊是關鍵。現在隨著機器學習圖像識別技術不斷進步,圖像識別技術將賦予超瞳大兵眼鏡「眼睛」,這標誌著大兵讀圖時代正式到來,並且將引領我們進入更加智能的未來。這個過程就可以分為兩個步驟:首先要先對新事物進行學習:AR眼鏡/智慧型手機通過攝像頭捕捉物體信息、雲端機器學習集群對物體信息進行訓練、形成圖像數據模型;之後通過AR眼鏡/智慧型手機圖像識別軟體進行物體識別:當本地程序需要時,下載雲端圖像數據模型進行本地學習、掃描該物體對信息進行分析並返回結果。
  • 圖像識別中的卷積神經網絡
    深度卷積神經網絡(ConvolutionalNeural Networks, CNN)解決了傳統神經網絡參數量過大的問題,為圖像分類實現了突破
  • 基於GIS和圖像識別的城市空間形態識別研究
    主要的識別技術包括指紋識別、人臉識別、文字識別、醫療影像識別等[1]。但是在建築學、城市規劃、景觀規劃等設計類專業中也逐步需要用到圖像識別技術來幫助識別空間、物體、環境以輔助設計及研究工作。城市範疇的圖像識別工作一般是基於GIS技術實現的,GIS是一種使用計算機軟體來處理並研究空間數據的技術。