目录
什么是接口测试
接口的概念从IT的角度出发,主要是子模块或者子系统间交互并相互作用的部分。
虽然接口的形式各有不同,但是从测试角度来说,需要测试的内容大致是相同的,功能,性能,安全。
接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点。
接口测试的优点
节约时间,缩短项目时间
提高工作效率
提高系统的健壮
接口测试原理
接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。
目的:
测试接口的正确性和稳定性(持续集成是接口测试的核心)。
接口测试测什么
单一接口
单一接口测试主要测试的是输入输出值,一些具有业务意义的值需要特别测试(例如,1和2分别代表两个测试场景,那么就不能够把他们看成是等价类,需要分开测试
组合接口
组合接口测试主要是通过组合多个单一接口,来测试一个业务场景 Example:测试购物网站的一个下单的功能,那么因为在下单之前还有一些流程,所以要测试一个场景。
测试:搜索商品 --> 选中商品 --> 添加进购物车 --> 提交订单 -->支付 (提交订单时还涉及到地址的选取等)
[注:涉及到如果使用从cookie或者session在本例中的区别:如果使用cookie加入购物车,那么换一台电脑购物车里的商品就不存在了,但如果使用的是session,购物车里面的东西就一直存在,即:cookie是本机作用的,session不止于本机作用
结构检查
(1)检查返回值的结构是否正确,如是json类型还是xml类型的数据
(2)字段名称是否正确等
接口测试内容
调用方式
HTTP调用(注意:提交数据,一定使用POST方式,不能使用GET方式。)
其他方式
参数格式校验
必选项检查 非必选项默认值 类型
取值范围 长度 全/半角、大/小写转换。
返回结果
与需求一致(返回码及返回字段)。
每种错误要有单独且明确的错误码。
接口测试的依据
测试依据-需求规范(接口文档)
接口文档包含如下内容:
1、接口概述:
- 1)接口名称
- 2)接口功能
- 3)接口类别
- 4)提交者、提交时间、需求来源及时间要求
2、HTTP请求方式
3、认证说明
4、请求限制说明
5、请求参数说明
参数名、是否必选、类型、取值范围、描述(非必选项的默认值)
6、相关约束
7、注意事项
8、调用示例
9、返回说明
- 1)返回数据格式
- 2)返回结果示例
- 3)错误代码及返回说明
可以通过开发脚本代码进行测试。
可以通过开源免费的接口调用调试工具测试或者自动化工具,如:Postman,jmeter等。
可以通过App手动测试,结合抓包工具分析,如:Fillder/Charles等。
接口文档解析实例
接口分类
API:应用程序编程接口 application
GUI:图形用户界面(接口)
这里我们主要说API——接口测试
模块接口测试
模块接口测试是单元测试的基础。它主要测试模块的调用与返回
package com.java.base;
public class InterfaceTest {
//求两个整数相加的和
public static int add(int a, int b){
return a + b;
}
public static void main(String[] args) {
//测试整数相加
int resule = add(1,2);
if(resule == 3){
System.out.println("success!");
}else{
System.out.println("fail!");
} } }
接口测试流程
HTTP工作原理
HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。
HTTP遵循请求(Request)/应答(Response)模型。Web浏览器向Web服务器发送请求,Web服务器处理请求并返回适当的应答。
HTTP请求报文
请求报文
客户端向服务器发送请求时,会给服务器发送一个请求报文。请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。URL只是标识资源的位置,而HTTP报文用来提交和获取资源。客户端发送的HTTP请求消息,包括请求行、请求头部、空行和请求体4个部分。
请求方法
序号 |
方法 |
描 述 |
1 |
GET |
请求读取一个Web页面 |