如何将Postman API测试转换为JMeter以进行扩展

news/2024/11/8 6:43:01/

许多测试工程师使用Postman进行API测试自动化。他们发现端点,发出请求,创建测试数据,运行回归测试,使用Newman等实现API测试的持续集成。但是,Postman有一定的测试限制。希望获得更多负载测试能力的开发人员,DevOps和QA工程师可以将其Postman测试转换为JMeter。这篇博客文章将解释何时建议将Postman转换为JMeter,并逐步说明如何实现。

Postman API Testing Limitations

如果你想学习jmeter接口测试,我这边给你推荐一套视频,这个视频可以说是B站百万播放全网第一的jmeter接口测试教程,同时在线人数到达1000人,并且还有笔记可以领取

2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频_哔哩哔哩_bilibili​www.bilibili.com/video/BV1Ux4y1L7Lj/?spm_id_from=333.337.search-card.all.click正在上传…重新上传取消icon-default.png?t=N3I4https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1Ux4y1L7Lj/%3Fspm_id_from%3D333.337.search-card.all.click

可扩展性

Postman测试无法扩展。如果您的集合中有很多请求,Postman / Newman将使用1个线程(用户)并按顺序执行这些请求,而不是使用多个线程并发执行。

性能测试能力

由于可扩展性限制,Postman不适合API性能测试。性能测试要求同时针对多个线程(用户)运行测试,以确保系统在重负载下不会中断。

何时将Postman测试转换为JMeter测试

您可能希望将现有的Postman测试转换为JMeter以获得以下好处:

      • 多线程执行
      • 获取API的性能指标
      • 获得高级报告,并将不断增加的负载与响应时间,错误数量等相关联。
      • 查找瓶颈和最慢的API端点

如何将Postman API测试转换为JMeter测试

以下是将现有Postman测试转换为JMeter的步骤:

第1步-准备JMeter进行录制

JMeter随附有HTTP(S)测试脚本记录器,该记录器充当浏览器(或使用HTTP协议并支持代理的任何其他应用程序)的代理。因此,您可以使用它来拦截浏览器生成的请求。在我们的例子中,您可以使用它来拦截Postman,并将请求转换为HTTP Request采样器。

JMeter的配置非常简单-尤其是在使用JMeter模板功能时

1.转到JMeter主菜单,然后选择“文件”->“模板”->“记录” ,然后单击“创建”。

2.选择HTTP(S)测试脚本记录器,然后单击“开始”。

3.提供您的API主机,以便JMeter将其置于HTTP Request Defaults下

 

第2步-准备Postman进行记录

1.首先,将JMeter证书导入Postman。启动JMeter的HTTP(S)测试脚本记录器时,JMeter生成一个自签名证书,该证书使JMeter可以解密HTTPS请求。该文件称为
ApacheJMeterTemporaryRootCA.crt ,它将在JMeter安装的“ bin”文件夹下开始生成。

2.打开Postman设置,然后转到“证书”选项卡

3.切换为“CA证书”,并找到
ApacheJMeterTemporaryRootCA.crt

就是这样,现在Postman将使用JMeter的证书,并且JMeter将能够解密捕获的请求

配置Postman以使用JMeter作为代理

现在,您需要“告诉”Postman通过JMeter的HTTP(S)测试脚本记录器发送请求。

4.转到Postman的设置,然后打开“代理”选项卡。

5.在用于发送请求的代理配置下,选中“添加自定义代理配置”框。

6.选择“ HTTP”和“ HTTPS”协议。

7.使用“localhost”作为代理服务器(如果你有不同的主机上运行的JMeter -使用该主机的IP地址或DNS主机名代替)。

8.使用“ 8888”作为代理端口。

 

步骤3-记录您的测试

恭喜你!Postman和JMeter终于建立了联系。当您开始请求或收集时,JMeter将捕获它并为每个请求生成一个HTTP请求采样器。如果存在任何HTTP标头,JMeter将添加一个HTTP标头管理器以将标头添加到请求中。

这是一个有关其工作原理的小示例:

 

将Postman转换为JMeter时的提示,技巧和局限性

命令行记录

如果要在Windows上记录Newman测试,请遵循Windows操作系统代理设置。因此,在Internet Explorer或Chrome浏览器中执行设置就足够了。这将设置纽曼将使用的系统级代理。

对于Linux / Unix / MacOS,可以通过HTTP_PROXY环境变量提供代理,例如:

HTTP_PROXY = http:// localhost:8888 && newman -c your_collection.json

BlazeMeter代理记录器

代替本地JMeter代理,您可以使用基于云的BlazeMeter代理记录器,该记录器

  • 简化证书的创建,尤其是在记录移动应用程序流量方面。
  • 具有动态参数自动关联的功能。

局限性

请记住,这种方法仅适用于仅记录请求。您在“先决条件”下定义的所有脚本。或Postman中的“测试”标签将不被考虑。因此,如果您具有测试数据准备或声明逻辑,则需要使用JSR223测试元素和Groovy语言对其进行复制.

 


http://www.ppmy.cn/news/56386.html

相关文章

Redis高级——键值对设计

1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id]长度不超过44字节不包含特殊字符 例如:我们的登录业务,保存用户信息&a…

【Java笔试强训 30】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥最难的问…

Towards Principled Disentanglement for Domain Generalization

本文用大量的理论论述了基于解纠缠约束优化的域泛化问题。 这篇文章认为以往的文章在解决域泛化问题时所用的方法都是non-trivial的,也就是说没有作严格的证明,是不可解释的,而本文用到大量的定理和推论证明了方法的有效性。 动机 因为域泛…

R语言 | 列表

目录 一、建立列表 1.1 建立列表对象——对象元素不含名称 1.2 建立列表对象——对象元素含名称 1.3 处理列表内对象的元素名称 1.4 获得列表的对象元素个数 二、获取列表内对象的元素内容 2.1 使用"$"符号取得列表对象的元素内容 2.2 使用"[[ ]]"符…

互联网摸鱼日报(2023-05-02)

互联网摸鱼日报(2023-05-02) InfoQ 热门话题 ASPLOS 23系统顶会论文 Plugsched :安全、高效的多场景调度器热升级详解 美团大规模容器集群降本增效实践 GitHub增加SBOM导出功能,使其更易于符合安全性需求 平台工程应知应会 …

DateFormat使用时需要注意:多线程下需要特殊处理

前言 工作或学习过程中难免会接触到时间(Date)相关的内容,比如String类型转为Date类型,或者Date类型转为String类型,jdk为我们提供了一套完善的日期格式化工具,DateFormat类,使用者可以使用该接…

《Effective Python 编写高质量Python代码的59个有效方法》学习笔记6(完)

用functools.wraps定义函数修饰器 python为修饰器提供了专门的语法,它使得程序在运行的时候,能够用一个函数来修饰另一个函数 对于调试器这种依靠内省机制的工具,直接编写修饰器会引发奇怪的行为 内置的functools模块提供了名为wraps的修饰器…

修改 cuComplex.h, 将复数运算应用到没有cuda环境的C语言程序设计里

修改了 cuda环境里的 cuComplex.h文件: 基于float的complex数据类型的运算: /* cuComplex.h** float cuCrealf(cuFloatComplex x)// 取实部 float cuCimagf(cuFloatComplex x)// 取虚部 cuFloatComplex make_cuFloatComplex(float r, float i)// 组合…