「纯干货」接口项目/接口框架通通都有,都给你

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加: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/关注码同学公众号:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

posted @ 2022-09-09 09:36  码同学软件测试  阅读(93)  评论(0编辑  收藏  举报