接口请求=请求的URL+请求头(User-Agent、Content-Type) +请求方法(GET/POST/PUT/DELEte)+请求参数(拼接在URL后面/请求的body中)
1、postman模拟接口请求:
collections:存放单个测试接口
动态变化部分引用变量:如,测试环境{{server_ip}}、{{token}}等
2、测试环境env配置:
配置环境路径,key-value方式,后面测试时直接使用该env,更换测试环境也只用调整value,或者保存多个环境信息,直接切换对应env即可
3、postman加载外部数据驱动文件:
定义外部数据文件,后缀.csv或.json
如果是csv文件,第一行为变量名,后面2...N定义变量值(每一行是一个case)
注意:变量名和值一一对应
case_desc:测试点描述;
arg:接口请求的参数名称;
4个通用的测试点预期检查,定义为response_code,response_message,errCode,errMsg。
如果是json文件,写成数组,数组的每一条json串就是一个case,其中key是变量名,value是变量值
case_desc:测试点描述;
arg:接口请求的参数名称;
4个通用的测试点预期检查,定义为response_code,response_message,errCode,errMsg。
4、加载外部数据文件
通过Collection Runner加载外部数据文件,点击collection的【Run】按钮,进入Runner界面;
迭代次数Iteration(可以理解为case数),postman会自动加载数据文件的case数,Data处选择外部数据文件载入,点击底部的【运行】按钮执行即可。
注意:有的版本Data File Type默认为csv格式,选择csv文件文件加载即可;如果为json类型,需下拉选择为application/json类型,再加载json数据文件。
5、Tests断言:
通用断言:http状态码、message、errCode和errMsg,语法为JavaScript
try{ var jsonData = JSON.parse(responseBody) if (data.response_code !== "") tests[data.case_desc+ "-验证后台返回response code是否'"+data.response_code+"'(实际='"+responseCode.code +"')"] = responseCode.code === data.response_code; if (data.response_message !== "") tests[data.case_desc+ "-验证后台返回response message是否'"+data.response_message+"'(实际='"+responseCode.name +"')"] = responseCode.name ===data.response_message; if(data.errCode !== "") tests[data.case_desc+ "-验证接口返回errCode是否'"+data.errCode+"'(实际='"+jsonData.errCode +"')"] = jsonData.errCode ===data.errCode; if(data.errMsg !== "") tests[data.case_desc+ "-验证接口返回errMsg是否'"+data.errMsg+"'(实际='"+jsonData.errMsg +"')"] = jsonData.errMsg ===data.errMsg; }catch(error) { tests["模块名称-接口名称,后台返回response异常(返回"+responseCode.code+" "+responseCode.name+")"]=false; console.log("Response为:"); console.log(responseBody); }
responseBody:获取接口请求响应的body内容, JSON.parse(responseBody) // json字符串转化为json对象;
data:获取外部数据文件中的变量值, 通过【data.变量名】方式引用。
6、查看结果
通过【Collection Runner-Run Results】界面查看断言的结果
标记为PASS:表示实际与预期的检查一致
标记为FAIL:表示实际与预期的检查不一致
作者:小小小羊羊羊
原文链接:https://blog.csdn.net/young_gril/article/details/103905263