使用Postman REST/RESTFUL工具进行负载测试

57

我已经在Chrome浏览器中添加了Postman插件来进行API的负载测试。

但是,我不知道如何使用Postman工具进行负载测试。

我的问题是如何在这个工具中模拟"虚拟用户"?

10个回答

41

Postman拥有一个Collection Runner,可用于进行多次迭代的API调用。
如果您能想办法使其并行运行请求,您可能可以将其用于负载测试

在此输入图片描述


2
Collection Runner 用于同时运行多个请求,但它不能并行运行请求。 - Vikash kumar Yadav
不再需要任何变通方法了。性能测试功能已经在Postman的Canary版本中可用。请查看我的回答以获取详细信息。 - elyptikus

30

我将一个非常简单的Postman请求,带有单个pm.test()断言,转换为了k6脚本。但我无法让它通过测试。在Postman中它可以正常通过,但是在我转换并使用k6运行时却不能通过。我已经在k6问题论坛上发布了这个问题:https://github.com/k6io/postman-to-k6/issues/107 - Andy N
k6 转换 Postman 测试似乎存在一个接一个的问题需要解决。目前来看,从 Postman 到 k6 的转换并不是一个可行的选择。 - vkhazin

28

嗨,我建议您在负载测试时使用Jmeter,因为它是专门为此设计的。但有些人觉得使用已创建好集合的Postman更容易,因为它的界面更友好。

步骤1- 单击集合列表中您的集合旁边的小箭头 Little arrow along with collection

步骤2- 然后单击运行按钮以启动Collection runner Collection runner

Collection runner 是用于一种类似负载测试的部分

步骤3- Collection runner 有很多重要的部分需要考虑进行负载测试 Collection runner 2

屏幕截图解释了每个部分的含义

  1. 表示迭代次数或用户数量

  2. 表示逐渐增加的时间或用户访问频率

  3. 用于记录请求

  4. 选择测试执行日期

  5. 用于运行测试

  6. 所有API集合

  7. 所有API列表

  8. 环境选择

运行后会显示所需的结果,为保护隐私我已经做了信息处理。


2
感谢您关心并提供详细的解释。 - Valentine Shi
2
“iterations”听起来像是要重复测试多少次? - cs94njw
1
您的集合运行的迭代次数。您还可以多次运行集合以针对不同的数据集构建工作流程. 每个请求之间的间隔延迟(毫秒)。 - cs94njw

23

我认为你不能使用Chrome扩展来进行负载测试,考虑使用更专业的工具,例如SoapUIApache JMeter

参考资料:

SoapUI专门设计用于测试Web服务,而负载测试是其次要选项。JMeter专门设计用于负载测试,并没有任何Web服务特定功能。但如果我必须做出选择,我会选择JMeter,因为它可以产生更大的负载并具有更好的报告功能。


你也可以仅使用 locust.io 进行 API 测试。 - Gomes

18

您可以在Postman中打开多个集合运行窗口以并行运行集合。

不断点击运行按钮,您将得到新的集合窗口。一个接一个地启动每个集合,它们都将开始运行。

示例


你能再解释一下吗?你如何打开那些窗口?请通过编辑你的回答进行详细说明。 - JJJ
2
点击“再次运行”按钮,您将会打开一个新的集合窗口。逐个启动每个集合,它们都将开始运行。https://i.stack.imgur.com/K1qSf.png - Ramesh

2
你不能使用 Postman 进行负载测试,但你可以将 Postman 集合中实现的测试套件通过 newman 工具适配到负载测试工具中(这在与 jq 程序一起使用时特别有用)。

2
简而言之,没有办法直接通过Postman执行负载测试。您可以使用不同的工具,如Jmeter和SOAP UI等。

0
我们可以使用Postman Collection Runner进行负载测试。请按照以下步骤进行操作。 步骤1: 选择一个Postman Collection或选择一个环境,然后点击运行。

enter image description here

第二步:- 在Runner下选择Performance选项卡,并指定负载设置,然后点击开始

enter image description here

第三步:-实时观察响应时间和吞吐量(每秒请求数)

enter image description here

步骤4:- 运行完成后,观察和识别响应时间和每秒请求数中的瓶颈

enter image description here


0

由BlazeMeter提供的Taurus开源项目可能会成为未来的选择。他们目前还不支持多个实例。 https://gettaurus.org/docs/Postman/

如果您可以从服务器端测量API性能,并且拥有一台大型机器,则可以在Postman客户端中启动多个Postman Runner。将迭代设置为非常大的数字,然后单击“开始”。然后返回集合页面,再次点击“运行”以打开新的Runner页面。重复此过程,直到达到目标容量。

或者,您可以使用PowerShell多次运行Newman命令。

# Start 5 newman run of 10 iterations    
for($i = 0; $i -lt 5; $i++)
{
  Start-Job -Scriptblock {
    newman run "./postman_collection.json" --environment "environment.json" --iteration-count 10 --disable-unicode --silent --suppress-exit-code
  }
}

# Wait for all to complete
While (Get-Job -State "Running") { Start-Sleep 2 }

# Display output from all jobs
Get-Job | Receive-Job

# Cleanup
Remove-Job *

0

好消息!现在有一种方法了。

从今天起,这个功能只在Canary Build中可用,但很快也会在正式版本中提供。 编辑:该功能现在也在普通版本的Postman中可用。

操作步骤如下:

  1. 选择一个Postman集合或选择一个环境,然后点击运行:
  2. 在Runner下选择性能选项卡,并指定负载设置,例如"虚拟用户",然后点击开始。
  3. 实时观察响应时间和吞吐量(每秒请求数)。
  4. 运行完成后,观察并识别响应时间和每秒请求数的瓶颈 postman性能测试结果

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接