有测试问题请微信联系作者,备注来意(点击此处添加)
240
一名普通的测试打工人;专注自动化测试技术研究、实践、总结、分享、交流。
用我8年+的经历,给大家带来更多实用的干货。
人若有志,就不会在半坡停止。

【接口自动化测试实战】python+requests+Pytest+Excel+Allure(持续更新中。。。)

前言

不知道该如何设计自动化框架?
不知道怎么搭建持续集成环境?
下面带大家一起来盘盘它?走起 ~~

一、先来了解下pytest

  • pytest 是非常成熟全功能的Python测试框架。
  • 可以覆盖unittest能做到的各种各样场景,比如:单元测试、web测试、app测试、接口测试等等。
  • pytest是个插件化的平台,它比unittest更强大也在此。目前已经有大量第三方插件扩展和增强它的功能
  • 你可以根据自己需求,定制化开发出自己的插件
  • 可以很好的和CI工具进行结合

pytest与unittest区别:

带你清楚了解pytest和unittest:https://www.cnblogs.com/upstudy/p/15921090.html

为什么选择pytest而不是unittest,相信大家通过上面的文章心里面已经有了答案。
任何框架、工具的出现都是为了解决某些问题,pytest的操作简单,功能强大也致使它成为主流。

二、需要具备的基础知识

python基础

待更新

liunx基础

待更新

git基础

待更新

三、开发环境准备

python/pycharm安装及环境配置

https://www.cnblogs.com/upstudy/p/16056201.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.36  
allure-python-commons==2.8.36  
configparser==5.0.0  
PyMySQL==0.9.3  
pytest==5.4.3  
pytest-html==2.1.1  
pytest-metadata==1.11.0  
regex==2020.11.13  
requests==2.25.1  
requests-toolbelt==0.9.1  
xlrd==1.2.0  
xlwt==1.3.0  
pyDes==2.0.1  
ruamel.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
待更新

posted @ 2022-02-26 22:25  三叔测试笔记  阅读(897)  评论(0编辑  收藏  举报
返回顶部 跳转底部