来自哔哩哔哩视频的随手笔记:
一、接口测试灵魂拷问
二、接口返回数据和Json详解
1.json格式:三组数据(80%)
{error_code:0,msg:"提现成功",data:[]}
- error_code:错误代码
- 0:代表成功
- msg:对错误码的中文说明
- data:真正的返回的数据
- json就是一种数据类型,整形,小数,字符串
- JSON由两组数据组成
- MAP对象:键值对{key:value,key:value}
- 数组:[value1,value2,value3]
{
"people":[
{
"firstName": "Brett",
"lastName":"McLaughlin"
},
{
"firstName":"Jason",
"lastName":"Hunter"
}
]
}
格式化校验网址: www.bejson.com
2.html格式
<html>
<title> </title>
<body>
<error_code>0</error_code>
....
</body>
</html>
3.xml格式
<?xml?version="1.0" encoding="utf-8">
<error_code>0</error_code>
...
</xml>
三、接口测试协议
1.webservice协议:接口协议:http://........?wsdl
http://192.168.12.1:8080/addUser
soap协议:wsdl
restful规则:
- get:获取数据
- post:提交数据
- put:修改数据
- delete:删除数据
2.dubbo协议:接口协议以dubbo://....
适用于少量数据的传输。大并发。
3.http协议:接口地址:http:// (占市场80%)
https=http+ssl安全传输协议 端口:443
http:端口80
什么是http协议?
超文本传输协议,主要用于浏览器和服务器之间交互数据,交互有两个部分:
请求:get,post,put,delete
响应:1xx信息,2xx成功,3xx重定向(跳转不传值),4xx客户端错误,5xx服务器错误。
请求部分包含:
响应部分包含:
四、企业接口测试的流程和方案
1.拿到api接口文档,熟悉接口的业务,接口地址,鉴权,入参,出参,错误码
2.接口计划和方案
思路:
正例:输入正常的入参,查看接口是否返回成功
反例:
鉴权反例:鉴权码为空,鉴权码错误,鉴权码已过期
参数反例:参数为空,参数类型异常,参数长度异常
错误码的覆盖
其他场景:分页异常。
3.编写用例和评审
4.执行接口测试
5.输出接口测试报告
五、接口测试工具以及postman
接口测试工具:postman、 jmeter 、 soupui(webservice协议的测试) 、 apipost、 fiddler(抓包工具)、 charles(抓包工具)
请求部分的页签:
响应部分的页签:
示例:
六、postman内置的动态参数
企业当中做接口测试的时候经常会出现接口不能把参数写死。
- 时间戳:{{$timestamp}}
- 生成0-1000的随机整数:{{$randomInt}}
- 生成一个GUID的字符串:{{$guid}} 很长的一个字符串
七:Postman环境变量和全局变量
开发环境,测试环境,预发布环境、线上环境
不管是环境变量也好,还是Global也好都是全局变量。
{{ip}}指端口号
八、接口关联
Tests断言:
JSON提取器
//提取access_token的值
var jsValue=JSON.parse(responseBody)
console.log(jsValue.access_token)
//把提取的值保存到全局变量
pm.globals.set("access_token",jsValue.access_token);
Tests里添加下一段:正则表达式提取器
//使用正则表达式提取match:匹配 new RegExp新建规则
var flag_id=responseBody.match(new RegExp('"id":(.+?),'))[1]
console.log(flag_id)
pm.globals.set("flag_id",flag_id);
Cookie提取器