测试用例设计思路:
从输入参数进行考虑设计:
1)优先级-针对所有接口
1、暴露给其他系统、第三方调用接口
2、系统内部调用的核心功能接口
3、系统内部调用的非核心功能接口
2)优先级-针对单个接口
1、正向测试用例优先,逆向测试用例次之(通常情况下是这样)
2、是否需要满足前提条件>是否携带默认值参数>参数是否必填>参数之间是否存在关联>参数数据类型限制校验>参数数据类型自身的数据范围值限制校验
3)设计分析
从接口测试后端业务逻辑来讲,设计接口测试用例需要考虑以下几方面:
1、是否满足前提条件
有的接口需要首先满足一定条件,才可成功获取数据。最常见的就是需要用户登录信息的接口(用户token)
逆向用例:设计不满足前置条件的用例
2、是否携带默认值参数
正常测试用例:
存在默认值的参数都不填写、不传参,必填参数都填写正确并且存在正确的常规之。这方面考虑设计测试用例
3、业务逻辑、功能需求
这个环节需要根据具体的业务需求,结果接口定义文档,可设计出多条正向用例和逆向用例
4、参数是否必填
针对每个必填参数,设计一条或多条参数值为空的逆向测试用例
5.参数之间是否存在关联
可根据参数之间的相互关联设计一条或多条用例
6.参数数据类型限制
针对每个参数类型设计与定义的类型不符的逆向测试用例
7、参数自身的数据范围值限制校验
针对所有参数,设计每个参数在数据范围内为最大或者最小的正向测试用例:
这对所有参数,设计一条或者多条参数值超过或者小于数据范围的逆向测试用例
总结:如果以上几个方面考虑全面的话,基本可覆盖以下三点:
a、主流测试用例:正常的主流程业务需求校验
b、分支流程测试用例:正常的分支流程需求校验
c、异常流程测试用例:异常业务场景的容错校验
8.从输出参数进行考虑设计:
1)输出结构是否与接口文档定义的一致
2)输出的各个字段类型是否与接口文档定义的一致
3)输出的各个字段的值是否符合逻辑且值正确
9.测试环境:
进行接口测试之前首先需要与开发确认好测试环境,通常情况下,需要在三个环境进行测试:测试环境、准生产环境及生产环境
10.测试方式:
1)手工测试:手工测试就是借助浏览器或者部分测试工具(postman、Jmeter等)手动执行测试用例的过程。针对新开发接口建议首先进行全面的手工测试后再将部分可重复执行用例加入自动化测试
2)自动化测试:接口测试相对容易实现自动化,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,是支持后端快速发版需求,达到低成本高收益的根源
接口自动化测试同样需要有需求分析、用例设计,依据用例设计使用python或者java等语言结合框架,编写自动化测试脚本,实现接口自动化测试、自动执行及自动发送测试报告等环节
一个好的接口自动化测试框架应该涵盖以下几点:
a)流程方面:在回归阶段加强接口各种场景的覆盖度,并逐步向系统测试,冒烟测试阶段延申,最终达到流程自动化
b)结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等
c)问题定位:报错信息、日志更精准,方便问题复现与定位
d)结果校验:加强自动化校验能力,如数据库信息校验
11.其他关注点
以下者部分测试同业务逻辑测试同等重要,甚至从某种意义上讲,比业务逻辑测试更加重要,测试过程中不容忽视
接口后端测试其他关注点:
1)技术性用例设计:数据库存储逻辑、缓存逻辑、消息队列逻辑、数据处理、消费逻辑
2)技术方案用例设计:发布流程方案验证、数据迁移方案验证、服务迁移方案验证、日志输出方案验证
12.接口类型:
HTTP协议以及Restful API 接口测试
HPPT<超文本传输协议>的缩写。是用于从www服务器传输超文本到浏览器的传输协议。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端和服务器模型,主要特点是:
1)支持客户端/服务器模型
2)简单快速
RESTful是典型的基于HTTP的协议。RESTful API 就是REST风格的API.现在终端平台多样,移动、平板、PC等许多媒介向服务端发送请求后,如果不适用RESTful API,需要为每个平台的数据请求定义响应的返回格式,以适应前端显示。但是RESTful API 要求前端以一种预定义的语法格式发送请求,那么服务端就只需要定义一个统一的响应接口,不必像之前那样解析各色格式的请求
HTTP主要特点:
简单快速:客户向服务器请求服务时,只需要传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度快
灵活:HTTP允许传输任意类型的数据对象
无连接:现在每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
媒体独立:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送
无状态协议,指协议对于事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时他的应答就较快
HTTP请求类型:
根据HTTP标准,HTTP请求可以使用多种请求方法
HTTP1.0定义了三种请求方法:GET POST HEAD
HTTP1.1新增了五种请求方法:OPTIONS PUT DELETE TRACE CONNECT 方法
HTTP状态码:
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接受并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息(server header)用以响应浏览器的请求
HTTP接口测试方式:
接口功能测试:测试这个接口的功能是否实现,并且测试这个接口是否按照接口文档来进行开发的
业务场景测试:主要指的是一些一套业务逻辑的关系测试(比如用户登录-浏览-加购物车-下单-支付-确认订单)
异常测试:异常测试主要建立在接口功能和业务场景测试通过的情况,检查接口在输入异常情况下的处理能力,通常包含参数异常和数据异常。1)参数异常:关键字参数(应用其他的关键字替换进行测试)、参数为空、参数多少(通过添加参数增添个数)参数错误
2)数据异常:关键字数据(填入的数据用其他的数据语言的数替用)、数据长度、数据为空、数据错误