Skip to main content

UTX will help you write ui automated tests more easily!

Project description

UTX

PyPI PyPI - Python Version Downloads GitHub top language GitHub stars https://blog.csdn.net/flower_drop

logo

安装

  • 命令行执行
pip install -U utx

设计理念

很大程度上借鉴了HttpRunner(优秀的框架)。不同的是,utx更着重写python,而不是写yaml文件。

  • 简单是更好的
  • 每个人都能用python写自动化
  • UI自动化跟的上冲刺迭代和UI变更

这就是utx的设计理念。

项目结构

  • utx提供了快速创建项目的能力,也就是脚手架。
  • 【app脚手架】
utx startproject project_name
  • 【web脚手架】
utx startproject-web project_name
$ 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

调用流程图

专注于写脚本

  • 项目结构很清晰。在conftest.py进行一些初始化/参数化/清理工作,在suites/写测试脚本。

在AirtestIDE中写好.air脚本,然后将文件放到suites文件中。

  • 更注重平铺写脚本的方式,这样就离“每个人都能用python写自动化”更近一步。毕竟封装之后看着容易晕,我也晕。
  • 去除掉框架的约束,给每个人写python的自由,在测试脚本里你可以尽情发挥你的代码风格,代码能力,千人千面。代价呢,就是代码质量参差不齐。

大胆写,能写,写出来,跑通,就已经是在写自动化,就已经是在创造价值了!

轻封装

utx尊重原生用法。

airtest的封装只通过装饰器进行了运行方式的调整,没有做任何其他的冗余修改。

  • faker,造数据工具
  • pytest,测试框架
  • airtest,自动化测试工具
  • tidevice,iOS设备管理工具
  • pandas、numpy,数据处理工具

安装utx,自动就把这些开源利器安装上了,无需单独安装。未来会集成更多实用工具到utx中。

utx本身是很轻的。

核心价值

  • 上手 0 门槛,iOS/Android 设备均实现即插即用,随写随调
  • 测试用例可读性高,编写成本低,支持python语法,便于公共操作抽象,进一步提高用例可维护性
  • 用例执行高鲁棒性,多设备机型切换无需更改用例适配
  • 执行集创建简单,支持智能并发、分组单模块执行,更高效更灵活

功能介绍

  1. 支持android,ios,web 平台的自动化测试框架
  2. 脚本批量执行
  3. 每个脚本执行日志分开存放
  4. 每个脚本单独生成一个html报告并在父文件夹生成一个聚合报告
  5. 自定义的聚合报告,详细展示运行结果
  6. 重试机制,运行失败自动重跑,可自定义重跑次数
  7. 自定义脚本运行,可选择部分模块单独运行
  8. 自带脚手架工具可以快速生成框架目录

app使用说明

  • 只需在配置文件中填好相关内容,即可运行!
[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
  • app启动命令
  1. 普通启动
python run.py
  1. 参数化启动
# 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

web使用说明

  • 无需关注 chrome浏览器驱动

注意:无需配置 chromedriver ,系统会自动化维护匹配版本。

  • 只需在配置文件中填好相关内容,即可运行!
[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
  • web启动命令
  1. 普通启动
python run.py
  1. 参数化启动
python run.py --headless=True --driver=/Users/admin/driverpath

参数优先级大于配置文件

运行结果

  • 报告展示

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

utx-1.3.0.tar.gz (5.7 MB view details)

Uploaded Source

Built Distribution

utx-1.3.0-py3-none-any.whl (5.7 MB view details)

Uploaded Python 3

File details

Details for the file utx-1.3.0.tar.gz.

File metadata

  • Download URL: utx-1.3.0.tar.gz
  • Upload date:
  • Size: 5.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for utx-1.3.0.tar.gz
Algorithm Hash digest
SHA256 d08ed20cfe641e0d0dc0d3a5550948bdd6dfbdbacc205aa0600fcca4062e4e3b
MD5 20854829a8ed94a6853b84e3a1d05ff0
BLAKE2b-256 3f33c195418ec9b8a789cbd27f7ebabd488cdf1c8068595ad9cd4e770d142531

See more details on using hashes here.

Provenance

File details

Details for the file utx-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: utx-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for utx-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bbf5662be10c460f858bc5a31d541a4c24d5c3424d47df2704a7dc786e1fa7e4
MD5 918b9ef4806f249134cdad560b3691ec
BLAKE2b-256 27405e372f0bfda3bd426cec221691efcab923784771db06435eac3a7a53207d

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page