首页 > 其他分享 >Postman(3): postman持久化保存/设置断言

Postman(3): postman持久化保存/设置断言

时间:2022-12-08 17:39:35浏览次数:60  
标签:case postman tests 断言 demo 响应 var Postman pm


 Postman(5): postman持久化保存

postman持久化保存

【文章末尾有.....】

1、点击postman的Collections页签,点击 + New Collection创建(可以当成项 目并重命名)

2、新增后,再点击Collection中的“ ... ” ,然后点击“Add Folder”,新建一个文件 夹(可以当成模块,可重命名),再右击Add Request新建一个请求(可重命名)

3、点击右侧的Save按钮,在弹出的对话框中选择刚新建立的模块,修改该接口 的名称,然后点击save按钮即可

Postman(3): postman持久化保存/设置断言_响应头


Postman(3): postman持久化保存/设置断言_json_02

 postman导入导出接口项目

导入接口项目:

点击Import ,在弹框中点击Upload Files 选择想要上传的文件;如下图

Postman(3): postman持久化保存/设置断言_json_03


Postman(3): postman持久化保存/设置断言_响应头_04

导出接口项目:

右击New Collection再点击"export",会下载一个名为 "*.json.postman_collection".(此文件可直接导入到Postman中)

Postman(3): postman持久化保存/设置断言_状态码_05


Postman(3): postman持久化保存/设置断言_json_06

 通过链接分享并导入到postman中

链接分享  (前提条件是要在登录的状态下)

首先选中项目——再右侧界面点击share——Via JSON link——Get JSON link——点击复制按钮;如下图

Postman(3): postman持久化保存/设置断言_响应头_07


Postman(3): postman持久化保存/设置断言_响应头_08

链接导入到postman中

如下图

Postman(3): postman持久化保存/设置断言_json_09


Postman(3): postman持久化保存/设置断言_状态码_10

Postman(3): postman持久化保存/设置断言_json_11

Postman(3): postman持久化保存/设置断言_json_12


Postman(6): postman设置断言

postman设置断言

作为一款接口测试工 具,postman需要对发送请求后返回的结果是否正确做验证,在postman中通过 tests页签做请求的验证,也称为断言。

postman设置断言的流程

1、在tests页签截取要对比的实际响应信息(响应头、响应正文、响应状态码等)
2、利用断言语句 tests[] 或 chai.js 形式把实际响应信息与期望结果对比
3、执行请求进行结果查看

在postman设置断言,存在新老版本的断言语法不一致的情况,目前两种语 法都可以使用:

语法一: tests[‘测试用例名称’] = 逻辑表达式;

断言语法一视图:

Postman(3): postman持久化保存/设置断言_状态码_13


Postman(3): postman持久化保存/设置断言_响应头_14

编辑

postman在tests页签获取响应内容:

tests页签支持javascripts语法,可以把获取的响应内容放入定义的变量中。 然后使用tests[变量名]进行输出。

截取实际响应信息的新老版本代码对比;如下图

Postman(3): postman持久化保存/设置断言_响应头_15


Postman(3): postman持久化保存/设置断言_响应头_16

编辑

1、获取响应行

var code = responseCode.code; //获取响应状态码
var name = responseCode.name; //获取响应状态信息

2、获取响应头

var content_type = postman.getResponseHeader('Content-Type') //获取响应头
var path = postman.getResponseCookie('_ac_app_ua').path ; //获取cookie信息

3、获取响应正文

var body = responseBody

4、获取响应时间

var time = responseTime;

5、利用正则表达式截取部分响应正文

var title = body.match(new RegExp('<title>(.+?)</title>'))[1];

6、响应正文为json时,可以利用postman进行解析再获取部分响应正文

var jsondata = JSON.parse(responseBody); //把响应正文转化为json对象
var token = jsondata.access_token; //json对象名.键名

在tests页签中编写语法如下图:

// 新旧版本写法------------

//获取响应行

//旧版本 var code = responseCode.code

//获取响应状态码

tests["case_demo_01: 验证响应状态码是否为200"] = code === 200 //做断言 var name = ​​responseCode.name​

//获取响应状态信息 tests["case_demo_02: 验证响应的状态信息是否正确"] = name === "OK"

//新版本 var code = pm.response.code

//获取响应状态码 tests["case_demo_001: 验证响应状态码是否为200"] = code === 200 //做断言 var name = pm.response.status

//获取响应状态信息 tests["case_demo_002: 验证响应的状态信息是否正确"] = name === "OK"

//获取响应头 //旧版本 var content_type = postman.getResponseHeader('Content-Type')

//获取响应头 tests["case_demo_03: 验证响应头是否正确"] = content_type === "application/json; encoding=utf-8"

//新版本 var content_type = pm.response.headers

//获取响应头 tests["case_demo_003: 验证响应头是否正确 "+content_type] = true // 获取响应时间

//旧版本 var time = responseTime tests["case_demo_04: 验证响应时间是否正确 "+ time] = true tests["case_demo_004: 验证响应时间是否在100-500ms以内返回"] = time >=100 && time<=500

//新版本 var time = pm.response.responseTime tests["case_demo_00004: 验证响应时间是否正确 "+ time] = true

//获取响应正文 text //旧版本 var body = responseBody tests['case_demo_05: 验证响应正文是否正确 '+ body] = true tests["case_demo_005: 验证响应正文是否包含 7200"] = body.has("7200")

//判断是否包含

//新版本 var body = pm.response.text() tests['case_demo_0005: 验证响应正文是否正确 '+ body] = true var title = body.match(new RegExp('<title>(.+?)</title>'))[1];

//利用正则表达式截取部分响应正文 tests["case_demo_00005: 验证响应正文中的title是否包含 猫_百度搜索"] = title === "猫_百度搜索"

//json格式响应正文 通过json视图更清晰

//旧版本 var jsondata = JSON.parse(responseBody)

//把响应正文转化为json对象 var expires_in = jsondata.expires_in

//json对象名.键名

tests["case_demo_06: 验证json格式响应正文是否正确 "] = expires_in === 7200

//新版本 var jsondata = pm.response.json()

//把响应正文转化为json对象 var expires_in = jsondata.expires_in

//json对象名.键名 tests["case_demo_006: 验证json格式响应正文是否正确 "] = expires_in === 720

 断言的展示结果如下图:

Postman(3): postman持久化保存/设置断言_响应头_17


Postman(3): postman持久化保存/设置断言_状态码_18

Postman(3): postman持久化保存/设置断言_json_19

Postman(3): postman持久化保存/设置断言_响应头_20


 

 语法二: Chai.js断言库,可以通过右侧页签点击生成代码(新版本写法-推荐)

chai.js断言介绍:

1、是一套TDD(测试驱动开发)/BDD(行为驱动开发)的断言库
2、包含有3个断言库支持BDD风格的expect/should和TDD风格的assert
3、可以高效的和任何js测试框架搭配使用(支持在postman中应用)

 断言语法二视图:

Postman(3): postman持久化保存/设置断言_响应头_21


Postman(3): postman持久化保存/设置断言_响应头_22

编辑

 在tests页签中编写语法如下图:

//新版本写法------
pm.test("测试用例标题", function () {
pm.expect(true).to.be.true; //chai.js断言编写处
});

pm.test("case_demo_01 *****", function () {
pm.expect(2<5 && 3<6).to.be.true //判断是否为true
});

pm.test("case_demo_02 *****", function () {
pm.expect("everything").to.be.ok //判断是否为真值 非空、非0 即为真
});

pm.test("case_demo_03 *****", function () {
pm.expect("hello").to.equal("hello") //判断是否相等
});

pm.test("case_demo_04 *****", function () {
pm.expect({list:"aaa"}).to.eql({list:"aaa"})//判断是否深度相等
});

pm.test("case_demo_05 *****", function () {
pm.expect("foobar").to.have.string("bar") //判断是否包含字符串
});

pm.test("case_demo_06 *****", function () {
pm.expect("foobar").to.match(/^foo/) //判断是否包含,支持正则表达式
});

//实例------
//响应行的状态码
pm.test("case_demo_07 *****", function () {
pm.expect(pm.response.code === 200).to.be.true //判断响应状态码是否为200
});
//响应行的信息
pm.test("case_demo_08 *****", function () {
pm.expect(pm.response.status === "OK").to.be.true //判断响应状态信息是否为OK
});
//响应正文 text
pm.test("case_demo_09 *****", function () {
pm.expect(pm.response.text()).to.have.string("猫_百度搜索") //判断响应正文中是否包含猫_百度搜索
});
//响应正文 json
pm.test("case_demo_10 *****", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.expires_in).to.eql(7200); //判断json响应正文中是否有7200
});

Postman(3): postman持久化保存/设置断言_状态码_23

断言的展示结果如下图:

Postman(3): postman持久化保存/设置断言_响应头_24

Postman(3): postman持久化保存/设置断言_json_25




Postman(3): postman持久化保存/设置断言_json_26


标签:case,postman,tests,断言,demo,响应,var,Postman,pm
From: https://blog.51cto.com/u_15876125/5922938

相关文章

  • postman 参数化及参数化断言处理
    1、准备参数数据参数数据有两种格式json或csv注意:1、保存为.csv文件时一定要选择格式为UTF-8,避免乱码。2、csv用excel处理时最后的回行去掉,最好在上传数据文件后预览......
  • (收藏)JUnit 单元测试断言推荐 AssertJ
    ​​对字符串断言Java代码收藏代码@TestpublicvoidtestString(){Stringstr=null;//断言null或为空字符串assertThat(str).isNullOrEmpty();//断言空字......
  • Postman(一): postman介绍和安装,发送带参数的GET请求
    Postman(1):postman的介绍和安装Postman的介绍Postman是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。它提供功能强大的WebAPI&HTTP请求调试。它能够发......
  • Jmeter小技能【BeanShell断言、多个相同参数提取、固定定时器、输出执行报告】
    1、BeanShell断言比响应断言更灵活,可通过BeanShell脚本设置Faillure及FailureMessage来执行断言检查,并输出断言失败接口的响应错误内容。//获取响应结果内容Stringre......
  • MeterSphere之场景变量,断言
            ......
  • Postman数据驱动详解
    数据驱动(读取外部数据)相同的测试脚本使用不同的测试数据,数据的改变从而驱动自动化的执行,最终引起测试结果的改变步骤:1.执行单条接口用例,观察请求、响应格式。方便编写......
  • 防御式编程之断言assert的使用
    防御式编程的重点就是需要防御一些程序未曾预料的错误,这是一种提高软件质量的辅助性方法,断言assert就用于防御式编程,编写代码时,我们总是会做出一些假设,断言就是用于在代码......
  • Postman绿色版下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【0013】即可获取下载链接。......
  • postman的使用
    一、使用介绍1、创建集合  集合可以理解成请求的总和或合集,在Postman中,集合表示将请求进行分组、分模块管理;对含义相近、对功能相近的请求保存到一个集合中,方便后期......
  • postMan 测试webService接口 参数传递问题
    一、参数没有子节点的方式<?xmlversion="1.0"encoding="utf-8"?><soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.......