【Airtest】 UI 自动化

一、环境配置

项目名称:Yavin
锁定python3.7.x和opencv-contrib-python==3.4.2.17,不然各种报错
参考airtest官网https://airtest.doc.io.netease.com/
虚拟环境配置
安装所需要的依赖包

二、框架使用方式

1.目录结构介绍
2.config文件config.yaml文件介绍
  • 元素变量名称命名规则:
    • 元素是取id的,名字必须是ID_开头
    • 首页搜索🔍图标的对应的resourceid名字是"com.cmcm.live:id/home_search_img"
    • 新框架的书写方式就是变量名+(去掉包名)元素名字:ID_HOME_SEARCH_IMG: ':id/home_search_img'
  • 执行分包用例的时候,修改config.yaml文件中的包名为对应分包的包名
3.page文件下介绍

类里面写对应页面的用例步骤方法,以及做相关断言判断。关键步骤进行截图和断言,可以在报告中展示,方便查看结果

4.公用执行case放置位置

公共case会对一些常用的场景进行封装,供大家调用,eg:登录,开播,关闭直播,进入直播间等。由专门的同学进行维护和编写

5.具体case编写

三、用例执行

1.python 命令直接调试某条用例
2.airtest命令执行整个用例和展示对应的用例执行报告
  • 生成报告需要两步:
    • 先执行用例命令python3 -m airtest run testcase/goto_single_live.air --log log/
    • 在生成报告airtest report testcase/goto_single_live.air --log_root log/ --export ~/Downloads/ --plugin poco.utils.airtest.report

四、框架常用方法集合

查找元素使用self.page_ele_loc()方法
  1. 举例点击首页搜索🔍进入搜索页面
  2. self.page_ele_loc("ID_HOME_SEARCH_IMG")
  3. 获取配置文件中自定义元素名字的值,通常和self.find_click()结合使用
元素的点击操作
  1. 举例,还是已点击搜索图标
    1. 原来airtest中的点击方式self.poco.click(), 具体用法:self.poco.click("元素对应的id名字")self.poco.click("com.cmcm.live:id/home_search_img"

    2. 现在新框架的点击方式self.find_click(self.page_ele_loc(元素id对应的配置文件中的名称))self.find_click(self.page_ele_loc("ID_HOME_SEARCH_IMG"))

    3. 优点:如果某个页面元素id改变只改配置文件一个地方就可以,其他用例中不用改变

断言
  1. 尽量用airtest中的断言方式,这样在报告中可以展示的更明确
  2. 导入airtest中的断言from airtest.core.api import sleep, assert_equal, assert_not_equal
  3. 举例:
    1. assert_equal一般就是判断某个元素是否出现来验证执行case是否达到预期的页面,使用方式assert_equal(self.home_page.up_live_icon_is_exists(), True, "home页开播按钮不存在")
    2. assert_not_equal一般是来验证找不到这个页面,即验证某个页面消失,但是消失之后不确定会回到哪个页面,使用方法同assert_equal

五、采坑大集

1、跨类名调用元素

调用方式: Config.get_yaml().get("配置文件中的元素所在类别的名称").get(对应元素的名字)

举例:

s = Config.get_yaml().get("SystemPermission").get("NAME_PERMISSION_ALLOW_BUTTON")

self.poco(s).click()

self.find_click(self.page_ele_loc(s)) # 这种方式会失败,pocoservice会crash

2、执行case时adb 权限

错误信息提示:

解决方式:

chmod +x /usr/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb (路径和上面提示错误的adb路径保持一致)

3、 adb server version (40) doesn't match this client (41); killing...

➜ bin adb devices adb server version (40) doesn't match this client (41); killing...

* daemon started successfully

List of devices attached

a897fc81 device

解决方案:https://blog.csdn.net/ckckjsws/article/details/123736460

cp /usr/local/bin/adb /Applications/AirtestIDE.app/Contents/MacOS/airtest/core/android/static/adb/mac/adb

4、poco不断重启

https://www.cnblogs.com/AirtestProject/p/15355658.html

相关推荐
程序员小远2 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT10157974442 天前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏2 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
专业机床数据采集2 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔3 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH3 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试3 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos
LT10157974443 天前
2026年开源自动化测试工具选型指南:功能与适用场景解析
测试工具·开源·自动化
大叔带刺3 天前
AutoSAR SomeIP配置开发速成_02测试工具开发
测试工具·someip