Postman接口与压力测试实例

article/2025/11/7 10:54:24

 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。

1、环境变量和全局变量设置

环境变量可以使用在以下地方:

  • URL
  • URL params
  • Header values
  • form-data/url-encoded values
  • Raw body content
  • Helper fields

先设置好变量名及数值后,接下来就可以调用环境变量名,例如:

key对应的values,填写{{address}},注意需要用双花括号引用。

全局变量设置方法跟环境变量一样,点击"Globals" 后就会出现添加环境变量类似的页面,进行变量和值的设置。

全局变量设置应用于整个(Collection)中的请求。

GET 和POST 的区别:

  • GET 使用URL 或Cookie 传参,而POST将数据放在Body 中。
  • GET的URL 在长度上会有限制,而POST没有。
  • POST比GET相对安全,因为在地址栏不可见。
  • 一般POST请求用来获取数据,POST请求用来发送数据。

2、Get请求:

参考开发提供的接口设计文档,提供传参数据录入。

3、post请求:

如常见基本认证的登录用的较多,用户名和密码也可以通过设置的环境变量获取。Postman支持不同的认证机制如: Basic、Digest、OAuth等),支持收到响应语法高亮(HTML\JSON\XML等)。

下面举一个添加发布会接口例子开展:

选择form-data方式传参发送。

一、Body:

1. form-data
  就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
2.x-www-form-urlencoded
  就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对
3.raw
  可以上传任意格式的文本, 可以上传text、 json、 xml、 html等
 4.binary
   相当于Content-Type:application/octet-stream 只可以上传二进制数据,通常用来上传文件,由于没有键值,所以, 一次只能上传一个文件。

 二、Pre-requestScript 的使用

 对于环境变量和全局变量的使用,除了上面所讲的方法外,也可以用Pre-requestScript 方法。

以login接口为例,在"Pre-requestScript"中设置环境变量 "username", "password",在Body 中选取"form-data" 格式,输入所需的key-value, value即为变量{{username}}, {{password}}。

三、Tests使用(断言)

所谓断言,主要用于测试返回的数据结果进行匹配判断,匹配成功返回PASS,失败返回FAIL。

下图方法一,直接点击右侧例子函数,会自动生成出现在左侧窗口脚本,只需修改数据即可。

方法二:直接自己写脚本,如下图所示:

 常用tests用法如下:1.检查response body中是否包含某个string
tests["Body matches string"] = responseBody.has("string_you_want_to_search");注意:"Body matches string" 需唯一。2.检测JSON中的某个值是否等于预期的值
var data = JSON.parse(responseBody);
tests["Your test name"] = data.value === 100;JSON.parse()方法,把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数。 如:检查json中某个数组元素的个数(这里检测programs的长度)
var data = JSON.parse(responseBody);
tests["program's lenght"] = data.programs.length === 5;3.检查response body是否与某个string相等
4.转换XML body为JSON对象
var jsonObject = xml2Json(responseBody);tests["Body is correct"] = responseBody === "response_body_string";5.测试response Headers中的某个元素是否存在(如:Content-Type)
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 
//getResponseHeader()方法会返回header的值,如果该值存在或者: tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
上面的方法,不区分大小写。下面的方法,要区分大小写。6.验证Status code的值tests["Status code is 200"] = responseCode.code === 200;7.验证Response time是否小于某个值
tests["Response time is less than 200ms"] = responseTime < 200;8.name是否包含某个值
tests["Status code name has string"] = responseCode.name.has("Created");9.POST 请求的状态响应码是否是某个值
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;10.很小的JSON数据验证器var schema = {"items": {"type": "boolean"}};var data1 = [true, false];var data2 = [true, 123];console.log(tv4.error);tests["Valid Data1"] = tv4.validate(data1, schema);tests["Valid Data2"] = tv4.validate(data2, schema);

4、传参场景(比如测试登录接口需要不的账号,密码)

在接口测试过程中,有的时候需要构建多组同类型数据测试(正常数据,异常数据),当然没必要写多条测试用例,可使用CSV格式传参
举个例子,在测试用户登录接口的时候,需要用户输入相应的手机号和密码
那么,需要构建的测试数据有:手机号&密码正确,手机号正确&密码错误,手机号错误&密码正确,手机号为空&密码不为空,手机号正确&密码为空,手机&密码均为空。
如post请求:/api/login?phone={{phone}}&password={{password}}
a、可本地创建一个txt文档,并编辑数据,数据的头部必须参数名称保持一致,也就是phone和password,数据如下:

b、然后选择批量运行,即collection runner,操作如下:

数据预览图,如下:

c、最后点击运行就OK,可以在collection runner->Run Results查看运行结果。

5、压力测试

压力测试只能以文件夹的方式执行多个接口,不能单独执行。

设置并发10次。执行后结果:

 以上是postman基本操作总结。具体详细可参考官方样例:https://learning.getpostman.com/docs/postman/scripts/test_examples/


http://chatgpt.dhexx.cn/article/QrIZvNpI.shtml

相关文章

jmeter TCP接口压力测试

启动jmeter,添加线程组、TCP取样器、察看结果树 1.添加线程组 2.添加TCP取样器 3.添加监听器察看结果树 配置TCP取样器参数信息 1.TCPClient classname&#xff1a;报文格式&#xff0c;分3种&#xff1a; org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl&#x…

JMeter对接口进行压力测试

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试&#xff0c;但后来扩展到其他测试领域。 它可以用于测试静态和动态资源&#xff0c;例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FT…

如何使用Jmeter对HTTP接口进行压力测试?

我们不应该仅仅局限于某一种工具&#xff0c;性能测试能使用的工具非常多&#xff0c;选择适合的就是最好的。笔者已经使用Loadrunner进行多年的项目性能测试实战经验&#xff0c;也算略有小成&#xff0c;任何性能测试&#xff08;如压力测试、负载测试、疲劳强度测试等&#…

全网最新最全的jmeter接口测试,压力测试

目录 一.前言 二.接口测试 2.1Jmeter-http接口脚本 2.2Jmeter-webservice接口脚本 三.压力测试 3.1压测任务需求的确认 3.2压测设置 3.3压测结果查看 3.4压测结果的分析 3.5jmeter在linux下进行压力测试 ​ 一.前言 jmeter是apache公司基于java开发的一款开源压力测…

【Jmeter基础篇】03:如何进行post接口压力测试

目前网络上有很多很多Jmeter的压力测试使用指南&#xff0c;但是在实际使用过程中&#xff0c;很多朋友会遇到许多并不处于理想状态的情况&#xff0c;比如某些参数不知道应该往哪里放&#xff0c;具体怎么分析测试结果等等。 所谓压力测试&#xff0c;实质就是让n多个用户在同…

Jmeter怎么做接口测试/性能测试/压力测试(步骤)

目录 JMeter接⼝测试流程详解 1、Jmeter简介 2、Jmeter安装 3、设置Jmeter语⾔为中⽂环境 4、Jmeter主要元件 5、Jmeter元件的作⽤域和执⾏顺序 6、Jmeter进⾏接⼝测试流程 7、Jmeter进⾏接⼝测试流程步骤详解 8、总结 JMeter性能测试的步骤&#xff1f; 第一步&…

性能测试-项目实战-接口全流程压测

目录 1、前言 1.1、项目背景 1.2、场景执行步骤 2、司机长链接 2.1、司机出车环境 2.2、主要用到的包 2.3、脚本解析 3、全流程压测脚本 3.1、司乘数据准备 3.2、全链路压测脚本 4、资源监控与收集 4.1、聚合报告 4.2、自研脚本 1、前言 1.1、项目背景 在车辆与…

浅谈接口压测

一.背景 saas版在经过项目组全体成员的不断努力&#xff0c;最终实现了第一版的上线&#xff0c;为了验证sass系统可以支持多少用户同时在线访问&#xff0c;产生了sass版的接口压测。 二.压测是什么为什么要做压测 压测一般指性能压力测试&#xff0c;通过压测可以了解系统…

数据库select语句详解

SELECT 1.基本语法 select * from 表名 查询这张表所有内容。select 列名 from 表名 查询这张表某一列所有内容。select 列名1&#xff0c;列名2…from 表名 查询这张表的列1&#xff0c;列2&#xff0c;等多列。select distinct 列名 from 表名 查询这一列去掉重复内容后的内…

SQLite基本语句

SQLite基本语句 一&#xff1a; 1.SQLite数据库是一种嵌入式数据库&#xff0c;它的数据就是一个scores.db 2.经常被集成到各种应用程序中&#xff0c;甚至ios、Android、Mac OS、Linux 3.Python中内置了SQLite数据库&#xff0c;直接使用 4.数据库&#xff1a;关系型数据库&a…

Mysql数据库基本sql语句

文章目录 1 常用的数据类型2 查看数据库2.1 查看当前服务器中的数据库2.2 查看数据库中的表2.3 查看表的结构&#xff08;字段&#xff09; 3 SQL语句3.1 SQL语句分类3.2 创建及删除数据库和表3.2.1 创建新的数据库3.2.2 创建新的表3.2.3 删除指定的数据表3.2.4 删除指定的数据…

数据库的基本语句

这里写目录标题 mysql基本语句表的定义SQL语句分类 mysql基本语句 1.进入数据库 mysql -uroot -p 2.退出数据库 exit; 3.查看有哪些数据库 show databases; 4.创建新的数据库 create database 英文名字; 5.使用数据库 use 名字 6.查看表 show tables; 7.查看数据库版本 select…

Mysql基本语句

1、数据库的基本类型 1.关系数据库 特点&#xff1a;以表和表的关联构成的数据结构 优点&#xff1a;能表达复杂的数据关系。强大的查询语言&#xff0c;能精确查找想要的数据 缺点&#xff1a;读写性能比较差&#xff0c;尤其是海量数据的读写。数据结构比较死板 用途&am…

数据库常用语句汇总

数据库常用语句 一、对数据库的操作1. 用SQL语句创建数据库2.用SQL语句修改数据库3.用SQL语句删除数据库 二、对数据表的操作1.创建数据表定义数据表的约束NULL/NOT NULLUNIQUE约束&#xff08;唯一约束&#xff09;PRIMARY KET 主键约束外键约束CHECK 约束 2.修改数据表3.删除…

Mysql数据库基础语句

目录 一&#xff0c;常用的数据类型 二&#xff0c;数据库管理 1&#xff0c;Mysql基础语句操作 1.1&#xff0c;更改密码&#xff0c;登录数据库 1,2查看数据库结构 1.3&#xff1a;查看表结构 2, DDL语句&#xff1a;定义数据中的操作 2.1 创建数据库和表—create 2.2删…

MySql数据库基本语句

绝大多数都是记忆练习的东西 理解的偏少 一,DML语句之Delete(删除) 格式:delete from 表单名; 其后可以增加where条件限制,order by排序,limit限制 例如:delete from employee where name=‘ls’; 删除表中名字为李四的记录。 还有一个删除是truncate 格式:Truncate …

数据库基本语句

用DOS命令窗口操作数据库 启动数据库&#xff1a;mysql -u用户名 -p密码 当出现这个窗口意味着启动成功&#xff01; DDL语句 数据库操作语句 查询当前所有数据库名称&#xff1a;show databases&#xff1b;创建数据库&#xff1a;create database 数据库名&#xff1b;如…

数据库常用操作语句总结

数据库常用操作语句总结 一、基础1.select 语句2.select distinct 语句3.where 子句4.and 和 or 运算符5.order by 语句6.insert into 语句7.update 语句8.delete 语句 二、高级1.top 子句2.like 操作符3.SQL 通配符4.in 操作符5.between 操作符6.as 别名7.join 表关联8.sql un…

java 数据结构--堆

1.堆的基本定义 二叉树的两种结构&#xff0c;一种是链式结构,一种就是顺序结构,普通二叉树其实是不适合用数组来存储数据,因为会造成大量空间的浪费,但完全二叉树似乎更合适于顺序结构存储,我们通常把堆(完全二叉树) 使用顺序数组来存储。 堆&#xff1a; &#xff08;1&…

Java实现堆(最大堆)

1、什么是堆 现在有这么一个需求&#xff0c;设计一个结构&#xff0c;满足两个操作要求&#xff1a; 删除时&#xff0c;返回该结构的最大值或者最小值的元素往结构中新增元素 问题&#xff1a;如何组织优先这种结构&#xff1f; 一般数组、链表&#xff1f;有序数组或者链…