栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Robot Framework 基于图像识别的 C/S 自动化测试 --- 从入门到实战

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Robot Framework 基于图像识别的 C/S 自动化测试 --- 从入门到实战

引子:

    由于最近有一个分量很重的windows Client需要测试,所以开始研究C/S的自动化。

    其实一开始知道这个客户端是基于Node.js,并且使用Chromium内核,我是想使用Selenium的Webdriver驱动的。但是经过各种努力,发现无法突破第三方给Chromium自定义套的壳,且内核是不完整chromium,遂放弃。

    也考虑过直接使用AutoIt来操作windows窗口,无奈在这种套壳Chromium下,窗口对象都是一团,无法操作。

    也考虑过WindowsApplicationDriver,使用inspect或者FlaUInspect进行定位,或者使用windows更新推出的Accessibility Insights For Windows,但这些工具配套非常贫瘠,基本都没法用。

    最后还是决定使用这类客户端自动化的最终解决方案 --- Robot framework+图像比对和识别

雏形:

    一个合格的UI自动化,需要以下几个要素:

    1.元素定位方法

    2.操作方法,最少包括鼠标和键盘操作

    3.获取页面数据的方法

    4.断言的方法

库的选择:

    老牌的图像比对和操作库,是大名鼎鼎的sikuli,但是sikuli后来专心去做sikulix去了,老的sikuli版本已经很久没有人维护了,所以主力图像识别库使用了RF官网首页上的ImageHorizonLibrary,反正大家都用的是opencv,虽然关键字比sikuli少一些,但是够用了(虽然后来还是做了很多二次开发)。

    鼠标和键盘的操作,还是使用了AutoItLibrary,因为这个库可以补足ImageHorizonLibrary,通过图片获取其页面上的定位,然后操作坐标。

    获取页面数据,考虑了很久,还是引入了OCR,通过Python的opencv库,对截图进行文字识别,由此,遇到了若干个坑:

    1.获取验证码的方法,最后使用dddd库解决

    2.编写获取指定区域的截图,封装了坐标和左上角图片,指定高和宽的矩形截图方法

    3.灰化图像,忽略轻微色差造成的颜色差别

    4.使用easyOCR库对图片内文字进行提取

    5.编写解析EMBED的图像并保存的方法

    6.编写在robot的html的log中插入本地截图的方法

    7.编写基于特征的图片比对方法,根据阈值设定图像相似度

    8.修改源代码,使其支持中文路径和中文图片名称

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349905.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号