在对安卓手机设计自动化测试用例的时候,判断一个测试场景是否可以自动化的依据在于其是否需要人的参与。对于wifi能否自动打开关闭,短信能否自动收发这样的场景,不需要人参与就可以通过程序来判断,因此对Wifi与短信这样的测试,可以通过程序来实现自动化测试。但是另外还有一些测试场景,需要人的眼睛来看,这种场景要实现自动化就比较困难。

需求分析

使用安卓的浏览器访问一个网站,如何判断网站已经加载成功?目标网站确实已经收到了请求,也返回了HTML数据,手机也收到了网站返回的数据,但是不知道什么原因,在某些时候,浏览器上面却什么都没有显示,而浏览器输出的Log却完全看不出异样。对于这样的场景,为了减少人力开销,如何让测试程序自动发现网页没有加载成功,并通知开发者?

这个需求可以使用计算机图像识别来实现自动化。

设计思路

由于这个需求只需要判断网页是否加载成功,因此并不需要非常高深的图像识别的理论。对一个网页来说,所谓的加载成功就是指它里面的内容能够正常地在浏览器中显示出来。因此,可以设计一个特别的网页,网页要足够简单,但是又要足够特别,从而方便图像识别。

这篇文章将会使用一个纯绿色的网页来进行测试。网页加载完成以后,手机屏幕上绝大多数的区域是绿色的。这个时候,截取屏幕,并使用程序来识别这张截图。如果发现截图中有大面积的绿色区域,那就证明网页已经加载完成了。

Demo实现

纯绿色的网页

创建一个“greenpage.html”,它的代码如下:

<html><head>
    <title>Green Page</title></head&