基本思路
接口测试能做什么,接口测试怎么做(接口文档、接口用例、接口用例设计思路),postman工具的使用,接口中常见的问题
接口测试能做什么
可以发现很多在页面上发现不了的bug,比如页面上有对参数校验,我们无法确定后台是否也对参数进行了校验,通过接口可以判断后台是否对参数进行了相关校验。
检查系统的异常处理能力,比如:必填参数不填、参数类型错误,后台是否给出相应的错误提示。
检查系统的安全性,通过接口可以查看系统的核心数据是否进行了加密,比如:用户身份信息、银行卡信息。一般是要求进行加密的。
接口测好了,后端就不用变动了。前端的变化不会影响到后端,这样当更新了对应的UI的时候,只需要调用对应的接口即可。
接口测试怎么做
接口文档、接口测试用例、接口用例设计思路
接口文档
接口测试要有接口文档,理解接口以及参数含义;然后根据接口文档编写接口测试用例;写完接口测试用例之后在接口测试工具中执行。
接口文档主要内容:
主机路径、公共参数、接口名称、接口路径、请求方式、请求头参数、请求参数、返回示例结果 等。
主机路径
公共参数
接口名称
接口路径
请求方式
请求头参数
请求参数
一般会对参数进行描述:参数的含义、数据类型、是否是必填。
返回示例结果
在返回的实体数据中通常会有自定义的响应码,比如我们公司:
10000 成功;
10001 参数不全;
10002 参数类型错误;
10003 缺少认证信息;
10004 认证超时;
10005 权限错误。
接口测试用例
接口测试用例和功能测试用例有些区别,我们公司的接口测试用例主要包括:id、所属模块、接口名称、接口地址、请求方式、header、是否依赖、请求参数、预期结果、实际结果。
接口用例设计思路
通过性验证、参数组合判断、参数异常验证、接口安全、接口之间业务场景问题
通过性验证
首先我们要保证这个接口的功能是正常的,也就是正常的通过性测试。按照接口文档上的ip地址、路径、参数、请求头,正常传入,查看是否可以返回正确的结果。
参数组合判断
当然接口中存在多个参数时,需要对参数进行组合填写,判断后台响应是否正确。
我们在做接口测试时需要考虑各种参数的组合情况,比如:全部传递、只传两个、只传一个、一个参数都不传等这些情况。
参数异常验证
除了参数组合情况,还要考虑异常验证——就是不按照接口文档上的要求传递参数,来验证接口对异常情况的校验,包括一些不合法参数值。常校验的问题是:必传非必传、参数类型、入参长度,看后台是否提示错误。
接口安全
接口安全方面的用例,主要就是关键信息、敏感数据是否进行了加密,比如:登陆的接口、用户名和密码以及返回的敏感数据是否进行了加密,如果不加密的话,别人拦截到请求,就能获取到个人敏感信息了。
接口之间业务场景问题
做接口测试,要考虑多个接口之间的衔接关系。涉及到不同的业务,可能会涉及多个接口,需要按照场景来执行这些接口,来测试场景问题。
postman工具的使用
设计完用例,接下来就是使用工具进行接口测试了,我们经常使用的时postman这个工具。首先我说下postman工具的简单使用:
接口请求
如果在postman中发送接口请求,需要设置:请求方式、请求路径、请求头、请求参数这些,这些数据填写在postman中也是比较简单的。
postman中接口请求方式也很多,常用的就是get、put、delete、post这些。
对于post有三种请求报文格式,分别是:
form-data 可以上传键值对文本数据和文件数据,常用在图文混传;
x-www-form-urlencoded 只是键值对文本格式的数据;
raw 传递任意格式的文本数据,像text、json、xml。
当然postman还可以添加断言,在批量执行测试用例的时候自动判断接口是否通过。
接口依赖
在做接口测试的时候,接口之间是避免不了的,postman中做接口依赖的处理也非常简单:
首先需要在提供数据接口的tests中添加几行代码,用于获取数据并将其设置成环境变量,然后到下一个接口需要用到数据的地方用“{{}}”引用就可以了。
Mock-Server
有时我们在做接口测试的时候,需要修改后台数据来查看接口数据的变化,但是往往测试人员并没有修改后台数据库的权限,那么postman中模拟服务器mock server就能帮助我们模拟的返回修改数据,大体操作步骤就是:先请求真实的服务器拿到返回的json数据,并将其保存为一个示例,然后把模拟的数据传送到postman服务器上,获取一个模拟主机路径,那么以后只需请求这个模拟路径即可。
接口中常见的问题
在接口测试中,遇到的简单bug:
添加购物车的时候,商品的id传递正常存在的商品可以添加成功,但是添加不存在的商品id报错空指针异常。
通过前端添加商品到购物车的时候,商品数量在库存充足的情况下,最多可以添加200件商品,如果库存不足200件的时候,添加商品数量就=库存量;但是在接口中直接添加商品却没有这个限制,都能添加成功。这说明前台对商品数量有校验,后台没有校验。
测试搜索商品接口的时候,有keyword、page页码和pageSize(每页展示条数)等参数。按道理不传page和pageSize的时候应该是有默认值的,但是我们的接口在最初的时候必须传递,否则报错。