当前位置: 首页 > 知识库问答 >
问题:

JMeter:负载测试RESTAPI的好测试结构是什么?

龙隐水
2023-03-14

我正在使用JMeter对一堆API(例如用户服务、播放器服务等)进行负载测试(基线、容量、寿命)。这些服务中的每一个都有几个endpoint(例如创建、更新、删除等)。我正在尝试找出一种在JMeter中组织我的测试计划的好方法,以便我可以加载测试所有这些服务。

1)为每个API创建一个单独的JMeter测试计划(jmx),而不是创建一个JMeter测试计划并添加线程组,如“用户服务线程组”、“播放器服务线程组”等,这是一个好主意吗?我在考虑为每个API添加一个测试计划,然后为不同类型的负载测试(基线、容量、寿命等)添加几个线程组。

2) 当JMeter计算采样时间(响应时间)时,它是否还包括BeanShell处理器所花费的时间?

3)在每个Simple Controller中放置一个Listener是个好主意吗?我正在使用JMeter插件进行报告。我想查看每个endpoint的报告。

如能回答任何或所有问题,我们将不胜感激:)

共有1个答案

陈俊誉
2023-03-14

1) 我喜欢一个看起来像测试套件的测试计划。JMeter有几种分离组件和测试需求的方法,因此很难设置规则。一个测试计划可能比几个更有效,并且可以配置为满足大多数需求。我发现计划之间可能有很多重复,这通常意味着在不同的地方维护相同的代码。最好在同一计划中使用模块和include来减少代码重复,但includes是等效的,可以与测试片段一起使用以减少重复。

Threadgroups最适合作为用户组使用,但也可以用于以任何方式分离测试。考虑不同页面/网站所需的缩放比例。ie用户/管理员测试可以在不同的线程组中完成,所以你可以同时模拟50个用户和2个管理员测试。或者你可以区分前端/后端,甚至页面/网站。

2)它不包括豆壳前处理和后处理时间。(但是,如果您使用豆壳采样器,则取决于代码)

3)听众很贵,所以越少越好。为了分离结果,您可以为每个采样器指定不同的标题,然后侦听器/图形可以根据需要对这些结果进行分组。您可以使用变量、属性和 ${__javaScript} 等将时间戳或索引作为采样器标题的一部分。这将导致或多或少的分组,具体取决于您选择的实现。

 类似资料:
  • 我们目前对应用程序的负载测试是使用jMeter完成的,到目前为止运行良好。我们有三个不同的线程组,可以通过命令行标志分别启用和配置。还可以从命令行配置线程数和目标吞吐量。 我正在寻找的是为每个线程组编程负载场景的可能性。通常jMeter启动所有线程,然后尝试达到其目标吞吐量速率。我想要实现的如下:我配置目标吞吐量速率为每秒500个请求,启动速率为20,增量为20,持续时间为5分钟。jMeter应该

  • 嗨,我是JMeter的新手,我知道如何使用JMeter执行负载测试。我试图弄清楚压力测试或容量测试是如何通过JMeter执行的。是不是通过逐渐增加JMeter中的线程数,我们可以确定何时出现性能问题,并获得阈值,在阈值以上运行测试。那它会做压力测试吗? 在如何执行压力测试和能力测试与Jeter工具混淆。

  • 我正在尝试使用Jeter针对SQLServer 2008 R2数据库设置基本负载测试。但是,当仅使用一个用户运行测试时,我收到错误。 响应消息:com。微软sqlserver。jdbc。SQLServerException:用户XXX登录失败。ClientConnectionId:。 这是我的JDBC连接配置数据库URL: jdbc: sqlserver://Serverame: 1433; Da

  • 我已经使用JMeter为我的web应用程序创建了一个记录的测试计划。我的web应用程序基本上为新客户和现有客户创建一个财务计划。我记录了为一个新客户创建财务计划所需的所有步骤。我不确定如何验证Jmeter是否真的运行了记录的步骤。我正在使用图形结果,并在记录计划的末尾检查吞吐量。 我不确定如何验证Jmeter是否实际运行了所有线程用户和记录的步骤。如有任何建议,将不胜感激。谢谢!

  • 我一直在寻找一个好的资源,可以说明如何创建可靠的负载/压力测试,但我一直找不到任何东西。 假设我想测试一个用于销售书籍的应用程序。 事实证明,销售额最高的一天是平安夜(12月24日),最高峰值为每分钟21笔销售。仔细观察这些结果,确定每秒有2笔销售的最大峰值,如下图所示。 考虑到上面提到的所有结果,这就是我目前为止所尝试的: 负载测试: > 线程数:2 爬坡周期:1 秒 循环计数:永久 持续时间:

  • 我想用Jmeter和bitbucket服务器负载测试下面的场景。 通过jmeter对bitbucket服务器负载测试git克隆和git更新操作。 最初将有20个用户向bitbucket服务器发出克隆请求,20个用户向bitbucket服务器发出git更新请求。 在jmeter中为测试配置了多个git repo和多个用户。 由于这些都是非浏览器操作(git克隆操作),我不知道如何提取准确的url击中