四,使用pytest框架,修改脚本,调试运行
1,在AirtestIDE中调试代码
小程序操作步骤录制如下,可以在AirtestIDE上面先调试运行,是否正确。
代码如下:
# -*- encoding=utf8 -*- __author__ = "xiaoqq" from airtest.core.api import * from poco.drivers.android.uiautomation import AndroidUiautomationPoco poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) from airtest.cli.parser import cli_setup if not cli_setup(): auto_setup(__file__, logdir=True, devices=[ "Android://127.0.0.1:5037/5EN0219305002521", ]) # script content print("start...") poco(text="扫一扫").click() poco(text="相册").click() poco("com.alipay.mobile.beephoto:id/iv_photo").click() poco(text="大物洗").click() poco(text="选好了").click() poco(text="已关门").click() poco(text="余额").click() poco(text="去支付").click() poco(text="立即支付").click() # generate html report # from airtest.report.report import simple_report # simple_report(__file__, logpath=True)
2,完善代码
接下来就在Pychram里打开该.py文件,开始完善脚本。增加断言,并使用pytest管理、执行用例
# -*- encoding=utf8 -*- __author__ = "xiaoqq" import pytest from airtest.core.api import * @pytest.fixture(scope='function', params=['Android://127.0.0.1:5037/64c83202']) def base_poco(request): ''' 构造新的poco,完成测试用例执行前、后的步骤 @return: 返回新的poco对象 ''' from poco.drivers.android.uiautomation import AndroidUiautomationPoco connect_device(request.param) base_poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) base_poco.device.wake() start_app("com.eg.android.AlipayGphone") sleep(2) yield base_poco sleep(2) stop_app("com.eg.android.AlipayGphone") sleep(2) def test_wash_order(base_poco): print("start...") base_poco(text="扫一扫").click() base_poco(text="相册").click() base_poco("com.alipay.mobile.beephoto:id/iv_photo").click() base_poco(text="大物洗").click() base_poco(text="选好了").click() base_poco(text="已关门").click() base_poco(text="余额").click() base_poco(text="去支付").click() base_poco(text="立即支付").click() time.sleep(1) result_1 = base_poco(text="支付成功").exists() assert result_1 == True print("end...") if __name__ == '__main__': pytest.main()
3,运行代码
运行该模块,可以查看手机上的操作步骤,结果通过!
简单的demo已经跑通,后续需要优化项目的目录结构,并加入截图、日志、测试报告模块,搭建成一个完整的自动化测试项目。
五,总结
- 相对来说appium太笨重了,而网易提供的AirtestIDE里的poco辅助工具可以将元素定位及操作可以直接生成为代码。
- 在AirtestIDE中只能运行单个的脚本,无法批量的运行测试脚本和管理测试脚本,而利用Airtest提供的开源的API结合其他的python库使用,可以实现更复杂的代码逻辑。
- poco框架看起来代码简洁程度比airtest更好,维护更方便,且airtest框架基于图像识别,实际运行工程中可能会受识别率的影响。但对于新手或者代码基础薄弱的测试同学而言,airtest更容易上手。