软件测试 - postman高级使用

断言

概念:让程序代替人判断测试用例执行的结果是否符合预期的一个过程

特点:

  • postman断言使用js编写,断言写在postman的tests中

  • tests脚本在发送请求之后执行,会把断言的结果最终在testresult中进行展示

  • 常用的postman提供的断言片段有以下几个:

    • status code is 200:断言响应状态码是否为200
    • JSON value check:断言响应体json数据校验
    • contains string:断言响应体是否包含字符串
    • euqal to a string:断言响应体是否等于指定字符串

案例:

/* pm.test是postman内置对象pm对外提供的一种名称为test的方法,他的功能是使用pm.test来编写测试脚本时,即使方法内部处理内容出现错误也不会影响后续自动化脚本的运行。 */
​
/* 断言响应状态码是否是200 */
pm.test("响应状态码", function () {
    pm.response.to.have.status(200);
});
​
/* 断言响应的json数据 */
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql("用户已存在");  /* jsondata就是后端返回给前端的json数据,是js中的对象,获取数据通过点点点的方式 */
});
​
/* "判断响应体是否和预期一致" */
pm.test("判断响应体是否和预期一致", function () {
    pm.response.to.have.body('{"code": 400, "message": "用户已存在"}');
});

请求前置脚本-Pre-request-Script

概念:在postman的pre-request-script中,用于在请求发送之前做一些操作,比如设置环境变量或者全局变量

全局变量和环境变量

概念:

  • 全局变量:是全局唯一的,不可以被重复定义
  • 环境变量:可以有多套环境,如开发环境、测试环境、生产环境等,每个环境之间相互隔离,每个环境中可以定义多个环境变量,多个环境变量之间变量可以重复,但是一个环境变量内变量不能重复。
  • 注意:在使用环境变量时,postman必须现将环境切换到环境变量下才可以使用对应的环境变量,另外环境变量的优先级是高于全局变量的。

设置变量:

  • 全局变量

    • 手动设置
    • 在请求前置脚本中通过代码设置。
    pm.globals.set("ip", "127.0.0.1");
    pm.environment.set("port", "8000");
  • 环境变量

    • 手动设置:需要先创建一个环境变量,然后在环境变量中进行设置
    • 在请求前置脚本中设置
    pm.environment.set("name", "aaa");

获取变量:

  • 请求参数中获取

    • 获取全局变量/环境变量:{{变量名称}}
  • 代码中获取:在请求前置脚本中获取

    pm.globals.get("variable_key");  /*获取全局变量*/
    pm.environment.get("variable_key");  /*获取环境变量*/

接口关联

实际场景中,很多接口之间都是有关联的,意思就是另一个接口需要的数据来自于其他的接口,最典型的场景就是很多接口都需要登录才能够正常请求。

实现接口关联的方式就是通过环境变量,步骤如下:

  • 在tests也就是请求之后执行的脚本中获取接口返回数据,获取接口返回数据var jsonData **=** pm.response.json();
  • 将需要的接口数据添加到环境变量中。
  • 在其他接口中使用环境变量即可。

读取外部csv文件实现参数化

当一个接口的测试数据非常多时,可以使用csv文件进行批量测试。

首先需要准备csv文件。

使用csv文件中的数据时,在请求中使用通过{{变量名}}直接使用,在代码断言中需要借助postman内置的data方法获取数据,比如data.passwddata表示的就是文件。

在批量运行时,选择文件即可,postman会自动读取文件然后进行测试

newman生成测试报告

newman是一款基于nodejs开发的可以运行Postman脚本的工具,并且可以生成测试报告。

安装newman之前需要先安装node.js,安装完成之后在安装Newman,通过npm install -g newman进行安装,最后安装newman-reporter-html,同样通过npm install -g newman-reporter-html安装。

安装完成之后,就可以使用newman生成测试报告了,生成测试报告步骤如下:

  • 导出测试集
  • 导出环境变量
  • 导出全局变量
  • 建议将这三个文件放在同一个目录下
  • 最后执行命令生成测试报告
newman run 测试脚本文件 -e 环境变量文件 -g 全局变量文件 -d 测试数据文件 -r html --reporter-html-export report.html

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

Linux系统架构----nginx的访问控制

nginx的访问控制 一、nginx基于授权的访问控制概述 Nginx与Apache一样,可以实现基于用户权限的访问控制,当客户端想要访问相应的网站或者目录时,要求用户输入用户名和密码,才能正常访问配置步骤生成用户密码认证文件 &#xff1…

48. 【Linux教程】yum 软件包管理

本小节介绍如何在 Linux 系统中使用 yum 命令软件管理。 1.yum 简介 yum 是 Red Hat 软件包管理器,它能够查询有关可用软件包的信息,从存储库获取软件包,安装和卸载软件包,以及将整个系统更新到最新的可用版本。yum 在更新&#…

sql注入基础学习

1.常用SQL语句 01、显示数据库 show databases; 02、打开数据库 use db name; 03、显示数据表 show tables; 04、显示表结构 describe table_name; 05、显示表中各字段信息,即表结构 show columns from table_nam…

c++初阶------类和对象(下)

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

河北政采网2024年的入驻要求?

河北政采网2024年的入驻要求主要包括以下几个方面: 经营范围与资质:申请者需具有合法经营的营业执照,可以是一般纳税人、小规模纳税人或个体工商户。同时,申请者需要具备自主电商平台,该平台应为面向社会消费的专业销…

Linux学习(3)——使用Linux命令行

1.Shell是什么? shell本质上是Linux的应用程序,是Linux和用户进行沟通的桥梁 用户可以通过控制台终端输入各种命令,命令会被shell解析,解析后就会调用命令所对应的应用程序,应用程序又会去调用各种API接口以使用Linux内…

锐捷 EWEB auth 远程命令执行漏洞复现

一、漏洞信息 漏洞名称:锐捷 EWEB auth 远程命令执行漏洞 漏洞类别:远程代码执行 风险等级:高危 二、漏洞描述 锐捷睿易是锐捷网络针对商业市场的子品牌。拥有易网络、交换机、路由器、无线、安全、云服务六大产品线,解决方案涵盖商贸零售、酒店、KTV、网吧、监控安防…

【嵌入式——QT】文件系统和文件读写

【嵌入式——QT】文件系统和文件读写 文本文件读写二进制文件读写文件目录操作QCoreApplicationQFileQFileInfoQDirQTemporaryDir和QTemporaryFileQFileSystemWatcher 图示代码示例 文本文件读写 QT提供了两种读写纯文本文件的基本方法,一种是用QFile类的IODevice读…

java SSM科研管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM科研管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S…

VS Code搭建windows+远程Linux上Docker的开发环境

在本地windows桌面系统远程Linux上Docker搭建开发环境主要步骤如下: 一、安装vs code和插件 在windows系统上安装vs code,并安装好remote-ssh、dev-container插件,也可以直接安装Remote Development,他会默认把vs code远程的几种…

网络请求与数据解析

urllib是Python自带的标准库中用于网络请求的库 ,无需安装,直接引用即可。通常用于爬虫开发、API(应用程序编程接口)数据获取和测试。 urllib库的几个模块: urllib.request :用于打开和读取URLurllib.error:包含提出…

大模型相关算法模型学习

对Transformer中Add&Norm层的理解-CSDN博客 GPT模型总结【模型结构及计算过程_详细说明】_gpt结构-CSDN博客 推荐30个以上比较好的中文nlp意图识别模型源码?-CSDN博客 Few-shot learning(少样本学习)入门 - 知乎 (zhihu.com) 零次学习…

程序人生 - 爬虫者,教育也!

作为一个站长,你是不是对爬虫不胜其烦?爬虫天天来爬,速度又快,频率又高,服务器的大量资源被白白浪费。 看这篇文章的你有福了,我们今天一起来报复一下爬虫,直接把爬虫的服务器给干死机。 本文有…

Linux常见指令总结

ls:显示当前目录下文件列表 常用的命令行参数: -l 显示更多的文件属性 -a 显示所有的文件/目录(包括隐藏的) -d 只显示目录 ps:参数可以叠加使用。 例如:ls -la 显示所有文件…

基于 Jenkins 搭建一套 CI/CD 系统

一、CI/CD环境介绍 本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打包,再自动化完成部署到Tomcat服务器提供访问。 环境准备三台Centos…

初窥机器学习

人工智能 近几年来,人工智能(AI)已成为家喻户晓的术语,我们在游戏、电影(还记得J.A.R.V.I.S吗?)和书籍中经常看到它的提及和描绘,但人工智能究竟是什么呢? 人工智能简单…

远程同声传译如何实现?哪里提供专业的远程同声传译?

远程同传声传译,即线上同传翻译,是指翻译员通过非现场的网络方式进行的同声传译(实时翻译)。远程同声传译的实现依赖于一系列先进的技术手段和高效的协作流程。这一服务模式的出现,不仅打破了传统同声传译的地域限制,还为全球范围…

2024上半年软考初级《程序员》报名考试全流程梳理

​2024年软考程序员考试报名时间节点: 报名时间:上半年3月18日到4月15日,下半年8月19日到9月15日(各地区报名时间不同,具体日期见官方通告) 准考证打印时间:上半年5月20日起,下半年…

HarmonyOS NEXT应用开发之使用AKI轻松实现跨语言调用

介绍 针对JS与C/C跨语言访问场景,NAPI使用比较繁琐。而AKI提供了极简语法糖使用方式,一行代码完成JS与C/C的无障碍跨语言互调,使用方便。本示例将介绍使用AKI编写C跨线程调用JS函数场景。通过调用C全局函数,创建子线程来调用JS函…

项目实战-tpshop商城项目

项目实战-tpshop商城项目 环境部署准备软件工具准备远程连接测试远程连接测试-查看虚拟机IP地址远程连接测试-检测本机与虚拟机是否连通远程连接测试-通过远程工具连接linux服务器 常见问题处理 环境部署项目技术架构介绍部署tpshop项目-tpshop验证数据库验证用户信息表熟悉商品…