2017-08-07 82 views
-2

我有10k用户的测试API的要求。我选择的是:10k用户API负载测试,我选择jmeter

  1. 的JMeter
  2. Linux服务器安装的JMeter并用10k用户
  3. 一个节点抛负载现在

将用相同的操作执行API:

  • 登录
  • 带有发布参数的预订酒店
  • 更新预订详情
  • 保存的预订

我想为API测试使用上面用10k的用户,上面的工具是不够或者我应该找像loadimpact,装载机或blazemeter其他的选择吗?

+0

Jmeter是为它设计的,你可以添加更多的细节,所以答案不会基于意见? – user7294900

+0

它取决于用户场景的复杂程度和逼真程度......您是在测试每个API调用的readline在哪里,还是在用全部用户流模拟10k用户(例如,获取所有项目ID,项目页面,按日期或按字母顺序排序,获取某些ID的项目详细信息,修改少量项目...)。您**应该只是单独处理API端点。您是否可以模拟10k用户会话与API是另一回事。 – diginoise

+0

@ user7294900 - 是的,我刚刚添加了详细操作。 –

回答

1

如果您在谈论API,您应该考虑“每秒请求数”而不是“用户数”,因为我非常怀疑最终用户会通过curlPostman向API端点发送请求。

无论你的目标是否是“用户”或“每秒请求”,它是只有你谁可以回答,因为它取决于许多参数,如:

  • 你的机器硬件规格
  • 软件规格(OS/JVM/JMeter的版本和体系结构)测试的
  • 性质(请求/响应大小,assertionspre/post processors数目,等)

所以,你应该采取行动如下:

  1. 确保你跟随JMeter Best Practices
  2. 确保您监控其运行JMeter的节点的基线健康指标(CPU,内存,交换网络,磁盘),您可以使用JMeter PerfMon Plugin
  3. 以最小负载(每秒1个虚拟用户或每秒1个请求)开始并增加负载,直到您的机器开始交换或任何其他健康指标超过例如最大可用容量的80%。一旦发生,请查看活动线程(Active Threads Over Time侦听程序)或吞吐量(Transactions Per Second) - 这是特定于此测试的特定主机上每秒可产生的最大用户数或点击次数。如果这是不够的 - 你是好去,如果没有 - 你将不得不切换到Distributed testing

What’s the Max Number of Users You Can Test on JMeter?文章的更多细节。

1

整个答案是一个精心制作的它取决于

您可以做的最好的事情是运行PerfMon代理程序在生成负载的服务器上以及运行被测系统的服务器上。

通过这种方式,您应该看到(在CPU利用率和可用内存统计信息中)您是否已经最大程度地提供了API提供的服务器可以执行的操作,或者它是否是您的负载生成器已经停止运行。在第一种情况下,您根据所运行的硬件和配置获得了一些readline。在第二种情况下,您有一个指示可以使用超过1个方框来生成负载或调查设置和选项。

详细了解PerfMon JMeter plugin了解确切详情。