前言
不知道该如何设计自动化框架?不知道怎么搭建持续集成环境?下面带大家一起来盘盘它?走起 ~~
一、先来了解下pytest
- pytest 是非常成熟全功能的Python测试框架。
- 可以覆盖unittest能做到的各种各样场景,比如:单元测试、web测试、app测试、接口测试等等。
- pytest是个插件化的平台,它比unittest更强大也在此。目前已经有大量第三方插件扩展和增强它的功能
- 你可以根据自己需求,定制化开发出自己的插件
- 可以很好的和CI工具进行结合
pytest与unittest区别:
**带你清楚了解pytest和unittest:**https://www.geek-share.com/detail/2856454460.html
为什么选择pytest而不是unittest,相信大家通过上面的文章心里面已经有了答案。任何框架、工具的出现都是为了解决某些问题,pytest的操作简单,功能强大也致使它成为主流。
二、需要具备的基础知识
python基础
待更新
liunx基础
待更新
git基础
待更新
三、开发环境准备
python/pycharm安装及环境配置
https://www.cnblogs.com/upstudy/p/15938978.html
java安装及环境配置
https://www.cnblogs.com/upstudy/p/15940591.html
linux环境
待更新
tomcat部署及配置
待更新
jenkins安装配置
待更新
git安装配置
待更新
Allure安装配置
- 百度网盘下载地址:
链接:https://pan.baidu.com/s/1fTbi3QMDeJeJdbMd4EQPig提取码:ss11
- 配置环境变量
- 验证Allure,如下图说明配置成功
需要的依赖包安装
pip安装一下依赖包(例如:
pip install pytest
)
allure-pytest==2.8.36allure-python-commons==2.8.36configparser==5.0.0PyMySQL==0.9.3pytest==5.4.3pytest-html==2.1.1pytest-metadata==1.11.0regex==2020.11.13requests==2.25.1requests-toolbelt==0.9.1xlrd==1.2.0xlwt==1.3.0pyDes==2.0.1ruamel.yaml==0.17.10
快速安装技巧将上面内容存入一个txt文件中,直接pip install 安装
pip install -r requirements.txt
四、接口自动化实战(设计项目目录)
目录结构
├── base // 工具
│ ├── api_requests.py // requests请求封装
│ ├── asert_contrast.py // 断言封装
│ ├── log.py // 日志封装
│ ├── public.py // 常用路径等操作封装
│ └── read_data.py // 读取文件数据
├── config // 配置文件
│ └── config.yml // 环境配置
├── data // 文档
│ ├── └── demo.yml // 测试数据
│ └── …
├── log // 日志文件
├── page // api方法封装
│ ├── └── demo.py // 用例方法
│ └── login.py // 登录封装
├── report // 测试报告生成路径
├── test_case // 用例脚本
│ ├── └── test_demo.py // excel用例脚本编写
│ └── …
├── excel_data // excel用例
│ ├── demo.xlsx // excel用例文件
│ └── …
├── conftest.py // pytest自定义命令行参数,切换环境
├── pytest.ini // pytest配置文件
├── README.md // 帮助文档
├── requirements.txt // 依赖包
├── run_all.py // 调试执行
└── 架构设计.xmind //导图
五、方法封装
**自动化测试框架(以下源码请联系作者获取) **
封装requests请求方法
导入requests包,使用requests.request()方法,进行封装请求方法到ApiRequest类中:
注:此封装方法需要根据请求的方式(GET/POST),来传入封装的方法中进行请求。
封装公共方法
封装获取文件路径的公共方法,便于拼接文件路径
封装读取文件方法
- yaml文件读取封装,需要传入文件参数来获取文件数据
- excel文件读取封装,也需要传入文件路径,直接继承ReadYaml即可
调试成功打印数据:
断言封装
传入接口相应的数据及预期结果,进行判断
封装log日志方法
日志封装中需要传入日志项目名及日志等级,以便灵活调整日志信息
调试成功打印数据:
数据文件(配置文件/测试用例数据文件)
- config环境配置文件
- yaml测试数据文件
- excel测试数据文件
六、编写自动化用例脚本
test_case目录中新建用例文件,并编写用例
导入相应包,编写用例类及测试用例
运行调试自动化脚本
使用Allure输出自动化测试报告
七、持续集成
部署jenkins环境
待更新
配置jenkins并安装必要插件
待更新
上传代码到git
待更新
jenkins配置自动化项目
待更新
运行调试项目
待更新
优化自动化项目
待更新
八、其他自动化框架
无需写代码的自动化框架
接口自动化框架接口自动化测试框架【windows版】: jmeter + ant + jenkins待更新
接口自动化测试框架【linux版】: jmeter + ant + jenkins待更新
接口自动化测试框架: jmeter + maven + jenkins待更新
UI自动化框架UI自动化框架RobotFramework+Selenium2Library库待更新
要写代码的接口自动化框架
接口自动化框架接口自动化测试框架:python+request+pytest+allure待更新
接口自动化测试框架:python+request+unittest+allure待更新
接口自动化测试框架:java+httpclient+testng+allure待更新
UI自动化框架UI自动化框架:python+selenium/appium+pytest+allure待更新
UI自动化框架:python+selenium/appium+unittest+allure待更新