5.Postman之断言

Postman之断言

1.Postman中断言写在哪里

一个完整的接口测试,包括:请求-获取响应正文-断言,我们已经知道了请求与获取响应正文,下面来介绍如何用postman进行断言。

  • 在请求编辑页面,找到Tests的选项卡,postman的所有请求的断言都在这些操作
    在这里插入图片描述

2.Postman中断言方法的使用

在这里插入图片描述

  • 1、响应状态码断言:验证响应结果的状态码是否为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

2、响应正文内容断言:验证响应正文中是否存在包含的字符串“string_you_want_to_search”

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

3、响应正文内容断言:验证响应的Json格式正文中指定的字段数据是否符合预期,如jsonData.value的值是否等于100

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

4、响应正文内容断言:验证响应正文n内容是否等指定的字符串

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

5、响应头部断言:验证响应头部信息中是否包括指定的字段,如响应头是否包含Content-Type

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

6、响应时间断言:验证响应结果返回的时间是否在指定的范围内

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

3、断言结果的查看

设置好test下的断言之后,点击send按钮发送请求,在response区域的Test results中可以查看断言是否成功
在这里插入图片描述

4、常见的pm的使用

该pm对象包含与正在执行的脚本有关的所有信息,并允许一个对象访问正在发送的请求或已接收的响应的副本。它还允许获取并设置环境和全局变量。

1、pm.response

  • 在测试脚本中,该pm.response对象包含与收到的响应有关的所有信息:
pm.response.code:Number
pm.response.status:String
pm.response.headers:HeaderList
pm.response.responseTime:Number
pm.response.responseSize:Number
pm.response.text():Function → String
pm.response.json():Function → Object

2.pm.environment

  • 在测试脚本中,该pm.response对象包含环境变量有关的所有信息:
    pm.environment.name:String: 环境名。
pm.environment.has(variableName:String):function → Boolean:检查是否存在某个环境变量。
pm.environment.get(variableName:String):function → *:get 单个环境变量。
pm.environment.set(variableName:String, variableValue:String):function:set 单个环境变量。
pm.environment.replaceIn(variableName:String):function:以真实的值替换字符串里的包含的动态变量,如{{variable_name}}。
pm.environment.toObject():function → Object:以对象形式获取当前环境的所有变量。
pm.environment.unset(variableName:String):function: unset 单个环境变量。
pm.environment.clear():function:清空当前环境的所有变量。

3.pm.globals
在测试脚本中,该pm.globals对象包含全局变量有关的所有信息

pm.globals.has(variableName:String):function → Boolean:检查是否存在某个全局变量。
pm.globals.get(variableName:String):function → *:get 单个全局变量。
pm.globals.set(variableName:String, variableValue:String):function:set 单个全局变量。
pm.globals.replaceIn(variableName:String):function:以真实的值替换字符串里的包含的动态变量,如{{variable_name}}。
如前置脚本,获取请求参数的值如果包含变量,则需要使用 pm.globals.replaceIn 才能将变量替换会真正的值。
pm.globals.toObject():function → Object:以对象形式获取所有全局变量。
pm.globals.unset(variableName:String):function: unset 单个全局变量。
pm.globals.clear():function:清空当前环境的全局变量。

4.pm.request
request 是接口请求对象。在前置脚本中表示将要发送的请求,在后置脚本中表示`已经发送了的请求。

request 包含了以下结构:
pm.request.url:Url: 当前请求的 URL。
pm.request.headers:HeaderList:当前请求的 headers 列表。
pm.request.method:String 当前请求的方法,如GET、POST等。
pm.request.body:RequestBody: 当前请求的 body 体。
pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function: 给当前请求添加一个 key 为headerName的 header。
pm.request.headers.remove(headerName:String):function: 删除当前请求里 key 为headerName的 header
pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function: upsert key 为headerName的 header(如不存在则新增,如已存在则修改)。
以下部分 API 仅在后置脚本中可用

5、pm.expect

在测试脚本中,该pm.expect处理response或的数据断言很有用variables。
测试脚本中提供了Response Assertion API
pm.response.to.have.status(code:Number)
pm.response.to.have.status(reason:String)
pm.response.to.have.header(key:String)
pm.response.to.have.header(key:String, optionalValue:String)
pm.response.to.have.body()
pm.response.to.have.body(optionalValue:String)
pm.response.to.have.body(optionalValue:RegExp)
pm.response.to.have.jsonBody()
pm.response.to.have.jsonBody(optionalExpectEqual:Object)
pm.response.to.have.jsonBody(optionalExpectPath:String)
pm.response.to.have.jsonBody(optionalExpectPath:String, optionalValue:*)
pm.response.to.have.jsonSchema(schema:Object)
pm.response.to.have.jsonSchema(schema:Object, ajvOptions:Object)

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值