Android自动化测试之UIAutomator(三)---比对测试截图

系列回顾:本系列主要从开发的角度介绍UiAutomator的使用,总共包括三篇:

基础入门: Android自动化测试之UiAutomator(一)

技巧篇:     Android自动化测试之UiAutomator(二)(未完成)

比较工具篇 :Android自动化测试之UiAutomator(三)---比对测试截图

本文是第三篇。


转载请注明出处:http://blog.csdn.net/xzy2046/


以下是正文:

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遍历目录:

<pre name="code" class="html">function compare_png(){ 
    for file in ` ls $BASEPATH `
    do
        if [ -d $BASEPATH$file ]
        then
            compare_png $BASEPATH$file
        else
        fi
    fi
done

 

接下来在else语句中加入比对语句:

diff_count=`compare -metric AE $BASEPATH$file $NEWPATH$file $EXPORTPATH$file 2>&1`

将比较出的Diff像素数传入diff_count变量。

然后通过imagemagick 的convert命令获取宽度为160像素的缩略图,这些缩略图将用于HTML文件的显示

convert -thumbnail 160 $BASEPATH$file $File1
convert -thumbnail 160 $NEWPATH$file $File2
convert -thumbnail 160 $EXPORTPATH$file $File3


最后生成HTML:

                echo "<br><tr>">>$result_html
                echo "<td><font style=\"color:red;\">$file</font></td>">>$result_html
                echo "<td><font style=\"color:red;\">$diff_count</font></td>">>$result_html
                echo "<td><font style=\"color:red;\">"Failed"</font></td>">>$result_html
                echo "<td><a target=_blank href=$BASEPATH$file><img src=$File1></a></td> ">>$result_html
                echo "<td><a target=_blank href=$NEWPATH$file><img src=$File2></a></td> ">>$result_html
                echo "<td><a target=_blank href=$EXPORTPATH$file><img src=$File3></a></td> ">>$result_html
                echo "</tr>">>$result_html

以下为处理结果:

第一列为图片名称,第二列为差异像素数。三幅图片分别为基准图片,测试截图,和生成的Diff图片。

   

Shell脚本下载地址:

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


  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值