vlambda博客
学习文章列表

关于接口测试,我们需要知道的

对于新人尤其是非对口专业的新人来说,可能会不大了解什么是接口(API),什么是接口测试,我们该怎么做(当年的我也是如此)。

抽空整理下关于接口测试的一些内容,希望能为新手小白解惑,同时也是自我知识的梳理。




还不知道什么是接口测试的,。



关于接口测试,我们需要知道的


常见的web接口有http接口(基于http协议)、webservice接口(基于soup等协议)。

今天要讨论的是web接口中的http接口。





接口的组成



一个接口包含这么几部分:协议,IP、端口(也可以是Host),请求路径,参数及参数值,请求体,请求方式,请求头。


关于接口测试,我们需要知道的


请求协议

常见的有http和https,https是加密的http请求,传输数据更安全

请求IP、端口

如:127.0.0.1:8080,也可以是域名,通常叫Host

请求路径
请求方式(method)

易见的有以下几种:

get:获取数据

post:提交数据,如表单,一般是新加内容

put:修改数据,有时候也会用post

delete:删除数据


当然还有其他的,这个在postman的请求方式选择菜单中可以看到,稍作了解就好。

请求参数及参数值

接口路径后“?”后的那一段,key=value这种形式,多个参数用“&”连接

请求体(body)

请求正文,可以是表单,也可以是json、xml、html等格式。

请求头(header)

客户端环境以及一些请求的校验信息,如:cookie、token等。





测接口到底要不要抓包



在我刚接触接口时,查阅了网上的一些资料,都是告诉我们先怎么抓包,怎么识别接口,然后再模拟接口请求,所以就走进了一个误区:测接口,先抓包。


其实不是这样的,后端开发出接口后,一般都有接口说明文档的,包含前面说到的接口的各个部分和返回参数说明,我们只要参考说明文档,利用接口测试工具来组装接口,发送请求就行了。


在上一篇文章中,有提到做接口测试能让测试先行,提前发现并解决部分问题。像我现在所在的公司,就我一个测试,如果等到app开发完提测了,要做接口测试,又要做前端的功能测试,那估计上线时间就要推迟了。


关于接口测试,我们需要知道的





接口测试用例怎么设计



接口测试其实也是一种功能测试,所以在设计用例时可以参照功能测试用例的思路。

从大方向来说,可以归结为以下几点:


1、单接口的测试用例设计

正常场景:按接口文档上的说明,传入正确的参数和值,看能不有得到正确的返回结果。
异常场景:不按文档说明来传,如:必填参数未填说明传整形的传个字符串类型;长度为11,传的10或者12。
参数组合:有些接口不同的参数组合会得到不同的结果,所以需要一一验证不同的参数组合时,得到的结果是不是正确的。


2、业务逻辑测试用例设计

这个就要具体业务具体分析了,可能会涉及到多个接口间数据的传递。
举几个例子:

支付密码连续输入5次后,冻结24小时;

注册成功后,需要自动登录(登录接口要返回用户token);

闯关需要消耗精力;

拼手气红包不能多发

......


3、其他场景

根据实际情况来,补充在单接口和业务逻辑上没有覆盖到的场景,如:

接口响应时间不能超过200ms;

敏感信息需要加密;

并发测试,大量数据测试等。


这里有一份接口测试用例设计图,供参考 关于接口测试,我们需要知道的

关于接口测试,我们需要知道的





用什么工具测



接口测试的工具有很多,推荐postman和Jmeter。

postman:使用简单,功能强大的一款API测试工具,也是开发人员常用的一款工具,支持用例管理、自动化、环境管理、变量管理、批量运行、多人协作等。下载地址:https://www.postman.com/downloads/。
Jmeter:一款由Java语言开发出来的测试工具,主要用来做性能测试。Java环境下直接运行,无需要安装,内存占用小,轻便简单,免费开源。下载地址:https://jmeter.apache.org/download_jmeter.cgi。


关于接口测试,我们需要知道的


注意:

在Jmeter中,如果是https请求,端口号填443;

当Body Data添加内容后,需要注意在请求头里添加对应的Content-Type,如:请求体是json格式时,添加Content-Type的值为application/json(我第一次在Jmeter中添加请求体是json格式的接口时,就踩了这个坑


关于接口测试,我们需要知道的


说到底工具只是一种手段,一种工具会用了,举一反三,其他工具也不会太难。了解原理,理解业务,把握核心才是关键。




关于接口测试,我们需要知道的 关于接口测试,我们需要知道的 关于接口测试,我们需要知道的 



END




受限于经验和文笔,不对之处,欢迎留言指正



点个“在看”鼓励下吧