ui自动化-pytest+airtest+ocr+flask完整落地方案

ui自动化-pytest+airtest完整落地方案

注意:目前仅支持安卓

技术方案:pytest,airtest,requests,cnocr,paddleocr,flask

代码下载

👉点击此处下载代码

该方案都实现了什么?

  1. 通过ocr文字识别技术点击目标文字等
  2. 通过airtest图像查找技术点击目标图片
  3. 使用插件pytest-xdist,实现了一套代码可同时控制多个手机执行不同的用例,实现一个进程控制一个设备(可根据用例自己分配,也可以交给xdist自己调度)。
  4. 集成metersphere,metersphere是一个接口自动化测试平台,目前将metersphere和ui自动化做了集成,目的是通过接口自动化造数据,再进行UI自动化测试(可以根据需要调整,代码中调用的metersphere接口是自定义的,主要为你提供接口自动化和UI自动化融合的思路)
  5. 被测app版本检查及自动卸载安装
  6. 可以根据用例目录自定义用例执行优先级
  7. pytest-html报告集成airtest报告
  8. 修改airtest报告支持ip访问
  9. 编写pytest-html聚合报告页面
  10. 报告执行结果统计,钉钉通知等

核心技术

1. OCR文字识别技术

  • 通过ocr文字识别技术获取目标文字坐标
  • 使用ocr库:cnocr,百度paddleocr(因为部分电脑无法使用paddleocr,因此加入cnocr做了兼容)
  • 优缺点:执行效率低,用例可维护性强,识别成功率高
  • 部分功能举例:
    • ocr_touch:点击目标文字
    • ocr_touch_input:点击目标文字并输入
    • ocr_exists:判断目标文字是否存在
    • ocr断言:ocr_assert_exists,ocr_assert_not_exists

3. airtest图像识别技术

  • 优缺点:执行效率相对较高,用例可维护性较低,更致命的缺点是网易的图像识别技术成功率相对较低,可以自己通过poco实现来代替图像识别

4. 安卓版本检查

  • 检查手机app版本,手机安装app版本与代码指定待测版本不一致,将卸载并重新安装指定版本

5. 支持app版本参数化

  • 将app版本号进行参数化,可以依次执行多个app版本的测试,每一个app版本都将运行所有的用例

6. 用例执行前后分别做了什么?可以查看conftest.py文件

  • 所有用例执行前,连接一次安卓设备
  • 每一个app版本测试前,进行版本检查(即卸载安装),环境切换,登录等操作(可根据业务需求调整要做什么事)
  • 每一个用例执行完后生成airtest报告
  • 所有用例执行完成后,生成pytest-html报告,结果统计并发送钉钉通知

如何使用及代码基本配置

  1. 数据库配置(用例存放测试报告及统计结果,主要作报告展示用)
  2. config.py文件配置安卓手机设备号,包名,被测app版本号等
  3. 钉钉通知secret,access_token配置
  4. packages目录,用来存放app安装包,命名方式:3.34.0.apk,如果和自己需求不符合可自行调整代码

所需sql

CREATE TABLE IF NOT EXISTS pytest_report (
    id INT AUTO_INCREMENT PRIMARY KEY,
    report_name VARCHAR(255) NOT NULL COMMENT '测试报告的名称',
    status varchar(255) NOT NULL DEFAULT 'running' COMMENT '状态:running, error, success, failed',
    total INT NOT NULL DEFAULT '0' COMMENT '测试用例总数',
    failed INT NOT NULL DEFAULT '0' COMMENT '失败用例数量',
    passed INT NOT NULL DEFAULT '0' COMMENT '通过用例数量',
    dt_created DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '报告创建的日期',
    UNIQUE KEY `report_name` (`report_name`),
    KEY idx_report_name (report_name)
);

报告示例

  1. pytest-html聚合报告

  2. 自定义pytest-html报告

posted @ 2024-11-22 18:00  扬帆去远航  阅读(355)  评论(0)    收藏  举报