发送请求和查看响应
发送请求
Postman的界面分为左边的侧边栏和右边的请求构建器两部分。请求构建器允许你可以快速的创建几乎任何类型的请求。一个HTTP请求的四部分:URL、Method、Headers、Body,在Postman中都可以设置。
URL:
在你构建request请求的时候,首先要设置的就是URL。在URL输入框中输入你请求的链接,你可以单击Params按钮,在编辑器中输入key-value格式的URL参数。
在URL地址栏中的输入和编辑器中输入的key-value参数,不会自动的编码为 URL-encoded,选中要编码的文本,右键选择EncodeURIComponent ,手动编码参数值。
你可以单独的添加参数,Postman会自动的把他和URL整合到一起,如果你从其他的地方粘贴了URL过来,Postman也会自动的把 Params中的参数进行设置。
一些API端点使用路径变量,你可以在Postman中设置,他们位于两个 / 中,样式如下:
如果你要设置他,单击Params按钮,你会发现key部分已被自动设置好了,根据需要填写value部分就行。
Headers:
单击Headers切换按钮,你可以在key-value编辑器中设置任何字符串作为header的名称。
受限的headers和cookies
不幸的是一些headers收到Chrome和XMLHttpRequest规范的限制,以下headers被屏蔽:
Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
Cookie
Cookie 2
Content-Transfer-Encoding
Date
Expect
Host
Keep-Alive
Origin
Referer
TE
Trailer
Transfer-Encoding
Upgrade
User-Agent
Via
headers预设
你可以保存常用的headers在headr prest里面:
Method:
单击HTTP的请求方法按钮,在给出的下拉菜单中选择使用的方法即可,对应的方法需要body的,body部分便被设置为可填写。
body部分编辑:
当我们发送请求需要填写body部分时,Postman几乎可以让我们发送任何类型的HTTP请求。body编辑器分为4个部分:
form-data
form-data是web表单默认的传输格式,编辑器允许你通过设置key-value形式的数据来模拟填充表单。你可以在最后的选项中选择添加文件。
这个编码格式同样可以通过设置key-value的方式作为URL的参数。
Raw
二进制
接口批量测试
创建测试用例集、子集
多个接口请求可以放在一起并管理起来。可以一个工程一个Collection,这样方便查找及统一处理数据;
创建Collections;
在Collections里添加请求,在右侧准备好接口请求的所有数据,并验证后,点击save按钮;
保存好之后可以在这里看到;
创建测试用例
创建接口测试用例,即新建http请求,选择请求方式、写好url、请求头、请求体。
设置变量
postman的变量和Jmeter的参数化相似,即把若干处出现多次的数值用一个变量表示,达到一次修改、多处生效的效果,便于修改和管理。
变量可以动态选择不同的测试环境;
使用这些键值的时候只需要加上两个花括号引用key,跑用例的时候在右上角下拉列表选择需要的环境就好,如下:
添加响应处理
响应处理有点类似Jmeter里的检查点,即通过检查响应数据是否符合预期来判断test是否通过。在Tests中添加检查条件,postman提供了一些常用的检查条件的代码,直接添加或稍加修改即可。比如要测试返回结果是否含有某一字符串,就可以用到 Tests。以gold_add 接口为例,来编写测试用例,分别测试返回的结果是否含有,如下所示:
响应成功返回PASS, 失败返回FAIL。
常用tests如下:
检查response body中是否包含某个string
tests["Body matches string"] = responseBody.has("string_you_want_to_search");
注意:“Body matches string” 需唯一。
检测JSON中的某个值是否等于预期的值
vardata=JSON.parse(responseBody);
tests["Your test name"] =data.value === 100;
JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。
如:检查json中某个数组元素的个数(这里检测programs的长度)
vardata=JSON.parse(responseBody);
tests["program's lenght"] =data.programs.length === 5;
检查response body是否与某个string相等
转换XML body为JSON对象
var jsonObject = xml2Json(responseBody);
tests["Body is correct"] = responseBody === "response_body_string";
测试response Headers中的某个元素是否存在(如:Content-Type)
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
或者:
tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
上面的方法,不区分大小写。下面的方法,要区分大小写。
验证Status code的值
tests["Status code is 200"] = responseCode.code=== 200;
验证Response time是否小于某个值
tests["Response time is less than 200ms"] = responseTime < 200;
name是否包含某个值
tests["Status code name has string"] = responseCode.name.has("Created");
POST 请求的状态响应码是否是某个值
tests["Successful POST request"] = responseCode.code=== 201 || responseCode.code=== 202;
很小的JSON数据验证器
var schema = {
"items": {
"type": "boolean"
}
};
var data1 = [true, false];
var data2 = [true, 123];
console.log(tv4.error);
tests["Valid Data1"] = tv4.validate(data1, schema);
tests["Valid Data2"] = tv4.validate(data2, schema);
设置环境变量,建立多个接口间的关联
以gold_add 接口为例,由于该接口有权限验证,需要admin用户才可以做操作,需要添加cookie,所以需要将login 接口关联起来使用。
在login 请求中, 在”Tests”中加入
var jsonData =JSON.parse(responseBody);//获取body中返回的所有参数
postman.setEnvironmentVariable("sign",jsonData.login_info.sign);//把返回参数中的sign设置为环境变量
这样sign 就可以作为环境变量,应用于gold_add接口。
在gold_add 接口中,{{username}} 由于在环境变量”user_pwd” 中已经设置,可以直接输入变量名,{{sign}} 动态取得login接口中 Response 的 “sign” 值,{{sign}}已在上面login 请求的”Tests” 中定义。
批量执行测试用例
点击测试用例集中的“run”,批量运行测试用例,弹出collection runner,点击“Start Run”,批量运行测试用例。
运行后,弹出测试结果,显示测试通过和失败的个数、请求URL、请求头、请求体信息,响应头、响应体信息,状态码等,我们就可以查看测试用例的执行结果及具体信息
导入导出测试数据
导出数据包
导出工作环境
导入数据包
导入工作环境
如有侵权请联系本人删除哦~~~