pip install -U utx
很大程度上借鉴了HttpRunner(优秀的框架)。不同的是,utx更着重写python,而不是写yaml文件。
这就是utx的设计理念。
shellutx startproject project_name
shellutx startproject-web project_name
text$ utx startproject demo 2021-09-01 12:39:16.491 | INFO | utx.cli.scaffold:create_scaffold:51 - Create new project: demo Project root dir: /PycharmProjects/demo Created folder: demo Created folder: demo/config Created folder: demo/logs Created folder: demo/packages Created folder: demo/report/airtest Created folder: demo/tests Created folder: demo/suites Created file: demo/.gitignore Created file: demo/conftest.py Created file: demo/pytest.ini Created file: demo/run.py Created file: demo/requirements.txt Created file: demo/config/conf.py Created file: demo/config/config.ini Created file: demo/config/__init__.py Created file: demo/tests/test_devices.py Created file: demo/tests/__init__.py Created file: demo/report/summary_template.html
在AirtestIDE中写好.air脚本,然后将文件放到suites文件中。
大胆写,能写,写出来,跑通,就已经是在写自动化,就已经是在创造价值了!
utx尊重原生用法。
airtest的封装只通过装饰器进行了运行方式的调整,没有做任何其他的冗余修改。
安装utx,自动就把这些开源利器安装上了,无需单独安装。未来会集成更多实用工具到utx中。
utx本身是很轻的。
ini[device_info]
;设备远程链接URL 设备ip+端口或者设备唯一标识id,多个设备以,分割;例如 设备1,设备2,设备3
device = 127.0.0.1:5555
;设备平台iOS或者Android
platform = android
;ios设备驱动包名,仅测试iOS时需要
wda = com.facebook.WebDriverAgentRunner.utx.xctrunner
;是否执行安装卸载操作 True/False
init = False
[app_info]
;app包名
package = com.wx.mp.test
;apk或者ipa文件名
filename = app_test.apk
[reruns]
;失败后再次运行次数,默认1次
times = 1
[paths]
;自定义执行case目录层级,文件夹名称(例如:smoke),默认为空
name =
[mode]
;False 表示 运行[suites][cases]选择的用例,True表示运行全部用例
is_all = True
;是否录制视频 True/False
record = False
[suites]
;填写用例的关键字
cases = test.air
shellpython run.py
shell# Android
python run.py --platform=Android --device=127.0.0.1:5555 --init=True
# iOS
python run.py --platform=iOS --wda=com.facebook.WebDriverAgentRunner.utx.xctrunner --init=True
参数优先级大于配置文件
多个设备以,分割; 例如 python run.py --platform=Android --device=设备1,设备2,设备3 --init=True
注意:无需配置 chromedriver ,系统会自动化维护匹配版本。
ini[web_info]
;被测的主页url
url = https://www.baidu.com/
;是否无界面运行
headless = False
[reruns]
;失败后再次运行次数,默认1次
times = 1
[paths]
;自定义执行case目录层级,文件夹名称(例如:smoke),默认为空
name =
[mode]
;False 表示 运行[suites][cases]选择的用例,True表示运行全部用例
is_all = True
[suites]
;填写用例的关键字
cases = chrome
shellpython run.py
shellpython run.py --headless=True --driver=/Users/admin/driverpath
参数优先级大于配置文件
本文作者:李佳玮
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!