首页 文章

JMeter:负载测试REST API有什么好的测试结构?

提问于
浏览
3

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

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

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

3)在每个简单控制器中放置一个监听器是一个好主意吗?我正在使用JMeter插件进行报告 . 我想查看每个 endpoints 的报告 .

任何或所有问题的答案将不胜感激:)

我正在使用类似下面的结构在JMeter中创建测试计划 .
enter image description here

1 回答

  • 0

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

    线程组最好用作用户组,但可以用来以任何方式分离测试 . 考虑不同页面/网站所需的扩展 . 即用户/管理员测试可以在不同的线程组中完成,因此您可以模拟50个用户和2个管理员并发测试 . 或者您可以区分前端/后端甚至页面/站点 .

    2)它不包括beanhell预处理和后处理时间 . (但是如果使用beanshell采样器,则取决于代码)

    3)听众很贵,所以越少越好 . 要分离结果,您可以为每个采样器提供不同的 Headers ,然后监听器/图表可以根据需要对这些 Headers 进行分组 . 您可以使用变量,属性和$ 等将时间戳或索引作为采样器 Headers 的一部分包括在内 . 这将导致或多或少的分组,具体取决于您选择的实现 .

相关问题