【易测试201604】 用Robot Framework构建全端UI自动化测试框架介绍了RFUI的基本概念,结构和功能。RFUI是一个基于Robot Framework(关键字驱动+分层抽象)、跨平台(Web/Android/iOS/Desktop)的UI自动化框架。这里对PC/Desktop端(以Windows 7为例) 使用RFUI 搭建Win APP自动化测试框架、自动化脚本实践、部署持续结成作一个小结,欢迎大家一起讨论。
这个世界正在被移动颠覆,但是大家别忘了我们的90%以上的工作,还在PC端完成。在PC上有,我们曾共同熬夜写过毕业论文、通宵打过游戏、还有一起看过的那些片。 Windows桌面上还有辣么多的应用,包括易信、企业易信、popo、闪电邮、云音乐、有道云协作、、某Q、某微,..., 他们还有 MAC/各种Linux 版本。 我们的RFUI 要不要覆盖? 必须啊。找了一遍github, 选了SikuliX, 至于原因? 我想是因为缘分。 各位看官,如果想知道是否与SikuliX有缘分,请轻轻的使用一下我们的RFUI框架的 DesktopLibrary。
<1>. 安装JAVA JVM or JRE
<2> 安装Robotframework 及 测试库
pip install robotframework
pip install robotframework-ride
pip install robotframework-desktoplibrary
RFUI是基于关键字驱动的测试框架,PC端关键字封装在SikuliLibrary中,根据关键字名称以及注释就能清楚知道其用法。 本库采用的元素定位方式为 Imaged-Based/图片元素定位 RFUI采用分层抽象的设计模式。下图是具体用例的层次关系。通过这样的 层层调用可以实现: 增加脚本可读性 增加用例可维护性 脚本复用性增强
Sikuli(在印第安土著语言中是“上帝之眼”的意思)是由美国麻省理工学院开发的一种新型图形化编程技术,使得编程人员可以使用截图替代代码,从而简化代码的编写流程。以Jython为基础实现,利用图像匹配原理,完成对GUI元素的识别和对于用户操作的模拟。
我们封装测试库robotframework-desktoplibrary,是基于SkiuliX1.1.0,参考了robotframework-SikuliLibrary,重新封装了一层自定义关键字,结构如下:
本测试库,通过RobotFramework的Remote(远程库),将基于JAVA实现的测试库,轻松的导入到RF测试框架。 对用户来说,就像Python原生写的RF 测试库一样。
<1> 截图 (任何工具)
文件名:应用入口_企业易信.png
<2> 指定图片元素路径,定义图标变量指向图片文件
*** Variables ***
${IMAGE_DIR} ${CURDIR}\\..\\Images
${系统桌面_易信企业版图标} 应用入口_企业易信.png
Desktop Set Image Path ${IMAGE_DIR}
<3> 使用Desktop_xxxAction 来操作
Desktop Double Click ${系统桌面_易信企业版图标}
一个用例运行实例:
使用Jenkins,可以方便配置 PC UI 执行集Job。
注:尚遗留问题:
<1> 代码变动打包的部署Job,暂未实现;需要与开发在测试分支定义好配置,并在Test Node上配置好相应的打包环境
<2> 持续集成Job,建议仅运行稳定的脚本用例
基于SiKuliX的DesktopLibrary,具有强移植性,支持主流PC系统,
<1> Windows XP,win7, win 8 and 10 (32-Bit or 64-Bit)
<2> Mac OS X >= 10.6 (64-Bit only)
<3> Linux/Unix (32-Bit or 64-Bit) 具体详见 robotframework-desktoplibrary。 本文,仅作抛砖用,欢迎各位大侠试用!交流自动化经验。
本文来自网易实践者社区,经作者汪洋旦授权发布。