本框架主要是基于 Python + pytest + allure + log + yaml + mysql + 钉钉通知 + Jenkins 实现的接口自动化框架。
本框架不收取任何费用, 其优势在于测试人员直接编写测试用例,运行框架可自动生成测试代码。
框架支持多环境、多角色任意切换,支持接口响应断言以及数据库断言。
├── Cache // 存放缓存文件
├── config // 配置
│ ├── conf.yaml // 公共配置
│ ├── setting.py // 环境路径存放区域
├── data // 测试用例数据
├── docs // 文档
├── lib // 对象层,用作于接口的调用
├── log // 日志层
├── report // 测试报告层
├── test_case // 测试用例代码
├── tool // 所有公共模块的封装
│ └── assertControl.py // 断言模块
│ └── cacheControl.py // 缓存模块
│ └── dingtalkControl.py // 钉钉发送通知
│ └── excelControl.py // 读取excel文件
│ └── gettimeControl.py // 时间模块
│ └── logControl.py // 日志模块
│ └── logDecorator.py // 日志装饰器
│ └── mysqlControl.py // 数据库模块
│ └── regularControl.py // 正则模块
│ └── requestControl.py // 请求模块
│ └── runtimeControl.py // 响应时长统计模块
│ └── sendmailControl.py // 发送邮件
│ └── testcaseAutomaticControl.py // 自动生成测试代码
│ └── yamlControl.py // yaml文件
├── Readme.md // help
├── pytest.ini
├── run.py // 运行入口
allure-pytest==2.9.45
allure-python-commons==2.9.45
atomicwrites==1.4.0
attrs==21.2.0
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.7
colorama==0.4.4
colorlog==6.6.0
cryptography==36.0.0
DingtalkChatbot==1.5.3
execnet==1.9.0
Faker==9.8.3
idna==3.3
iniconfig==1.1.1
jsonpath==0.82
packaging==21.3
pluggy==1.0.0
py==1.11.0
pycparser==2.21
PyMySQL==1.0.2
pyOpenSSL==21.0.0
pyparsing==3.0.6
pytest==6.2.5
pytest-forked==1.3.0
pytest-xdist==2.4.0
python-dateutil==2.8.2
PyYAML==6.0
requests==2.26.0
six==1.16.0
text-unidecode==1.3
toml==0.10.2
urllib3==1.26.7
xlrd==2.0.1
xlutils==2.0.0
xlwt==1.3.0
一、安装Python环境
# 1、下载Python程序
# Python包地址:https://www.python.org/ftp/python/
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
# 2、解压Python-3.8.5.tgz
tar -zxvf Python-3.8.5.tgz
# 3、编译安装
sudo mkdir /usr/local/python3.8.5
cd Python-3.8.5
sudo ./configure --prefix=/usr/local/python3.8.5
sudo make && sudo make install
# 4、建立软链接
sudo ln -s /usr/local/python3.8.5/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python3.8.5/bin/pip3 /usr/bin/pip3
# 5、验证安装
python3 -V
pip3 -V
二、安装虚拟环境、创建虚拟环境
# 1、安装虚拟环境virtualenv
yum install -y python-virtualenv
# 2、创建虚拟环境
# 在项目根目录创建虚拟环境
virtualenv -p python3 venv
# 3、激活虚拟环境
source ./venv/bin/activate
# 4、退出虚拟环境
deactivate
输入如下命令,安装本框架的所有第三方库依赖
pip install -r requirements.txt
首先是配置文件,这里主要存放了一个公共的配置数据,如项目名称、钉钉、邮箱、企业微信、数据库等相关的配置全部都在这里
所有的字段,在conf.yaml中,都有相关的注释,自行修改即可。
目前框架主要是用的企业微信通知,在用例执行成功之后发送通知,通知内容如下,可以根据公司主要使用的通讯工具自行更改。
在公共方法中分别封装了钉钉通知、以及邮箱通知。
如程序执行执行异常时,会自动收集错误信息,并将内容发送邮件。
setting.py 文件主要是用来存放项目中所有文件的目录地址
更改过一些公用的配置之后,下面我们来开始编写自动化
上方主要是测试用例,测试用例是整个自动化程序中非常重要的一部分,需要严格按照我上方图中的格式进行编写。
下面我会对每个字段依次进行解释对应的作用。
{{MerchantHost}}
为接口的host,放在conf.yaml 文件中,可以更改成公司项目的hostjson
、 params
、 file
或者 data
格式假设我们按照上方图中的格式内容,创建了一个用例创建成功之后yaml文件的用例,创建之后下面我们来生成自动化脚本,执行第一条用例。
首先,我们找到tools目录下的 testcaseAutomaticControl.py
文件,然后执行这里的代码
执行成功之后,我们可以看到lib目录下,会生成一个和创建用例yaml文件名称一模一样的py文件。
内容如下:
下面我们就可以开始执行我们的测试用例了,这里生成的文件,主要类似于我们自动化模型中的PO模型,生成的page
执行之后,我们可以看到下方详细的请求日志信息,方便我们进行用例调试
test_case --> test_apply_verifycode.py
用例调试成功之后,下面我们进入编写用例脚本阶段,主要内容如下:
其中代码中关于pytest的相关内容,网上的资料有非常多,并且非常详情,这里不做赘述。
所有的用例内容,格式都为统一的,唯一需要自己修改的就是类、函数名称,以及测试用例的路径。
因为测试用例层,不同的公司业务多种多样,并且很多业务逻辑较为复杂,因此这里没有采用自动生成脚本的形式,还需测试人员自己编写。
用例添加完成之后,执行run.py,程序会执行所有文件的用例,并且生成测试报告,发送钉钉通知。
以上便是整个框架的使用说明,这个框架属于个人业余时间开发,大家如果在使用中遇到什么问题,或者有相关建议,可以随时反馈给我,
框架内容会随着大家的反馈,持续更新!
如果觉得框架有帮助到你,麻烦收藏一下哦~~谢谢。