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 行为方面,日志功能都发挥着重要作用,为我们优化测试流程、提升测试效果提供了有力的支持和依据,希望本篇文章可以给大家带来一定的帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue从入门到精通(一):初始Vue

一,Vue是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代…

基于SpringBoot+Vue的教师个人成果管理系统

初衷 在后台收到很多私信是咨询毕业设计怎么做的?有没有好的毕业设计参考? 能感觉到现在的毕业生和当时的我有着同样的问题,但是当时的我没有被骗, 因为现在很多人是被骗的,还没有出学校还是社会经验少,容易相信别人…

猫头虎分享已解决Error || ERROR: Failed building wheel for XXX

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

物联网设计竞赛_3_Jetson Nano连接摄像头

ls /dev/video* 查看是否有摄像头 camorama 开启摄像头 关闭摄像头用&#xff1a; ctr c结束进程 若有camorama被启动用ps aux 或者 ps aux l grep camorama 找到对应进程用 kill -9 <PID>杀死进程再启动 必要的时候也能重启系统再试试&#xff1a; shutdown -r …

AI试衣IDM-VTON,Windows11本地安装配置记录!

昨天我们已经介绍过IDM-VTON这个开源项目了。 通过这个软件可以轻松实现一键换衣服。 昨天&#xff0c;简单演示了一下在线使用。 今天&#xff0c;来演示如何安装到本地电脑上&#xff01; 本地配置会有一定的专业性&#xff0c;懂的人可以参考下。 不懂得直接拉到最后&am…

【MySQL数据库开发设计规范】之字段设计规范

欢迎点开这篇文章&#xff0c;自我介绍一下哈&#xff0c;本人姑苏老陈 &#xff0c;是一名JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中&#xff0c;该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章&#xff0c;定期更新&#xff0c;欢迎关注&…

强化训练:day7(字符串中找出连续最长的数字串、岛屿数量、拼三角)

文章目录 前言1. 字符串中找出连续最长的数字串1.1 题目描述1.2 解题思路1.3 代码实现 2. 岛屿数量2.1 题目描述2.2 题目描述2.3 代码实现 3. 拼三角3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 字符串中找出连续最长的数字串   2. 岛屿数量   3. 拼三角 1. 字符串…

嵌入式和单片机的区别在哪?

嵌入式和单片机是两个不同的概念&#xff0c;它们在很多方面都存在着差异。嵌入式系统是一种专用的计算机系统&#xff0c;通常用于控制和监测其他设备。它通常由微处理器、存储器、输入/输出接口和其他外围设备组成。嵌入式系统可以运行各种操作系统&#xff0c;如 Linux、Win…

java spring boot动态数据库获得配置信息连接多数据源(数据库)

数据库 数据库文件和代码文件 https://download.csdn.net/download/qq_34631220/89304173 链接&#xff1a;https://pan.baidu.com/s/1xoh6xiSRx4nW_gKvR1QPjg 提取码&#xff1a;i7b7 –来自百度网盘超级会员V5的分享 文章位置 添加链接描述 说明&#xff1a;事务只能单库…

小程序常用组件

小程序常用组件 1.组件的定义2.常用组件3.引入外部字体图标库4.组件样式5.示例代码 1.组件的定义 组件就是指微信定义的具有特殊功能的标签&#xff0c;在wxml中只能使用微信定义的标签。 2.常用组件 <view>&#xff1a;用于页面布局的块级组件&#xff0c;类似于html中的…

【3dmax笔记】021:对齐工具(快速对齐、法线对齐、对齐摄影机)

文章目录 一、对齐二、快速对齐三、法线对齐四、对齐摄影机五、注意事项3dmax提供了对齐、快速对齐、法线对齐和对齐摄像机等对齐工具: 对齐工具选项: 下面进行一一讲解。 一、对齐 快捷键为Alt+A,将当前选择对象与目标对象进行对齐。 最大对最大:

基于SpringBoot+Vue的法律咨询系统

课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不可跨域的鸿沟&#xff0c;信息的传播速度极慢&#xff0c;信息处理的速…

7B2 PRO主题5.4.2 免授权开心版源码 | WordPress主题

简介&#xff1a; B2 PRO 5.4.2 最新免授权版不再需要改hosts&#xff0c;和正版一样上传安装就可以激活。 直接在WordPress上传安装即可 点击下载

3.整数运算

系列文章目录 信息的表示和处理 : Information Storage&#xff08;信息存储&#xff09;Integer Representation&#xff08;整数表示&#xff09;Integer Arithmetic&#xff08;整数运算&#xff09;Floating Point&#xff08;浮点数&#xff09; 文章目录 系列文章目录前…

基于SpringBoot + MySQL的宠物医院管理系统设计与实现+毕业论文+指导搭建视频

系统介绍 项目的使用者可以避免排队挂号&#xff0c;比较方便&#xff0c;也方便于宠物医院的管理。现在的宠物本系统根据华阳社区宠物医院管理工作流程将系统使用者划分为三类&#xff0c;分别为、宠物医生、宠物主人以及系统管理人员&#xff0c;以下是对该三类类用户的具体…

几个简单操作,让3dmax渲染速度起飞‼️

3dmax渲染慢原因&#xff1a; 场景复杂度&#xff1a;场景中模型、材质、纹理和贴图的复杂性增加渲染时间。优化场景&#xff0c;使用简化模型和材质可提高速度。 高质量设置&#xff1a;高级渲染效果如光线追踪、全局照明等增加计算量。适当降低设置&#xff0c;如减少分辨率…

类文件具有错误的版本 61.0, 应为 52.0

报错如下&#xff1a; Spring Boot 3以上版本至少得依赖JDK17版本&#xff0c;如果项目中要求使用JDK8版本&#xff0c;那么只能使用Spring Boot 2版本了。 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-par…

ssm+vue的公务用车管理智慧云服务监管平台查询统计(有报告)。Javaee项目,ssm vue前后端分离项目

演示视频&#xff1a; ssmvue的公务用车管理智慧云服务监管平台查询统计&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…

pytest(二)

1.pytest-html⽣成报告 Pytest-HTML 是⼀个插件&#xff0c;它可以⽣成漂亮且易于阅读的 HTML 测试报告。下⾯是使⽤ pytest-html ⽣成报告的步骤&#xff1a; 1. 安装 pytest-html 插件&#xff1a; pip install pytest-html 2. 运⾏测试并⽣成报告 pytest --htmlr…

python内置类bytearray()详解

bytearray 是 Python 的一个内置类&#xff0c;它提供了一个可变序列的字节数组。 bytearray 数组的元素必须是0-255之间的整数&#xff0c;这些整数对应于ASCII字符集中的数字。下面着张图是部分ASCII字符&#xff1a; bytearray 是可变的&#xff0c;可修改其内容&#xff0c…