「纯干货」接口项目/接口框架通通都有,都给你
每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试,领取资料可加:magetest
码同学抖音号:小码哥聊软件测试
对于众多想学习接口自动化的同学来说,一直苦于没有接口项目,今天提供给大家一个人人可用的项目,那就是企业微信,每个人都可以自行注册申请,本文将带领大家采用python+requests+pytest框架来实现企业微信接口的自动化测试 :
1. 接口项目
企业微信 https://work.weixin.qq.com/,自行注册
1. 点击API文档
2. 点击企业内部开发
3. 点击服务端API
4. 点击左侧菜单【通讯录】->【部门管理】,本文将主要采用以下业务接口来学习
2.接口测试用例设计
-
熟悉创建部门的业务
在页面上创建部门只有一个字段
而创建部门接口上的参数有很多
-
接口测试用例设计
页面上看到的业务参数远远比接口层的参数少很多
为什么要做接口测试?
1. 后端开发已经完成,前端页面还没完成,此时可以提前介入进行后端接口的测试
2. 前端页面上不能够覆盖接口层面所有的逻辑,因此我们要采用接口测试来覆盖更多的业务逻辑
-
创建部门接口测试用例
可以把接口的每一个参数都想象成一个输入框,输入框的测试用例大家都会,然后根据各个字段的规则进行设计,等价类、边界值、错误推测、正交,这些都是每个人都可以想到的,建议大家多考虑业务场景的测试用例设计
主要完成基于业务场景的测试用例设计:
部门添加正确,{"name":"教学部","name_en":"RDGZ","parentid":1,"order":1,"id":2}
部门添加正确-只有必填项,{"name":"python教学部","parentid":1}
部门名称重复,{"name":"教学部","name_en":"RDGZ1","parentid":1,"order":1,"id":3}
部门英文名称重复,{"name":"教学部
1","name_en":"RDGZ","parentid":1,"order":1,"id":4} 父级部门不存在,{"name":"教学部
2","name_en":"RDGZ2","parentid":1000,"order":1,"id":5} 部门id重复,{"name":"教学部3","name_en":"RDGZ3","parentid":1,"order":1,"id":2}
3.接口测试框架搭建
-
搭建接口测试框架
1. 安装python
2. 安装pytest,单元测试框架
pip install pytest
免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest
3. 安装requests,接口请求库
pip install requests
4. 安装allure-pytest, 测试报告
pip install allure-pytest
5. 安装allure命令行工具,并配置环境变量
6. 安装pycharm
7. 创建项目
-
框架结构
-
api: 存放单接口的定义脚本
-
common: 存放基础的公共方法,比如requests的封装、文件读取、日志处理
-
config: 存放配置文件,比如数据库配置信息、接口域名管理
-
report: 存放allure的测试报告
-
testcases: 存放测试用例脚本,测试用例是通过调用各个单接口来组装业务测试用 例脚本
-
conftest.py: 存放pytest的公共fixture以及钩子函数的
-
pytest.ini: pytest执行的相关配置
-
run.py: 整个项目的执行入口
-
调试企业微信认证接口
接口都有权限相关的认证机制,所以需要先熟悉接口的认证机制,对于企业微信项目来说:
参考如下地址:https://work.weixin.qq.com/api/doc/90000/90135/91039
corpid: xxxxxxxxxxxxxxxx
corpsecret: 密钥获取需要下载企业微信App
编写access_token的获取脚本
4. 实现common下的基础方法封装
基础方法指的是什么?
因为我们目前是在开发接口测试框架,因此接口请求的收发是我们最最最基础的一个方法
在commons目录下创建一个文件client.py,写上如下代码:
5.实现api层各个接口的定义
-
首先封装base_api
-
实现认证token获取的接口
-
实现创建部门单接口的定义
-
实现获取部门单接口定义
-
实现删除部门单接口定义
6.实现testcases测试用例层
针对创建部门这个接口实现参数化数据驱动测试
7.conftest.py 实现token获取及数据清理
为了解决上述问题,我们conftest.py中增加代码如下:
8.编写pytest.ini配置文件
可以用来配置pytest相关参数
9.编写run.py
该文件主要用于整个项目的执行,并且可以自动执行allure命令生成测试报告
10.执行后查看报告
11.上述框架中的不足
如果我们要封装一个适应不同项目的接口自动化测试框架,那么上述内容只是一个架子,我们还需 要更多增加更多的东西来实现接口自动化测试中的各种情况,比如接口自动化执行的日志、随机数据的 生成、redis数据校验、数据库数据校验、参数的动态处理、测试数据文件处理(excel/yaml等)、加解密 处理、分布式执行、持续集成等等,所以还需要读者们自行封装。
免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:magetest/关注码同学公众号:自动化软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。