当前位置: 首页 > 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座大山之_…...

FPGA定点和浮点数学运算-实例对比

在创建 RTL 示例时&#xff0c;经常使用 VHDL 2008 附带的 VHDL 包。它提供了出色的功能&#xff0c;可以高效地处理定点数&#xff0c;当然&#xff0c;它们也是可综合的。该包的一些优点包括&#xff1a; 有符号和无符号&#xff08;后缀和后缀&#xff09;定点向量。轻松将定…...

每日算法刷题Day25 6.7:leetcode二分答案3道题,用时1h40min(遇到两道动态规划和贪心时间较长)

3. 1631.最小体力消耗路径(中等,dfs不熟练) 1631. 最小体力消耗路径 - 力扣&#xff08;LeetCode&#xff09; 思想 1.你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights &#xff0c;其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左…...

使用python实现奔跑的线条效果

效果&#xff0c;展示&#xff08;视频效果展示&#xff09;&#xff1a; 奔跑的线条 from turtle import * import time t1Turtle() t2Turtle() t3Turtle() t1.hideturtle() t2.hideturtle() t3.hideturtle() t1.pencolor("red") t2.pencolor("green") t3…...

Java应用10(客户端与服务器通信)

Java客户端与服务器通信 Java提供了多种方式来实现客户端与服务器之间的通信&#xff0c;下面我将介绍几种常见的方法&#xff1a; 1. 基于Socket的基本通信 服务器端代码 import java.io.*; import java.net.*;public class SimpleServer {public static void main(String…...

tensorflow image_dataset_from_directory 训练数据集构建

以数据集 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 为例 目录结构 训练图像数据集要求&#xff1a; 主目录下包含多个子目录&#xff0c;每个子目录代表一个类别。每个子目录中存储属于该类别的图像文件。 例如 main_directory/ ...cat/ ...…...

如何在Unity中实现点击一个按钮跳转到哔哩哔哩

1.创建一个按钮 2.编写一个脚本&#xff08;你可以把链接改成你想要跳转的网站&#xff09; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class JumpToBilibili : MonoBehaviour {void Start(){gameObject.…...

vite+tailwind封装组件库

前言 演示视频 https://www.bilibili.com/video/BV1EST3zPEyP/?spm_id_from333.1387.homepage.video_card.click 参考 https://juejin.cn/post/7112295067682865166 https://juejin.cn/post/7046187185615142949 代码仓库 https://gitee.com/malguy/vite-components-li…...

Python训练营打卡Day42

知识点回顾 回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例 1. 回调函数&#xff08;Callback Function&#xff09; 回调函数是作为参数传递给另一个函数的函数&#xff0c;目的是在某个事件发生后执行。 def fetch_data(callback):# 模拟数据获取data {&quo…...

RetroMAE 预训练任务

RetroMAE 预训练任务的具体步骤&#xff0c;围绕 编码&#xff08;Encoding&#xff09;、解码&#xff08;Decoding&#xff09;、增强解码&#xff08;Enhanced decoding&#xff09; 三个核心阶段展开&#xff0c;以下结合图中流程拆解&#xff1a; 一、阶段 A&#xff1a;…...

LLaMA-Factory和python版本的兼容性问题解决

引言 笔者今天在电脑上安装下LLaMA-Factory做下本地的模型调优。 从github上拉取代码git clone https://github.com/hiyouga/LLaMA-Factory.git. pycharm建立工程,按照官网指导如下: LLaMA-Factory 安装 在安装 LLaMA-Factory 之前&#xff0c;请确保您安装了下列依赖: 运行以…...