在自动化测试中,基于xpath、js选择器、css选择器进行元素定位及判定的技术已经比较成熟。在实际应用中,无论是web端还是移动端,仍有很多时候需要根据页面内容、页面中的图像进行定位及判定,这里介绍一下基于opencv的图像识别技术在自动化测试中的应用。
这里我们使用selenium驱动测试,使用opencv进行页面元素判定。
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
0.基本步骤
在自动化测试中,我们预先对目标图像进行截图,使用selenium驱动页面访问,使用xpath预先验证指定元素是否存在,之后使用opencv的模板匹配对元素的内容进行验证。
在示例中,我们使用百度搜索opencv,验证搜索结果中是否包含百度百科的词条,以及百度百科词条中opencv的logo是否存在。
1.测试环境:
Firefox v42.0
Python v2.7.10
Opencv v2.4.8
Numpy v1.8.1
Selenium v2.47.1
2.准备目标图像
使用baidu搜索opencv,并对我们需要验证的图像进行截图。