接口测试
前言
上次我们在讲业务开发时,就讲到了接口开发的接口文档,其实接口文档也是接口测试的必备工具。接口文档,说白了,就是供人查看的文档(一般采用Restful风格编写),通过规范接口文档编写标准,保证不同的人写出来的文档可读性和可维护性俱佳。接口文档里面定义着接口的组成。
接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。我经常使用的是http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的postman或者jmeter进行接口测试。
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。由接口文档可知,接口至少应有请求地址、请求方法、请求参数(入参和出参)组成,部分接口有请求头header。请求头是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在请求头与 HTML 文件之间尚需空一行分隔,一般存放cookie、token等信息。请求头和入参是有着巨大的关系的,header里存放的参数一般存放的是一些校验信息,比如cookie,它是为了校验这个请求是否有权限请求服务器,如果有,它才能请求服务器,然后把请求地址连同入参一起发送到服务器,然后服务器会根据地址和入参来返回出参。也就是说,服务器是先接受header信息进行判断该请求是否有权限请求,判断有权限后,才会接受请求地址和入参的。
一、接口文档具体格式
用户登录接口
接口说明: 用户登录接口
接口地址: /api/login
请求方式: POST
请求参数
请求示例
{
"data": {
"attributes": {
"username": "username",
"password": "password"
}
}
}
返回结果
返回说明
登录成功, http 状态码: 200
登录失败, http 状态码: 400
返回示例
{
"data": {
"type": "token",
"id": "1",
"attributes": {
"token_type": "Bearer",
"expires_in": 2592000,
"access_token": "eyJ0eXAiOiJKV1Qi......dj3H9CCSPib6MQtnaT6VNrw",
"refresh_token": "def50200a26b6a9......10ccbf3c1694084c2d2d276"
}
}
}
失败示例
{
"error": "invalid_grant",
"error_description": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.",
"hint": "",
"message": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client."
}
二、接口测试案例
我们使用postman作为接口测试工具。
1.用户信息获取
获取用户信息:该接口用于通过userid获取用户信息
请求地址:http://192.168.1.102:8081/getuser
请求方式:POST/GET
接口测试如下:
2.获取用户信息,需要添加header,Content-Type application/json
更换了请求地址,其余未变
请求地址:http://192.168.1.102:8081/getuser2
总结
接口测试是在你写好代码,并运行后,才能生效的,输入URL值后,选中选项,如果输出的数据满足文档要求,那么测试结果就正确。