EUI

EUI是一个基于pytest和playwright的Web UI自动化测试框架。

特点

  • 执行UI脚本录制,并且将录制的脚本转成yaml用例
  • UI自动化脚本引用,编写用例时实现参数化编写
  • 通过pytest+allure快速生成测试报告

准备工作

  1. 推荐python版本3.8以上,我用3.9.12版本,安装项目必需的模块:
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
  1. 安装并配置好allure,安装PlayWright驱动文件和浏览器文件,默认安装的是谷歌:
platwright install
  1. 自定义模块的导入处理:在 python安装目录\Python38\Lib\site-packages
    下创建pwauto.pth,文件内容为当前项目的绝对路径。这步操作是为了让自定义模块能在当前项目中正常调用(sys.path.append(“项目路径”)也可以做到,不过比较麻烦,就不采用了)

使用说明

用例名以 test_ 开头,文件格式为yaml,测试用例存放在testcase目录下。编写用例只需在yaml文件中填写内容就行了,无需关注代码。执行用例只需运行run.py即可。

注意事项

pytest.ini在Linux系统下,必须使用UTF-8编码。在Windows系统下,必须使用gbk或gb2312编码。

目录结构

EUIAuto/
├── api/
│ ├── __init__.py
│ ├── api.py
├── code_record/
│ ├── py_dir/
│ ├── __init__.py
│ ├── py_to_yaml.py # 把py脚本转换从yaml
│ ├── record_run.py # 录制页面操作,保存到py_dir
├── config/
│ ├── __init__.py
│ ├── config.py # 配置文件
├── core/
│ ├── __init__.py
│ ├── conftest.py # fixture前后置
│ ├── debug.py # 调试文件
│ ├── test_core.py # 执行用例
├── output/ # allure结果和报告
├── testcase/ # 测试用例
├── utils/ # 工具方法封装
├── pytest.ini # pytest配置
└── run.py # 运行文件

用例说明

playwright 官方文档:Playwright Docs

父关键字 关键字 描述 是否必填 备注
allure_config allure配置,用于结果展示 ✔️
allure_config feature 用例模块 ✔️
allure_config story 用例页面 ✔️
allure_config title 用例标题 ✔️
allure_config description 用例描述 ✔️
allure_config skip 跳过该用例 ❌️
fixture 执行工具函数 ❌️
fixture name 方法中文名 ❌️
fixture func 方法名 ❌️
case/validators 用例 ✔️
case/validators step 操作步骤描述 ✔️
case/validators method pw操作 ✔️
case/validators selector 元素选择器 ✔️
case/validators value 输入值 ❌️
case/validators refer 引用用例 ❌️ 填写用例的文件名称
case/validators time 强制等待 ❌️
case/validators arg 元素操作的参数 ❌️ 多个参数通过;号分割
case/validators nth 多元素选择 ❌️ 0为第一个
case/validators popup_name 新窗口 ❌️ 新窗口操作使用popup_name.method
case/validators frame_name 进入frame ❌️ 进入后操作使用frame_name.method
case/validators download_name 下载文件 ❌️ 在点击触发下载事件下加上下载名
case/validators fc_name 上传文件 ❌️ 在点击触发上传事件下加上上传名