Postman基础功能-断言与日志

        若能脱颖而出,何必苦苦融入。大家好,在 API 测试的领域中,Postman 是一款极为强大且广泛使用的工具。其中,断言和日志调试功能扮演着至关重要的角色。

一、介绍

        断言允许我们在测试过程中验证 API 的响应是否符合预期。通过设定各种条件和预期值,我们可以精确地检查响应的状态码、头部信息、数据内容等关键要素。这就像是为 API 测试加上了一道质量检测关卡,确保其返回的结果准确无误。帮助我们在开发过程中及时发现问题,避免潜在的错误蔓延到后续的环节。

        而日志调试则像是测试过程中的一盏明灯。能记录下测试执行的每一个细节,包括请求的发送、响应的接收以及中间的各种交互信息。当遇到问题或异常时,我们可以通过查看日志来追溯整个过程,找到问题的根源所在。日志不仅有助于故障排查,还能让我们更好地理解测试的执行情况,为优化测试策略和改进 API 提供有力的依据。

        通过巧妙地运用 Postman 的断言和日志调试功能,测试人员能够更高效地进行 API 测试,提高测试的覆盖度和准确性。共同助力我们构建出更加稳定、可靠的 API,为软件的质量保驾护航。无论是新手还是经验丰富的开发者,深入理解和掌握这两项功能都将极大地提升 API 测试工作的价值和效果。

        希望这篇介绍能让你对 Postman 断言和日志调试有一个初步的了解和认识,开启你在 API 测试领域更深入探索的旅程。

二、断言

在Postman工具中,断言功能是非常方便并且强大的,下面是Postman断言的一些特点:

  • 断言的编写位置:Tests标签
  • 断言所使用语言:JavaScript
  • 断言的执行顺序:在请求接口返回响应体数据后执行
  • 断言的执行结果查看:Test Results

        编写断言代码用到的编程语言是 JavaScript,Postman 已经给大家内置了一些常用的断言。当我们使用到的时候,只需从右侧点击其中某个断言类型,该断言对应的断言代码块,就会在文本框中自动生成,非常方便。

接下来列举一些常用的断言类型

断言状态码(Status code:Code is 200)

pm.test("Status code is 200", function () {pm.response.to.have.status(200); // 这里填写的 200 是预期结果,实际结果是请求返回结果
});

断言响应头(Response headers:Content-Type header check)

pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type"); // 断言响应头中Content-Type是否存在
});

断言响应体包含某字符串(Response body:Contains string)

pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("测开人员测试专用脚本"); // 断言响应体文本中是否包含"测开人员测试专用脚本"
});

断言响应体等于某字符串(Response body : is equal to a string)

pm.test("Body is correct", function () {pm.response.to.have.body("预期结果响应体文本"); // 断言响应体文本等于"预期结果响应体文本"
});

断言响应体中某个KEY对应的值(Response body : JSON value check)

需要该接口响应体必须返会是的 JSON,否则会报错。

pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.msg).to.eql('操作成功'); // 断言响应体中msg字段对应的值是否是'操作成功'
});

断言响应时间(Response time is less than 200ms)

一般这个断言会用在性能测试。

pm.test("Response time is less than 200ms", function () {pm.expect(pm.response.responseTime).to.be.below(200); // 断言接口响应时间在200毫秒以内
});

断言示例:

以下是一个接口的响应体示例:

{"code": 0,"msg": "操作成功","data": [{"id": 87,"created_at": "2024-05-08 17:34:24","updated_at": "2024-05-08 17:34:10","deleted_at": 0,"create_user": 9,"update_user": 9,"file_name": "locust_worker.py","file_desc": "测开人员测试专用脚本","file_content": "from locust import HttpUser, task\r\n\r\nclass Dummy(HttpUser):\r\n\r\n    @task(1)\r\n    def get_root(self):\r\n        self.client.get(\"/\")\r\n","type": 1,"out_file": "","cron": "","notice_type": 0,"notice_content": "","receiver": "","state": 2}]
}

1、断言状态码是否为200

2、断言msg是否为操作成功

3、断言返回的data中是否包含 "测开人员测试专用脚本" 文本。

点击“Send”发送请求,运行后的断言结果如下图:

        总结,Postman 的断言功能十分强大且关键,能够对 API 响应进行多方面的验证。可以精确地检查响应的状态码是否符合预期,确保其正确性;能细致地核验响应头部信息,保证关键信息的准确性;还能深入到数据内容层面,对返回的数据结构、具体字段值等进行严格核对,同时通过设定灵活的条件判断来全面评估响应是否满足特定要求,以这种方式有力地提升了测试的准确性和可靠性,让我们能及时发现 API 可能存在的问题,保障 API 质量达到预期标准。

三、日志

        Postman 的日志功能具有重要作用,通过日志功能,我们可以清晰地了解每一次测试的执行情况,在遇到问题或错误时,能够快速定位和分析原因。就像是测试过程的“记录仪”,为我们提供了宝贵的线索和信息,帮助我们更好地理解 API 的行为和交互,以便进行有效的调试和优化。日志功能还可以帮助我们追踪测试的历史记录,方便进行回顾和总结,为后续的测试工作提供参考和借鉴。总之,日志功能是 Postman 中非常实用且不可或缺的一部分,对于提升测试效率和质量有着显著的意义。

        在进行接口测试的过程中,常常会由于代码存在问题而引发报错情况,此时,查看日志就变得极为重要。Postman 恰好提供了这样的功能,它准许我们在脚本里编写打印语句,从而能够查看所打印出来的结果。与此同时,还能够查看每一个请求所对应的日志信息。

编写日志打印语句

        在 Postman 里,运用 JavaScript 来编写日志打印语句,其编写的位置能够是 Pre-request Script 或者 Tests 标签。例如编写这样的打印语句:console.log("hello,postman")

如下图所示:

查看日志

在Postman中查看日志输出的方式有两种

1、点击工具左下角的Console按钮。

2、点击Postman工具栏中的View,然后点击“Show Postman Console”。

日志打印展示如下图:

        总结,Postman 的日志功能相当实用且关键。可以让我们全面的记录接口测试过程中的诸多细节,包括请求的各项参数、发送时间以及响应的状态码、内容和时间等。通过这一功能,我们能清晰地追溯每一次测试的完整轨迹,当遇到问题或异常时,可借助日志迅速定位根源并加以分析。无论是在排查故障还是深入理解 API 行为方面,日志功能都发挥着重要作用,为我们优化测试流程、提升测试效果提供了有力的支持和依据,希望本篇文章可以给大家带来一定的帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/696658.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘高效引流获客的艺术

在数字营销的海洋中,吸引潜在客户的注意力就像捕捉闪烁的鱼群——需要技巧、耐心和正确的工具。有效的引流获客策略能为企业带来生机,如同春风拂过荒漠,唤醒沉睡的种子。本文将带你领略那些让企业脱颖而出的获客秘籍,让你的目标客…

嫦娥六号揭秘真相:阿波罗登月是真是假?一文终结所有疑问!

近期,嫦娥六号的成功发射如同璀璨的星辰,再次将人们的视线聚焦于浩瀚的宇宙,与此同时,网络上关于美国阿波罗登月是否造假的争议也如潮水般涌现。一些声音宣称,嫦娥六号的发射为揭示美国阿波罗登月任务的真实性提供了关…

ubuntu server 22.04.4 系统安装详细教程

本教程使用vmware workstation 17创建虚拟机进行安装演示,安装方式和真机安装没有区别。 1、下载镜像 下载ubuntu server版本系统镜像,官网下载地址:https://cn.ubuntu.com/download/server/step1 注意:自己下载时需要确认是否是…

145.二叉树的后序遍历

刷算法题: 第一遍:1.看5分钟,没思路看题解 2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

LeetCode/NowCoder-链表经典算法OJ练习2

最好的,不一定是最合适的;最合适的,才是真正最好的。💓💓💓 目录 说在前面 题目一:分割链表 题目二:环形链表的约瑟夫问题 SUMUP结尾 说在前面 dear朋友们大家好!&…

【JVM】从可达性分析,到JVM垃圾回收算法,再到垃圾收集器

《深入理解Java虚拟机》[1]中,有下面这么一段话: 在JVM的各个区域中,如虚拟机栈中,栈帧随着方法的进入和退出而有条不紊的执行者出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在…

数据可视化(十二):Pandas太阳黑子数据、图像处理——离散极值、核密度、拟合曲线、奇异值分解等高级操作

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

IDEA切换分支

方法一 1、选择要切换分支的module 2、右键,选择git 3、再点击branches 4、可以看到当前module的本地分支(local Branches)及远程分支(Remote Branches)列表。点击你要切换到的分支,Checkout即可。 方法二 1、点击…

vue3 第二十八节 (vue3 事件循环之JS事件循环)

1、什么是事件循环 事件循环就是消息队列,是浏览器渲染主线程的工作方式; 过去将消息队列,简单的分为宏任务 和微任务 两种队列,而对于现在复杂多变的浏览器环境,显然这种处理方式已经不能满足使用,取而代…

d17(154-168)-勇敢开始Java,咖啡拯救人生

目录 方法递归 字符集 编码-解码 IO流 字节流 字节输入流 InputSream FileInputStream 字节输出流 OutputSream FileOutputSream 释放资源的方式 try-catch-finallly try-with-resource 字符流 字符输入流 Reader FileReader 文件字符输出流 Writer FileWriter …

庙算兵棋推演AI开发初探(4-调用AI模型)

前面讲了如何开展编写规则脚本型Agent(智能体)的方法,现在探究一下如何调用知识型(一般而言的训练出的模型)智能体的方法。 这次调用的是庙算平台的demo(网址见图) 下载了“知识强化学习型”…

计算机Java项目|Springboot房产销售系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简…