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


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

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

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

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

  • 相关阅读:
    eclipse里打包时排除.svn目录
    UltraEdit搭建python IDE环境+设置快捷键
    Window下 VC2008 Express 配置 OpenGL
    N73 getRGB createRGBImage 透明色的问题
    Iphone UIApplication openURL能帮助你运行Maps,SMS,Browser, Calling甚至其他的应用程序
    Eclipse配置KEmulator
    洛谷P1439 【模板】最长公共子序列 (DP,离散化)
    Codeforces Round #642 (Div. 3) D. Constructing the Array (优先队列)
    Codeforces #6241 div2 C. Orac and LCM (数学)
    洛谷P1469 找筷子 (位运算)
  • 原文地址:https://www.cnblogs.com/testfan2019/p/16671657.html
Copyright © 2020-2023  润新知