Android自動化測試之UIAutomator(三)---比對測試截圖

來源:互聯網
上載者:User

Android自動化測試之UIAutomator(三)---比對測試

系列回顧:本系列主要從開發的角度介紹UiAutomator的使用,總共包括三篇:

基礎入門: Android自動化測試之UiAutomator(一)

技巧篇: Android自動化測試之UiAutomator(二)(未完成)

比較工具篇 :Android自動化測試之UiAutomator(三)---比對測試

本文是第三篇。

 

 

 

以下是本文:

1.簡介:

本文適合所有以圖片作為輸出的自動化開發工具(不僅限於Android)。

當我們進行一組自動化測試後,除了通過斷言,往往還會採用比對的方式分析測試結果,這種情況下人力再次成為效率的瓶頸,能否通過一定的方式對圖片進行預先處理,將Diff 的地區標出,方便開發人員進行分析呢?

本文的方法是通過一個bash指令碼獲得圖片的不同之處,並產生一個可視化的html檔案。以協助開發/測試人員快速分析測試結果。

 

2.環境安裝:

適用環境:ubuntu,其他平台未測試。

依賴程式:imagemagick

安裝方法:sudo apt-get install imagemagick

 

3.本文

首先介紹一下ImageMagick,這是一個影像處理工具,今天我們只會用它的兩個功能:1、圖片比較 2、產生縮圖。

 

第一步,我們準備一組基準圖片,用於測試完成後的比對標準。這裡我們將圖片放在/tmp/base目錄下。為我們的樣本圖片:

第二步,我們將自動化測試獲得的放在/tmp/new目錄下。為我們測試後獲得的圖片:

 

接下來我們執行imagemagick的compare命令:

compare -metric AE /tmp/base/test.png /tmp/new/test.png /tmp/result/test.png

執行該命令後我們將獲得一個Diff圖片,如下:

通過該命令,我們將兩張圖片不同的地方高亮顯示了,肉眼確認時只需要關注高亮的部分。

 

第二步:產生HTML檔案,將目錄下所有檔案和Diff出的圖片做成縮圖,並以列表的方式顯示:

首先,通過Shell遍曆目錄:

 


function compare_png(){ for file in ` ls $BASEPATH ` do if [ -d http://blog.csdn.net/xzy2046/article/details/$BASEPATH$file ] then compare_png http://blog.csdn.net/xzy2046/article/details/$BASEPATH$file else fi fi done

 



接下來在else語句中加入比對語句:

 

 

diff_count=`compare -metric AE http://blog.csdn.net/xzy2046/article/details/$BASEPATH$file http://blog.csdn.net/xzy2046/article/details/$NEWPATH$file http://blog.csdn.net/xzy2046/article/details/$EXPORTPATH$file 2>&1`

將比較出的Diff像素數傳入diff_count變數。

 

然後通過imagemagick 的convert命令擷取寬度為160像素的縮圖,這些縮圖將用於HTML檔案的顯示

 

convert -thumbnail 160 http://blog.csdn.net/xzy2046/article/details/$BASEPATH$file http://blog.csdn.net/xzy2046/article/details/$File1convert -thumbnail 160 http://blog.csdn.net/xzy2046/article/details/$NEWPATH$file http://blog.csdn.net/xzy2046/article/details/$File2convert -thumbnail 160 http://blog.csdn.net/xzy2046/article/details/$EXPORTPATH$file http://blog.csdn.net/xzy2046/article/details/$File3

 

 

最後產生HTML:

 

                echo >>$result_html                echo $file>>$result_html                echo $diff_count>>$result_html                echo Failed>>$result_html                echo 
 >>$result_html echo  >>$result_html echo  >>$result_html echo >>$result_html
以下為處理結果:

 

第一列為圖片名稱,第二列為差異像素數。三幅圖片分別為基準圖片,測試,和產生的Diff圖片。


 

Shell指令碼:

http://download.csdn.net/detail/xzy2046/8167831

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.