• Postman持久化保存/设置断言详解


    postman持久化保存

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

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

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

    同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

    软件测试视频教程观看处:

    Postman接口测试保姆级教程及接口自动化测试项目实战教程你要的都在这

    postman导入导出接口项目

    导入接口项目:
    点击Import ,在弹框中点击Upload Files 选择想要上传的文件;如下图

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

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

    链接分享  (前提条件是要在登录的状态下)
    首先选中项目——再右侧界面点击share——Via JSON link——Get JSON link——点击复制按钮;如下图

    链接导入到postman中,如下图

    postman设置断言

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

    postman设置断言的流程

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

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

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

    断言语法一视图:

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

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

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

    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('(.+?)'))[1];

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

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

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

    1. // 新旧版本写法------------
    2. //获取响应行
    3. //旧版本
    4. var code = responseCode.code  //获取响应状态码
    5. tests["case_demo_01: 验证响应状态码是否为200"] = code === 200 //做断言
    6. var name = responseCode.name  //获取响应状态信息
    7. tests["case_demo_02: 验证响应的状态信息是否正确"] = name === "OK"
    8. //新版本
    9. var code = pm.response.code //获取响应状态码
    10. tests["case_demo_001: 验证响应状态码是否为200"] = code === 200 //做断言
    11. var name = pm.response.status  //获取响应状态信息
    12. tests["case_demo_002: 验证响应的状态信息是否正确"] = name === "OK"
    13. //获取响应头
    14. //旧版本
    15. var content_type = postman.getResponseHeader('Content-Type')  //获取响应头
    16. tests["case_demo_03: 验证响应头是否正确"] = content_type === "application/json; encoding=utf-8"
    17. //新版本
    18. var content_type = pm.response.headers  //获取响应头
    19. tests["case_demo_003: 验证响应头是否正确 "+content_type] = true
    20. // 获取响应时间
    21. //旧版本
    22. var time = responseTime
    23. tests["case_demo_04: 验证响应时间是否正确 "+ time] = true
    24. tests["case_demo_004: 验证响应时间是否在100-500ms以内返回"] = time >=100 && time<=500
    25. //新版本
    26. var time = pm.response.responseTime
    27. tests["case_demo_00004: 验证响应时间是否正确 "+ time] = true
    28. //获取响应正文 text
    29. //旧版本
    30. var body = responseBody
    31. tests['case_demo_05: 验证响应正文是否正确 '+ body] = true
    32. tests["case_demo_005: 验证响应正文是否包含 7200"] = body.has("7200")  //判断是否包含
    33. //新版本  
    34. var body = pm.response.text()
    35. tests['case_demo_0005: 验证响应正文是否正确 '+ body] = true
    36. var title = body.match(new RegExp('(.+?)'))[1];  //利用正则表达式截取部分响应正文
    37. tests["case_demo_00005: 验证响应正文中的title是否包含 猫_百度搜索"] = title === "猫_百度搜索"
    38. //json格式响应正文  通过json视图更清晰
    39. //旧版本
    40. var jsondata = JSON.parse(responseBody)  //把响应正文转化为json对象
    41. var expires_in = jsondata.expires_in  //json对象名.键名
    42. tests["case_demo_06: 验证json格式响应正文是否正确 "] = expires_in === 7200
    43. //新版本
    44. var jsondata = pm.response.json()  //把响应正文转化为json对象
    45. var expires_in = jsondata.expires_in  //json对象名.键名
    46. tests["case_demo_006: 验证json格式响应正文是否正确 "] = expires_in === 720

    断言的展示结果如下图:

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

    chai.js断言介绍:

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

     断言语法二视图:

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

    1. //新版本写法------
    2. pm.test("测试用例标题", function () {
    3. pm.expect(true).to.be.true; //chai.js断言编写处
    4. });
    5. pm.test("case_demo_01 *****", function () {
    6. pm.expect(2<5 && 3<6).to.be.true //判断是否为true
    7. });
    8. pm.test("case_demo_02 *****", function () {
    9. pm.expect("everything").to.be.ok //判断是否为真值 非空、非0 即为真
    10. });
    11. pm.test("case_demo_03 *****", function () {
    12. pm.expect("hello").to.equal("hello") //判断是否相等
    13. });
    14. pm.test("case_demo_04 *****", function () {
    15. pm.expect({list:"aaa"}).to.eql({list:"aaa"})//判断是否深度相等
    16. });
    17. pm.test("case_demo_05 *****", function () {
    18. pm.expect("foobar").to.have.string("bar") //判断是否包含字符串
    19. });
    20. pm.test("case_demo_06 *****", function () {
    21. pm.expect("foobar").to.match(/^foo/) //判断是否包含,支持正则表达式
    22. });
    23. //实例------
    24. //响应行的状态码
    25. pm.test("case_demo_07 *****", function () {
    26. pm.expect(pm.response.code === 200).to.be.true //判断响应状态码是否为200
    27. });
    28. //响应行的信息
    29. pm.test("case_demo_08 *****", function () {
    30. pm.expect(pm.response.status === "OK").to.be.true //判断响应状态信息是否为OK
    31. });
    32. //响应正文 text
    33. pm.test("case_demo_09 *****", function () {
    34. pm.expect(pm.response.text()).to.have.string("猫_百度搜索") //判断响应正文中是否包含猫_百度搜索
    35. });
    36. //响应正文 json
    37. pm.test("case_demo_10 *****", function () {
    38. var jsonData = pm.response.json();
    39. pm.expect(jsonData.expires_in).to.eql(7200); //判断json响应正文中是否有7200
    40. });

    断言的展示结果如下图:

    postman本篇总结 

    PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。

    ☑ 240集-零基础到精通全套视频课程
    ☑ [课件+源码]-完整配套的教程
    ☑ 18套-测试实战项目源码
    ☑ 37套-测试工具软件包
    ☑ 268道-真实面试题
    ☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

    这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

  • 相关阅读:
    统信桌面操作系统PXE单机部署
    数据结构-单链表
    HTML中的文档声明
    ElasticSearch的快速安装和使用
    2022-10-21 解决vuex报错:Cannot read properties of undefined (reading ‘state‘)“
    Spring 事务(Transaction)的简介说明
    HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-GPIO
    bootstrap学习:栅格实例-不同用户端不同界面
    《福格行为模型》笔记 --- ta为什么总是想得多做得少
    将自己的本地项目上传到远程git仓库
  • 原文地址:https://blog.csdn.net/HUA1211/article/details/133812895