引用

https://learning.postman.com/docs/running-collections/scheduling-collection-runs/

引言

学习自动化测试的原因,是因为公司的部门变动,将测试从我们组分了出去。自由后的测试有了更为广阔的想法,觉得开发写的代码应该由开发自己测试,以提高代码质量(笑),测试只需要提出测试用例和进行最后验收即可。于是自测的用例就多了起来QWQ

断言

PostMan 测试支持 expect语法实现BDD链式断言

语言链

在BDD断言中有部分词单纯作为语言链提供以期提高断言的可读性。除非被插件改写否则它们一般不提供测试功能。

to
be
been
is
that
which
and
has
have
with
at
of
same

举个例子

// 返回报文
{
    "status": 200,
    "message": "OK"
}
// 测试用例(均成功,注意其中不同)
pm.test("TEST",function(){
    var json = pm.response.json();
    pm.expect(json.status).to.eql(200);
    pm.expect(json.message).eql("OK");
    pm.response.to.have.status(200)
    pm.response.to.have.status("OK")
    pm.expect(pm.response.status).to.eql("OK");
    // 下面失败
    // pm.expect(pm.response.status).to.eql(200);
})

链式断言

https://www.jianshu.com/p/f200a75a15d2
https://segmentfault.com/a/1190000039884834

使用

解析 JSON 数据

var res_json=JSON.parse(res_str)

解析 XML

const responseJson = xml2Json(pm.response.text());

获取Post请求(form-data)

var str=pm.request.body.formdata
console.log(str.get('method'))
或者
var str=request.data//request表示请求对象,request.data是请求的表单数据字典
console.log(str.method)

获取Post请求(JOSN)

var str=JSON.parse(pm.request.body.raw)
console.log(str.method)
或者
var str=request.data//因为是josn的方式request.data是请求内容字符串
var res_json=JSON.parse(str)//将字符串转换为json对象
console.log(res_json.method)

获取Get请求(params)

var re=pm.request.url.query
console.log(re.get('test'))
或者
const querystring = require('querystring');//require(moduleName)使用沙盒内置库模块,querystring模块可以解析和格式化URL查询字符串
var url=request.url;//获取请求对象中的url
var str=url.split("?")[1];//使用split()把字符串分割成字符串数组
console.log(querystring.parse(str).test);

获取响应体

const responseJson = pm.response.json();
或者
var res_str=responseBody  
var res_json=JSON.parse(res_str)

获取响应状态码(200)

pm.response.code;

获取响应状态("ok")

pm.response.status;

获取响应标头

pm.response.headers;

获取cookie

pm.cookies;

测试响应时间

pm.expect(pm.response.responseTime).to.be.below(200);

变量

通过{}使用变量
PostMan一共有5终变量,如下(粗->细)存在相同时,以细为准

Global
Collection
Environment
Data
Local

脚本中的变量控制(以环境变量为例)
活动环境的名称:
pm.environment.name:String
检查环境是否有指定名称的变量:
pm.environment.has(variableName:String):function → Boolean
在活动环境中获取具有指定名称的变量:
pm.environment.get(variableName:String):function → *
在活动环境中设置具有指定名称和值的变量:
pm.environment.set(variableName:String, variableValue:*):function
使用以下语法返回脚本内动态变量的解析值{{$variableName}}:
pm.environment.replaceIn(variableName:String):function → *
在单个对象中返回活动环境中的所有变量及其值:
pm.environment.toObject():function → Object
从活动环境中删除变量,按名称指定变量:
pm.environment.unset(variableName:String):function
清除活动环境中的所有变量:
pm.environment.clear():function