当前位置: 首页 > news >正文

软件测试 - 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

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

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

相关文章:

软件测试 - postman高级使用

断言 概念:让程序代替人判断测试用例执行的结果是否符合预期的一个过程 特点: postman断言使用js编写,断言写在postman的tests中 tests脚本在发送请求之后执行,会把断言的结果最终在testresult中进行展示 常用的postman提供的…...

数据交换技术

目录 <线路交换> <报文交换> <分组交换> 1.数据报分组交换 2.虚电路分组交换 计算机网络是以数据交换为目的的技术&#xff0c;从交换技术的发展过程来看&#xff0c;主要经历了线 路交换、报文交换、分组交换的过程。 <线路交换> 线路交换又称为…...

FFmpeg-- mp4文件合成1:aac和h264封装(c++实现)

文章目录 流程api核心代码muxer.hmuxer.cppaac 和 h264 封装为视频流,封装为c++的Muxter类 流程 分配视频文件上下文 int Init(const char *url); 创建流,赋值给视频的音频流和视频流 int AddStream(AVCodecContext *codec_ctx); 写视频流的head int SendHeader(); 写视频流的…...

【嵌入式开发 Linux 常用命令系列 1.3 -- 统计目录下有多少个文件】

统计目录下有多少个文件 在 Linux 中&#xff0c;你可以使用 find 命令和 wc&#xff08;word count&#xff09;命令的组合来统计当前目录及其子目录下的文件数量。如果你只对当前目录&#xff08;不包括子目录&#xff09;中的文件数量感兴趣&#xff0c;可以使用 ls 和 wc …...

JMeter 如何并发执行 Python 脚本

要在JMeter中并发执行Python脚本&#xff0c;可以使用Jython脚本或通过调用外部Python脚本的方式实现。 使用Jython脚本并发执行Python脚本的步骤&#xff1a; 1、创建一个线程组&#xff1a;在JMeter界面中&#xff0c;右键点击测试计划&#xff0c;选择 “添加” -> “线…...

第十三届蓝桥杯省赛真题 Java B 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 星期计算试题 B: 山试题 C: 字符统计试题 D: 最少刷题数试题 E \mathrm{E} E : 求阶乘试题 F : \mathrm{F}: F: 最大子矩阵试题 G: 数组切分试题 H: 回忆迷宫试题 I: 红绿灯试题 J 拉箱子 发现宝藏 前些天发现了一个巨牛的人工智能学习…...

Excel 打开后提示:MicrosoftExcel无法计算某个公式。在打开的工作簿中有一个循环引用...

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 MicrosoftExcel无法计算某个公式。在打开的工作簿中有一个循环引用&#xff0c;但无法列出导致循环的引I用。请尝试编辑上次输入的公式&#xff0c;或利用“撤消”命令删除该公式&#xff0c;如下图&…...

【自我提升】计算机领域相关证书

目录 计算机技术与软件专业资格&#xff08;水平&#xff09;考试证书&#xff08;软考&#xff09;Oracle认证Cisco认证微软认证红帽认证AWS认证 计算机技术与软件专业资格&#xff08;水平&#xff09;考试证书&#xff08;软考&#xff09; 计算机技术与软件专业技术资格&a…...

外包干了15天,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2019年我通过校招踏入了南京一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…...

人工智能(Educoder)-- 搜索技术 -- 启发式搜索

任务描述 本关任务&#xff1a;八数码问题是在一个33的棋盘上有1−8位数字随机分布&#xff0c;以及一个空格&#xff0c;与空格相连的棋子可以滑动到空格中&#xff0c;问题的解是通过空格滑动&#xff0c;使得棋盘转化为目标状态&#xff0c;如下图所示。 为了简化问题的输…...

计算平均分 javascript

养成好习惯&#xff1a;先写注释再写代码 基础版&#xff1a;直接写逻辑&#xff08;平均分总和/个数&#xff09; // 求平均分 var scores [60, 55, 80, 33, 75, 100]; // 求和,相除 var sum 0; var avg;for (var i 0; i < 6; i) {sum scores[i]; }avg sum / 6; con…...

Redis入门到实战-第三弹

Redis入门到实战 Redis数据类型官网地址Redis概述Redis数据类型介绍更新计划 Redis数据类型 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#…...

AnyGo for Mac最新激活版:位置模拟软件打破地域限制

AnyGo for Mac&#xff0c;一款专为Mac用户打造的位置模拟软件&#xff0c;让您能够轻松打破地域限制&#xff0c;畅享无限可能。 软件下载&#xff1a;AnyGo for Mac v7.0.0最新激活版 通过AnyGo&#xff0c;您可以随时随地模拟出任何地理位置&#xff0c;无论是国内热门景点还…...

【Mysql数据库基础07】DDL 数据定义语言

Data Definition Language 1 库的操作1.1 create 创建1.2 alter 修改1.3 drop 删除 2 表的操作2.1 表的创建2.2 表的修改2.2.1 修改表名2.2.2 修改列名2.2.3 修改列的类型和约束2.2.4 添加列2.2.5 删除列 2.3 表的删除2.4 表的复制 3 练习 1 库的操作 1.1 create 创建 create…...

数据库及中表的创建和管理

目录 创建数据库 使用数据库(使用,查看信息) 修改数据库(删除,修改)...

git笔记之撤销、回退、reset方面的笔记

git笔记之撤销、回退、reset方面的笔记 code review! 文章目录 git笔记之撤销、回退、reset方面的笔记1.git 已经commit了&#xff0c;还没push&#xff0c;如何撤销到初始状态git reset --soft HEAD~1git reset HEAD~1&#xff08;等同于 git reset --mixed HEAD~1&#xff0…...

【中间件】docker数据卷

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;中间件 ⛺️稳中求进&#xff0c;晒太阳 1.数据卷&#xff08;容器数据管理&#xff09; 修改nginx的html页面时&#xff0c;需要进入nginx内部。并且因为内部没有编辑器&#xff0c;修改…...

【3D reconstruction 学习笔记 第二部】

三维重建 3D reconstruction 4. 三维重建与极几何三角化&#xff08;线性解法&#xff09;三角化&#xff08;非线性解法&#xff09;多视图几何极几何极几何约束基础矩阵估计 5. 双目立体视觉重建6. 多视图重建7. SFM 系统设计8. SLAM系统设计 4. 三维重建与极几何 三角化&…...

【CSP试题回顾】202109-1-数组推导(优化)

CSP-202109-1-数组推导 解题代码 #include <iostream> #include <vector> #include <algorithm> using namespace std;long long n, sumMax,sumMin;int main() {cin >> n;vector<long long>arr(n);for (size_t i 0; i < n; i){cin >>…...

Redis - 高并发场景下的Redis最佳实践_翻过6座大山

文章目录 概述6座大山之_缓存雪崩 &#xff08;缓存全部失效&#xff09;缓存雪崩的两种常见场景如何应对缓存雪崩&#xff1f; 6座大山之_缓存穿透&#xff08;查询不存在的 key&#xff09;缓存穿透的原因解决方案1. 数据校验2. 缓存空值3. 频控4. 使用布隆过滤器 6座大山之_…...

从UE/Unity转战Godot:一个老引擎开发者的踩坑与真香实录

从UE/Unity转战Godot&#xff1a;一个老引擎开发者的踩坑与真香实录 第一次双击Godot图标时&#xff0c;我正坐在堆满Unity参考书的办公桌前。作为用过五年Unity、三年Unreal的"引擎老油条"&#xff0c;我带着审视新玩具的心态点开了这个不到100MB的绿色软件——没想…...

构建内容生成服务时利用Taotoken实现模型降级容灾

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 构建内容生成服务时利用Taotoken实现模型降级容灾 在构建面向用户的在线内容生成服务时&#xff0c;服务的稳定性和可用性是核心考…...

量子机器学习在时间序列预测中的表现:一项基准研究的深度解析

1. 项目概述与核心问题 时间序列预测&#xff0c;这个听起来有点学术的词&#xff0c;其实离我们并不远。从明天股市的涨跌&#xff0c;到下周的天气变化&#xff0c;再到工厂里一台机器的故障预警&#xff0c;背后都离不开对历史数据的分析和未来趋势的推断。在经典计算领域&a…...

齐物论智慧:为什么“不知“才是真知?

齐物论智慧:为什么"不知"才是真知? 副标题: 从王倪三问到道枢境界,庄子如何破除认知局限 痛点:为什么我们总是"自以为知"? 王倪三问(《庄子齐物论》): 齧缺问王倪:“你知道万物共同的标准吗?” 王倪答:“吾恶乎知之”(我怎么知道呢?) 齧缺…...

JMeter精准1QPS压测:从CTT原理到Groovy高精度定时器实现

1. 这不是“设个线程数”就能搞定的事&#xff1a;为什么1秒1次请求在JMeter里反而最难稳很多人第一次做压测&#xff0c;看到需求“每秒发送1次请求”&#xff0c;第一反应是&#xff1a;“简单&#xff0c;开1个线程&#xff0c;Ramp-up时间设为0&#xff0c;循环次数设成100…...

SLED框架:边缘计算中的LLM推理加速方案

1. SLED框架&#xff1a;边缘计算场景下的LLM推理加速方案在边缘计算环境中部署大语言模型&#xff08;LLM&#xff09;面临的核心矛盾在于&#xff1a;模型规模的持续增长与边缘设备有限的计算资源之间的不匹配。传统解决方案如模型量化&#xff08;Quantization&#xff09;和…...

深度学习解码星际湍流:从光谱图估计MHD模式能量分数

1. 项目概述与核心价值在星际介质&#xff08;ISM&#xff09;的研究中&#xff0c;磁流体动力学&#xff08;MHD&#xff09;湍流扮演着能量传输、物质混合和结构形成的“发动机”角色。它并非一团混沌&#xff0c;而是可以分解为三种具有不同物理特性的基本模式&#xff1a;阿…...

如何集成OpenClaw?2026年腾讯云部署及配置Token Plan保姆级步骤

如何集成OpenClaw&#xff1f;2026年腾讯云部署及配置Token Plan保姆级步骤。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主…...

Fay数字人框架服务器安全基线实战指南

1. 为什么一份“数字人框架服务器安全基线”不是可选项&#xff0c;而是上线前的生死线你花三个月调好了Fay数字人的语音唤醒灵敏度&#xff0c;优化了TTS情感韵律&#xff0c;把LLM上下文窗口拉到32K&#xff0c;连虚拟形象的微表情帧率都压到了60fps——结果刚部署到云服务器…...

麒麟KYLINOS声音设置进阶:用命令行玩转‘寻光’主题、单声道和侦听模式

麒麟KYLINOS声音设置进阶&#xff1a;用命令行玩转‘寻光’主题、单声道和侦听模式对于追求系统深度定制的极客用户、音频工作者或无障碍功能使用者来说&#xff0c;图形界面往往只是冰山一角。麒麟KYLINOS基于UKUI桌面的声音子系统隐藏着诸多实用功能&#xff0c;通过命令行可…...