| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Robot Framework 基于图像识别的 C/S 自动化测试 --- 从入门到实战 -> 正文阅读 |
|
[Python知识库]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.修改源代码,使其支持中文路径和中文图片名称 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:43:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |