作者:夏y儿 | 来源:互联网 | 2023-07-30 12:17
手游自动化测试框架需要几个模块:
-
脚本模块:需要对常见的操作进行API封装,脚本一般选择常见的Javascript,python,lua等,这个封装主要针对APP上的函数进行封装,以降低开发难度。
针对有手游,在函数封装方面,主要是图像识别可视化、坐标色图识别等技术的实现。例如airtest针对图像识别做了图形化设计,开维控制精灵(Ctrl.js)也实现了这部分功能。
-
IDE调试模块:主要是实现IDE编程环境和调试模块,可以例用第三方,例如vscode,idea,也可以自主实现。例如auto.js利用的是vscode, Ctrl.js是自主研发IDE环境。
调试模块主要实现PC机IDE代码和APP上脚本的实时调试,方便用户单步查错。
-
通信模块:实现PC机到APP中的数据交换。例如脚本代码同步、云控定时任务等。
-
机器人流程自动化RPA模块:主要实现无代码功能,支持用户直接录制操作手游动作,达到无代码编程的效果。开维控制精灵可以自动生成Ctrl.js代码,极大的降低了手游测试难度。
-
远控模块:支持对多台手机远程实时监控,远程执行脚本等任务策略下放。
-
其他模块:打包策略、脚本分享策略等等。
下面以一个实例,大体介绍框架核心模块功能:
- 脚本模块
如图所示,在Javascript基础上封装的API函数:
打开APP的函数app.launchApp();
图像识别点击可视化函数imagev.click();
这些函数都是对APP函数的封装,本实例中是对安卓JAVA功能函数的封装。
- IDE调试模块
代码部分是在PC中的浏览器IDE环境下编写的,可以实时同步到手机APP中,并且支持断点、单步执行。通信模块负责代码同步等机制。
实例代码如下:
init();
autoShotScreen();
var xArr = [367,795,1232];
var yArr = [1663,1248,848];
app.launchApp("形状链接");
sleep(5000);
imagev.click("data:image/png;base64,iVBORw0KGgo....AAAANSUhEUgAgg==",602,960);
sleep(2000);
imagev.click("data:image/png;base64,iVBORlFTkSuQ................mCC",602,960);
sleep(2000);
imagev.click("data:image/png;base64,iVBORw0KGgoAmzT.......FTkSuQmCC",602,960);
sleep(2000);
imagev.click("data:image/png;base64,iVBORw0KGgoAAA............ggg==",602,960);
sleep(2000);
play();
function play() {toast("游戏开始");sleep(2000);for(var i&#61;0;i<xArr.length;i&#43;&#43;){cs.mouseclick(xArr[i],yArr[0]); sleep(100);for(var j&#61;0;j<xArr.length;j&#43;&#43;){cs.mouseclick(xArr[j],yArr[1]); sleep(100);for(var k&#61;0;k<xArr.length;k&#43;&#43;){cs.mouseclick(xArr[k],yArr[2]); sleep(100);}}}sleep(500);toast("游戏结束");sleep(500);imagev.click("data:image/png;base64,iVBORw0KGgoA....RU5ErkJggg&#61;&#61;",602,960);play();
}
测试视频&#xff1a;
https://www.bilibili.com/video/BV1B44y1P7tC/
源码、手游apk等资源下载链接&#xff1a;
链接&#xff1a;https://pan.baidu.com/s/1RiqN3M_Nqbtd3c-o_QrzLg 提取码&#xff1a;kw16