赞
踩
目录
AirTest是一个基于图像识别原理的跨平台UI自动化测试框架,适用于游戏和应用程序。
1.特点
a.跨平台:AirTest几乎可以在所有平台上执行游戏和App的自动化
b.易操作:使用图像识别技术来定位UI元素,无需嵌入任何代码即可对游戏和应用进行自动化
c.可拓展性:通过使用AirTest提供的命令行于python API接口,可以很轻松地在大规模设备集群上运行脚本
d.GUI工具:AirTest IDE是一个强大地GUI工具,可以帮助你录制和调试测试脚本
2.应用方面
●Game:借助图像识别和UI层次结构,支持所有游戏引擎和应用,多平台,使用方便
●Android : Android源生应用测试的测试过程中,AirTest可以发挥至关重要的作用,即插即用
●Windows:支持Windows应用, 一次编写,跨平台运行
●iOS: AirTest 支持对iOS进行方便快捷的测试,可以通过Poco来快捷获取iOS设备页面中的原生元素的位置和信息
●Web :基于Chrome Devtools Protocol协议,自动录制生成selenium脚本,精确定位与操作界面元素
3.AirTest的API库
图像识别库、Poco库、Selenium库
4.AirTest搭建方式
a.python
命令: pip install -U airtest
说明:安装python的AirTest库,通过python代码直接调用AirTest库的Api方法
提示:此种方式,需要一定python代码基础
b.GUI工具
工具: AirTest IDE
说明: AirTest IDE工具自带python环境,无需单独安装
提示:使用工具可以录制操作,也可以手动编写调用api
1.连接移动设备之前需要做什么?
●设备必须处于开发人员模式并且USB调试模式已打开
●如果使用的操作系统是Windows操作系统,则可能还需要在系统上安装相应的设备驱动程序
2.AirTest如何连接模拟器?
●启动安卓模拟器
●点击刷新adb或点击远程设备连接
●勾选兼容模式
远程设备连接:
兼容模式:
AirTest成功连接模拟器
AirTest图像框架API
AirTest图像框架API查看参数信息
1.Touch方法
●作用:触摸动作
●常用参数:
●v:触摸对象图像或坐标
●Times:触摸次数,默认1
●duration:触摸时间默认0.01秒
●触摸支持图像和坐标
需求1:
使用Touch方法启动桌面应用,运行脚本测试是否成功
实现步骤:新建脚本->使用Touch触摸应用->运行脚本->查看报告
步骤一 新建脚本类型选择:
●.air AirTest项目:生成一个项目名称.air目录,目录下有一个项目名.py文件
●.py纯Python (高级用户) :生成一个项目名.py文件
区别:
●相同点:都是python文件
●不同点:脚本文件初始化代码不同,一个采用默认值无法看到,一个可以看到默认值, 进行修改
提示:
●AirTest框架自带python解释器及标准库,无需单独安装python环境
步骤二 使用Touch触摸咕咕机:
●点击Touch
●拉选咕咕机应用图标
步骤三 运行脚本:
●运行脚本(菜单->运行脚本或者F5键)
●运行单行代码(光标定位当前行代码->右键)
步骤四 查看报告:
●快捷键 Ctrl+L
图像识别扩展:
a.图像触摸位置
b.图像识别匹配度
2.wait等待元素
●作用:等待某个元素出现,如果出现返回元素的中心点坐标,否则抛出TargetNotFoundError异常
●常用参数:
●v:图片
★timeout:等待超时,默认找20s
●interval:每次匹配的时间间隔
●解决元素存在,但加载需要一定时间问题
需求(扩展使用) :
●启动咕咕机app应用
●点击菜单-分类
●在分类菜单中 ,查找 菜单(我的),已0.1秒找 一次,最多找5秒钟
3.swipe方法
●作用:滑动-从屏幕的一个位置滑动到屏幕另个位置
●常用参数:
★v1:图片或者坐标(x,y)
★v2:图片或者坐标(x,y),从v1滑到v2
●vector:[x,y]录制时自动生成,记录了屏幕中的滑动比例,向右为X轴正向,向下为Y轴正向
需求:
●启动咕咕机app应用
●点击分类,从自助题库滑到汉语学习(基于图片与录制实现)
需求(拓展):
●启动咕咕机app应用,点击分类
●从自助题库滑到汉语学习,滑动使用时长2秒( 基于2张图片实现)
●从坐标点( 1000,1800)滑到( 1000,40 ) -提示:坐标点根据实际屏幕来定
4.AirTest中swipe方法兼容不同分辨率的解决方法(屏幕左右滑动)
a.首先获取手机的分辨率,可以使用Airtest中的poco模块的get_screen_size()方法
- # -*- encoding=utf8 -*-
- __author__ = "YQ20639"
-
- from airtest.core.api import *
-
-
- from poco.drivers.android.uiautomation import AndroidUiautomationPoco
- poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
-
- auto_setup(__file__)
-
- print(poco.get_screen_size())
b.将屏幕的宽度和长度分别赋值为x和y,注意屏幕左上角的坐标为(0,0),所以左下角的坐标为(0,2340),右上角的坐标为(1080,0),右下角的坐标为(1080,2340)
c.按照屏幕的比例进行滑动,我想要从屏幕的右侧向左侧滑动,就可以按照如下方法进行,从(0.9*x,0.5*y)的坐标移动到(0.1*x,0.5y)的坐标
- # -*- encoding=utf8 -*-
- __author__ = "YQ20639"
-
- from airtest.core.api import *
-
-
- from poco.drivers.android.uiautomation import AndroidUiautomationPoco
- poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
-
- auto_setup(__file__)
-
- print(poco.get_screen_size())
- xy = poco.get_screen_size()
- x = xy[0]
- y = xy[1]
- swipe((0.9*x,0.5*y),(0.1*x,0.5*y),duration=1)
5.text方法
●作用:输入文本操作
●常用参数:
★text:要输入的文本(注:输入的位置为当前页面默认焦点元素一般配合touch一起使用)
●enter:完整输入后自动执行Enter操作,默认为True
6.keyevent方法
●作用:模拟键盘按键输入,支持键码如: 3为home键
●常用参数:
●keyname:固定键名或键码(https://www.cnblogs.com/findyou/p/5614178.html)
7.snapshot方法
●作用:截取当前屏幕图片,可以在测试报告显示
●常用参数:
★Filename:保存截屏为指定文件
●msg:描述测试点,可以在HTML报告中呈现
8.sleep方法
●作用:暂停时间
●常用参数:
●secs:延迟时间(s),默认1.0s
9.assert_exists()方法
●作用:断言(判断)页面存在元素
●常用参数:
★v:图片(要判断页面是否存在元素)
●msg:描述测试点
●return:找到图片则返回图片中心点坐标,否则将raise AssertionError
10.assert_not_exists()方法
●作用:断言(判断)页面不存在元素
●常用参数:
★v:图片(注:判断当前页面不存在图片元素,不存在通过,存在失败)
●msg:描述测试点(测试报告中显示)
11.assert_equal()方法
●作用:判断第一个值与第二个值相等
●常用参数:
★first:第一个值
●second:第二个值
●msg:描述此断言语句对应的测试点内容
12.assert_not_equal()方法
●作用:判断第一个条目与第二个条目不相等
●常用参数:
★first:第一个值
●second:第二个值
●msg:描述此断言语句对应的测试点内容
断言:让程序代替人工对程序执行结果检查的过程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。