一、介绍
airtest:
Airtest是一款跨平台的UI自动化测试框架,基于 图像识别原理 ,适用于游戏和App
fastlink:
可以在空闲时间预获取页面可视区域内的链接,加快后续加载速度。
开发原因:
fastlink能提升页面加载速度,而Airtest可以通过脚本进行自动化测试,通过Airtest测试fastlink的加载效率
二、接入
fastlink接入
在js中引用fastlink
<script type="text/javascript" src="https://woxin2.jx139.com/comm/fastlink/dist/fastlink.js"></script>
在onLoad生命周期中添加方法
listen()
三、airtest
安装与介绍
下载地址
安装介绍
blog.csdn.net/qq_32557025…
airtestIDE使用
打开AirtestIDE(会打开一个命令窗口,命令窗口不要手动关闭,否则IDE也会关闭)
连接手机
通过手机设置,打开开发者模式(开发者模式正常情况下是隐藏的,在设备信息界面的系统信息界面连续点击,比如小米手机为连续点击MIUI版本)
开启之后在开发者设置中打开USB调试和USB调试(安全设置)(允许通过USB模拟点击,否则脚本无法点击手机屏幕),没有安全设置则无需开启。
然后通过数据线连接电脑,在Airtest中右侧的设备窗中刷新ADB,会出现设备序列号,点击connect进行连接,连接之后会出现手机屏幕,可以通过手机屏幕操作手机(如果未开启允许USB模拟点击则无法进行操作)。
新建脚本
点击左上角的加号,选择.air Airtest项目,会新建一个具有简单模板的.air文件。
在IDE左下角Poco辅助窗中,在下拉框中选择Android,然后在脚本编辑窗中点击Yes,会自动引入poco框架。
编写脚本
在Airtest辅助窗中有多种指令,介绍几种常用指令。
1.touch
touch为点击屏幕,在辅助窗中使用touch可以在手机设备上进行截图,并且会在编辑窗中完善代码
2.swipe
swipe为屏幕滑动,可配合for循环进行多次滑动,通过start和end的方向进行,横向或者竖向滑动
# 获取设备的高度和宽度
width, height = device().get_current_resolution()
# 校准滑动的起点和终点,因为大部分app上下有底栏和顶部导航,不在滑动范围,所以这里的height不是从0.1开始
start_pt1 = (width / 2,height * 0.7)
end_pt1 = (width / 2,height * 0.3)
# 上滑N次:
for i in range(4):
swipe(start_pt1, end_pt1,1000)
sleep(1) # 等待设备的响应
3.wait
wait为等待某个时间出现,可以用于轮播图,等待自动轮播到想要点击的界面再进行touch点击,或者配合滑动使用,滑动到指定位置再进行其他操作
4.exists
exists用于判断某个场景是否存在,再进行其他操作
5.sleep
sleep是脚本停止并停止方法设定的时间再往下执行,可用于等待页面加载。
# 上滑N次:
for i in range(4):
swipe(start_pt1, end_pt1,1000)
sleep(1) # 等待设备的响应
日志添加
在h5页面接入fastlink之后,在需要跳转的按钮上添加开始时间日志,并且在onShow/onReady中添加结束时间日志, 最后再计算页面打开耗时,因为fastlink是把可视界面内的按钮预加载,所以在跳转之前脚本最好进行sleep一定时间,在进行跳转
console.log("start:" + currentTime())
···
function currentTime() {
var now = new Date();
var year = now.getFullYear(); //年
var month = now.getMonth() + 1; //月
var day = now.getDate(); //日
var hh = now.getHours(); //时
var mm = now.getMinutes(); //分
var ss = now.getSeconds(); //秒
var mill = now.getMilliseconds();
var clock = year + "-";
if (month < 10)
clock += "0";
clock += month + "-";
if (day < 10)
clock += "0";
clock += day + " ";
if (hh < 10)
clock += "0";
clock += hh + ":";
if (mm < 10) clock += '0';
clock += mm;
clock += ":" + ss;
clock += ":" + mill;
return (clock);
}
运行
点击工具栏的运行按钮运行脚本,也可以在脚本编辑框中选中要运行的代码右键,只运行选中的代码进行测试
测试结果
拿了四个页面做测试,各做了10次测试。