(一)HTTP接口自动化 测试用例设计postman执行讲解

接口测试这点东西测起来非常容易。但很多刚入行的同学可能不明白什么是接口测试?面试时关于接口测试的问题都有哪些?为什么需要接口测试?引入接口测试的好处?接口测试是怎么做的?测试时涉及到的注意点有哪些?关于单接口用例设计、接口联调设计怎么做?开发必须提供的规范是什么?
掌握了基础信息后,如果利用自动化的方式提升效率,快速执行接口自动化?
本文将深度全面总结以上的这些问题,并陆续完善补充。

1. 什么是接口,为什么引入接口测试

  • 精髓总结:1.为了提前介入测试,在后端以接口的方式逐一提测时,介入测试,提前为前端保障接口响应数据,加快测试进度。2.为了测试后端逻辑的单独校验,防止恶意绕过前端对后端的攻击。3.为了后续维护接口自动化,脱离前端对接口的快速回归。4.为了测试人员在测试接口的过程中,熟悉了解接口之间的互相调用,为项目后期压测做分析准备。
  • 偷个懒,引入两篇之前记录的文章,详细回答了什么是接口。
    接口自动化测试整体认知
    常见的接口以及测试详细介绍

2. 需要掌握的基础知识

  • 先贴度娘链接:HTTP协议-百度百科
  • HTTP协议有哪些?
    http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,是基于TCP的方式链接的机制。
引用面试题:
http与https的区别?
一个web端展示内容的过程,怎样的三次握手?
抓包拦截器在哪一步拦截的?
  • HTTP URL的组成?
    主机+端口|域名+路径
  • HTTP请求的组成
    请求行、消息报文头、请求正文
  • HTTP协议常用方法有哪些?
    get、post、head、put、delete、options
  • get与post方法的区别是什么
    1.get是url提交数据,可提交的数据量整个url长度存在浏览器与服务器对他的限制。浏览器ie挟制2083字节
    2.post数据是没有挟制的,单是需要看服务器的处理程序能力
    3.get请求参数会被完整保留在浏览器历史记录里。post不会
    4.get只接受ASCII字符的数据类型,post不限制
    5.get因为参数直接暴露在url上,所以不能用来传递敏感信息
  • HTTP 状态码
状态码头描述
1xx指示信息——表示请求已接收,继续处理
2xx成功——表示请求已被成功接收、理解、接受
3xx重定向——要完成请求必须进行更进一步的操作
4xx客户端错误——请求有语法错误或请求无法实现
5xx服务端错误——服务器未能实现合法的请求

3. 接口测试用例设计

  • 测试重点:检查数据的交换、传递和控制管理
  • 接口用例设计前准备:
    接口文档规范且技术评审通过
    规范:请求方式、入参、出参、类型、字段描述,结构清晰、请求示例,返回码
    接口说明:什么时候调用,业务逻辑,作用
    相关调用接口如中间层、前端等参与评审(核对前端中间层设计稿,数据结果是否符合,字段是否满足,是否有遗漏),保证接口可实施性
  • 接口测试的标准流程
    接口本身就是定义的规范,如果连规范本身都没有规范的设计文档,测试就失去了衡量标准。
    如果接口文档不规范请打回让开发重新修改。
  • 单个接口测试用例设计
输入参数测试
请求参数的必填项和可选项,每个接口入参的默认值、非空校验、NULL校验
请求参数的类型验证,异常类型
接口有翻页时,页码与页数的异常值测试
请求参数的合法输入和非法输入,参数超长
请求参数的边界值
请求参数的唯一性校验,字段顺序
请求参数的安全测试,特殊字符校验,可执行代码、sql注入
入参支持传多个值时,要考虑传的值的个数多的情况下,接口会不会报错(异步、同步)
输出参数测试
输出参数的所有返回码验证
输出参数的字段类型
输出参数的数据正确性验证:对比接口实际返回的数据结构和接口文档提供的数据结构。
输出参数返回错误提示信息合理性验证
输出的完整性:对比最终设计稿,确认接口返回的数据是否够前端呈现使用
所有列表页接口必须考虑排序值
数据库测试
数据存取字段校验,是否和入参出参数据一致,枚举值对应
数据来源去向是否正确
数据的增删改查,如数据删除后再入库查询
数据库字段状态是否更新正确
入参和出参是否在页面呈现正确
业务场景测试
根据接口调用场景模拟功能测试进行业务逻辑设计
基于业务场景的考虑,例如:登录态、权限等
其他测试
多线程同时请求测试,高并发测试
接口响应时间测试,如果响应时间过长需要排查原因,可能代码或是设计有问题
所有功能都要考虑兼容旧版本

4. 接口测试工具

  • 切换host工具:HostAdmin
  • 抓包工具:Fiddler、Charles、WireShark等
  • 调试工具: chrome developer tools、 firebug等
  • 辅助测试工具:Postman、DHC、HttpRequester
  • 性能测试工具:Apache JMeter、LoadRunner、apache ab

5.接口测试的执行

总结下接口测试的工作流程,并举例手动post测试方式

  • 熟悉业务需求,确保理解了当前业务的逻辑
  • 熟悉接口文档,准备测试数据。(需要确保当前的接口文档的各个要素能满足接口测试的需要)
  • 设计接口测试的case
  • 执行case,可以用postman或者直接写脚本测试。
  • 发送对应的测试报告。
  • 测试稳定后需要用jmeter固化下来和jenkins集成。

先附上postman官网链接postman学习中心

  • 创建接口请求行url基础介绍
    在这里插入图片描述
  • postman工具接口最基础介绍
    在这里插入图片描述
  • 常规用法post接口body录入报文实体
    在这里插入图片描述
  • 常规用法post接口文件上传 file类型key
    在这里插入图片描述
  • post脚本语言,设置接口响应报文主体,设置到全局变量中供其他接口使用,设置断言校验接口等,具体见postman学习官网
    在这里插入图片描述
    手工维护测试接口到这里就ok啦,下面把接口维护到自动化框架中,方便统一管理,便于一键执行。

6. 接口自动化测试框架

  1. 专注于业务场景,通过调用接口来完成场景处理,相对于UI自动化,服务层的接口测试更加稳定,测试用例也更加容易维护,服务层接口测试可以更关注系统整体的逻辑验证。
  2. 搭建系统间的Mock维护集成case的稳定性,可以解决系统第三方外部依赖
  • 使用框架 Jenkins+java+testng+springboot
  • 使用Jenkins无人值守持续集成,生成测试报告,配置发送邮件 传送门

7. 自动化代码demo

传送门

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值