【airtest架构】pytest+pocoui+airtest+allure 完成安卓UI自动化框架

一、背景:

为了做app的自动化,由于app元素定位麻烦或者定位不稳定,又或者使用驱动版本等原因,不想使用启动appnium服务的方式。
本文采用网易的airtest框架图像识别作为基础,配合pytest进行简单的二次开发形成一套对安卓app,小程序的UI功能自动化测试框架。

二、框架简介:

框架集成使用pytest+pocoui+airtest+allure,所以命名为ppa_project. 其中pytest负责用列的管理,可以对用例进行单条,多条,分类执行等等。同时,pocoui+airtest 负责UI控件的定位和图像的识别。框架的核心要素,allure负责测试报告的生成。

三、项目目录:

项目目录
项目目录详细注解:
base:封装基础方法 如滑动,点击等
config : 手机设备信息,app包信息 测试数据等yaml配置文件
logs : 记录每次运行的日志
page :app的每个页面的元素,其中main_page 作为app的初始页面。
reports :测试报告的数据和生成allure报告的地方。
testcase :测试用例文件。
testcase/case_image 存放用例中的图片(我这里是分页面存放)
utils :工具类,包含日志,发送邮件等
launch.py: 设备的连接和app的启动文件
run.py: 项目启动入口

四、核心代码解释:

1)连接手机,启动app,
读取config/device.yaml文件中的deviceName和appPackage。 在launch文件中使用start_app()和close_app() 启动和关闭app
device.yamllaunch文件
2)main_page. 初始化poco
main_page
3) login_page 在登录页面引入main_page 开始启动app,然后app启动过程中肯定需要一定的时间,这个跟测试的手机性能有关,所以我们就循坏去找首页是否出现,找到了就算成功。然后在判断app是否已经登录,如果未登录进入登录流程,如果已经登录则开始后面的业务流程测试了😊。
login_page
4)业务流程测试 : 举个test_order例子(我这里未使用po模式封装,大家可以自行优化)
test_order
5) 最为关键的conftest文件,为了只让app启动登录一次,完成所有的测试用例后,然后退出app。 在testcase目录下创建conftest文件,代码如下:
注意:fixture(scope=‘session’, autouse=True)。 #scope=“session” 那么,在该目录下的所有的测试用例只会执行一次 在所有的用例开始前会执行yield前面的代码在所有的用例结束后会执行yield后面的代码
conftest

五、说了这么多,最后说说本框架的的具体使用方法。

1、python版本使用3.7
2、安装项目需要的依赖文件 pip install requirements.txt
3、配置allure 环境变量,安装方法参考百度
4、脚本编写,先在airtestIDE中编写好脚本,可以使用poco和airtest截图 并且将脚本跑通。
5、在airtestIDE中将脚本切换成代码形式,并将脚本复制到ppa_project/testcase 中(这里根据自己定义的pytest规则脚本),图片复制testcase/case_image中,并且修改脚本中的图片路径,使脚本可以找到对应的图片
6、可以通过page目录,做成po模式,将管理测试用列和具体的执行方法分开(本文待优化)
7、通过run文件,自定义需要执行的case。

				 		看完文章的你,点点赞,加加关注,共同学习,共同进步!
  • 11
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
Airtest, Poco, Python, Pytest, Allure是一些用于实现Android App自动化测试框架的工具。这些工具结合使用可以实现对应用元素的定位(使用Airtest和Poco),测试用例的管理和执行(使用Pytest),以及生成测试报告(使用Pytest-HTML或Allure)。 Airtest是一个基于Python的UI自动化测试框架,它可以用于Android、iOS等平台的应用自动化测试。它提供了丰富的API来进行界面元素的定位和操作,以及对应用的各种操作进行模拟和验证。 Poco是Airtest的一个扩展库,它提供了一套更简单易用的API来进行应用元素的定位和操作。Poco可以与Airtest结合使用,使得测试用例编写更加简单和高效。 Python是一种流行的编程语言,对于测试框架的编写和测试脚本的编写都非常适用。通过使用Python,可以方便地编写和管理测试用例,以及进行各种数据处理和操作。 Pytest是Python的一个测试框架,它提供了丰富的功能和插件来管理和执行测试用例。Pytest可以与Airtest和Poco结合使用,以便更好地管理和执行自动化测试用例。 Allure是一个用于生成漂亮且可视化的测试报告的工具。它可以将测试结果以图表和图形的形式展示,能够清晰地展示测试用例的执行情况和结果。 综上所述,Airtest、Poco、Python、PytestAllure都是在Android App自动化测试中常用的工具和框架。它们的结合使用可以帮助开发人员和测试人员更方便地进行自动化测试的编写、管理和执行,并生成美观的测试报告来展示测试结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python + Airtest + poco + pytest + pytest-html 实现Android App自动化测试框架](https://blog.csdn.net/weixin_38813807/article/details/129179944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [airtest/poco+pytest+allure+jenkins框架来了](https://blog.csdn.net/George513/article/details/119034783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值