一个简单的postman设置断言,为何会难住一个工作5年的测试?

这篇具有很好参考价值的文章主要介绍了一个简单的postman设置断言,为何会难住一个工作5年的测试?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

postman设置断言

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

postman设置断言的流程

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

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

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

断言语法一视图:

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

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

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

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

 文章来源地址https://www.toymoban.com/news/detail-762167.html

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

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页签中编写语法如下图:

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

// 新旧版本写法------------
//获取响应行
//旧版本
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 === 7200

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

 断言的展示结果如下图:

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

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

chai.js断言介绍:

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

 断言语法二视图:

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

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

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

//新版本写法------
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设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

断言的展示结果如下图:

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

   自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

一个简单的postman设置断言,为何会难住一个工作5年的测试?,postman,lua,测试工具

 

到了这里,关于一个简单的postman设置断言,为何会难住一个工作5年的测试?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Postman接口测试 —— 设置全局变量、参数传递、断言

    在能熟练使用postman运行接口请求后,会遇到一些问题。例如: 我们的web网站一共有几十个接口,测试的时候如果要切换环境,这个时候要每个接口都要修改url的根路径,一个一个的改也太麻烦了; 还有时候我们经常需要用到上一个接口的返回值,来作为下一个接口的数据来

    2024年02月16日
    浏览(58)
  • postman使用教程-设置断言(tests脚本编写)

    一个完整的接口测试,包括:请求获取响应正文断言。所谓断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例执行失败。 当一个接口发送请求有返回结果后,如何知道返回的结果符合预期?可以在 postman 里面的 Tests 写脚本断言符合结果符合预

    2024年02月01日
    浏览(41)
  • 今天面试了一个工作4年的测试工程师,一问三不知,还反过来怼我..

    我们公司也在大量招人了,我这次是公司招聘的面试官之一,主要负责一些技术上的考核,这段时间还真让我碰到了不少奇葩求职者 昨天公司的HR小席刚跟我吐槽:这几个星期没有哪天不加班的!各种招聘网站上的消息源源不断,连吃饭都要回消息…… 看来最近大家跳槽的心

    2024年02月09日
    浏览(35)
  • Postman学习之常用断言

    什么是断言? 断言 ——就是结果中的特定属性或值与预期做对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。断言,是一个完整测试用例所不可或缺的一部分,没有断言的测试用例仅仅是测试步骤。​ 在介绍Postman断言之前,我们先测试接口: 接口地址:

    2024年01月16日
    浏览(44)
  • postman断言

    目录 常见断言 1. 断言状态码 2. 断言响应体中是否包含该字符串 3. 断言json中某个字段的值 4. 断言响应body中正文是否等于response_body_string,需要完全相等 5. 断言是否包含Content-Type响应头,也可以换成其他响应头断言 6. 断言请求消耗的时间小于指定时间 7. 断言响应状态码的名

    2024年01月24日
    浏览(34)
  • postman使用-06断言

    检查:响应的实际结果和期望结果是否一致 断言:通过工具去判断实际结果与期望结果是否一致 1)Status code:Code is 200 检查返回的状态码是否为200 2)Status code :Successfull POST request :判断post请求的状态码,是不是在201和202这两个之中 3)Response body:is equal to a string 校验整体数

    2024年02月01日
    浏览(35)
  • postman断言详解

    在 postman 中我们是在Tests标签中编写断言,同时右侧封装了常用的断言,当然 Tests 除了可以作为断言,还可以当做后置处理器来编写一些后置处理代码,经常应用于: 获取当前接口的响应,传递给下一个接口 控制多个接口间的执行顺序。 1、状态码断言 判断接口响应的状态

    2024年01月16日
    浏览(36)
  • 接口测试--Postman常用断言

    Postman的断言是用javascript语言写的 结果中的特定属性或值与预期做对比,如果一致,则用例通过,如果不一致,断言失败,用例失败。断言,是一个完整测试用例所不可或缺的一部分,没有断言的测试用例仅仅是测试步骤。 ​  解释: pm是一个全局对象,代表了postman运行时的环

    2024年02月07日
    浏览(48)
  • Postman接口测试之断言

    在 postman 中我们是在Tests标签中编写断言,同时右侧封装了常用的断言,当然 Tests 除了可以作为断言,还可以当做后置处理器来编写一些后置处理代码,经常应用于: 【1】获取当前接口的响应,传递给下一个接口 【2】控制多个接口间的执行顺序。 1、状态码断言 1)判断接

    2024年02月19日
    浏览(39)
  • PostMan前置脚本/后置脚本/断言

    1. 使用脚本的意义:利用脚本可以降低联调工作量.,如 1.1 前置脚本请求前执行;用于设置参数, 可以用于多个用户注册, 1.2 后置脚本可以对执行请求结果进行校验,设置变量,用于下一个请求 http请求前执行;用于设置参数; http请求后执行;可以测试请求执行结果;可以解析结果

    2024年02月12日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包