技术栈:
Python+Pytest+Jenkins+allure
环境:
软件环境:
Windows10
Centos7
JDK1.8
Python3.7+
持续集成环境:
Jenkins:2.332.3 LTS(Docker版)
实施流程:
主程序运行:Pytest
接口调用:Requests
测试用例编写:Excel、Yaml
断言方式:Assert、数据库
测试报告:Allure
代码管理:git、GitLab
自动构建、发送测试报告:Jenkins
框架版本:
allure-pytest==2.6.4
allure-python-commons==2.6.4
PyMySQL==0.9.3
pytest==7.1.0
pytest-html==1.20.0
pytest-metadata==1.8.0
pytest-ordering==0.6
pytest-rerunfailures==10.2
PyYAML==5.1.1
requests==2.27.1
xlrd==1.2.0
xlwt==1.3.0
yml==0.0.1
openpyxl==3.0.10
代码结构:
common: 公共方法层
各个项目获取cookie、token方法,用于权限管理的公用方法;
初始化数据库、发送邮件、生成allure的一些通用方法;
封装的各种工具类,包括request请求、yaml读取、excel读取、sql语句的执行等通用类;
config:配置文件层
动态获取项目中各个目录的绝对路径;
配置各个项目的域名,以及用例存放位置;
日志等级、数据库等配置信息;
log:日志层
存放输出的运行日志;
data: 测试数据层
yaml用例文件;
excel用例文件;
report: 测试报告层
存放生成的测试报告;
testcase: 测试用例层
执行测试用例、断言、输出用例执行结果;
pytest.ini:pytest配置
改变pytest的默认行为,更改默认命令行选项;
自动发现测试模块和测试方法,可以设置会话级、模块级、类级、函数级的fixtures;
run.py: 运行
运行pytest收集到的测试用例,并生成测试报告;
测试报告:
报告形式:Allure报告
报告发送者:Jenkins
代码规范:
设置忽略:
数据库配置信息统一存放在db_conf.yml文件,git提交时此文件需要忽略;
命名规范:
模块/包名:尽量短小,并且全部使用小写字母,尽量不要用下划线;
类名使用驼峰命名风格,首字母大写,私有类可用一个下划线开头;
函数名一律小写,如有多个单词,用下划线隔开;
变量名尽量小写,如有多个单词用下划线隔开,不能以数字开头,变量名要有含义;
测试文件:以“test_xxx”方式命名,通常和测试类呼应,命名要有意义;
测试类:以“TestXxx”的方式命名,通常和文件名呼应;
测试方法:以“test_xxx”的方式命名,方法名需体现测的什么功能;
Allure安装
1、安装python插件
使用命令安装 $ pip3 install allure-pytest
2、安装allure
下载:https://github.com/allure-framework/allure2/releases
前置条件:已部署java环境
解压缩到一个目录(不经常动的目录)
将压缩包内的 bin 目录配置到 path 系统环境变量
在命令行中敲 allure 命令,如果提示有这个命令,即为成功
运行结果,查看report/result目录
1、生成html报告
运行命令 allure generate report/result -o report/html --clean
2、生成在线报告
运行命令 allure serve report/result