JMeter负载测试的变量输入?

Posted

技术标签:

【中文标题】JMeter负载测试的变量输入?【英文标题】:Variable input for JMeter Load testing? 【发布时间】:2012-02-21 14:21:35 【问题描述】:

我需要对我开发的服务进行负载测试,但我需要发布到 Web 服务的数据有一些差异。

我已经使用 Http 请求设置了 Thread,并且我已经设置了需要设置的参数,但是我看不到如何将 HTTP 参数的内容从请求更改为请求。

理想情况下,我想输入数据项列表并让 JMeter 遍历它们。

【问题讨论】:

【参考方案1】:

使用您的测试参数列表准备一种 csv 文件,并使用它来参数化您的测试采样器,至少使用以下内容:

    CSV Data Set Config 解释示例here,简单示例here。

    Jmeter 函数:__CSVRead、__StringFromFile。

    Variables From CSV 采样器来自jmeter-plugins。

【讨论】:

【参考方案2】:

一种方法是准备一个包含您需要的所有值的 CSV 文件。之后有多种不同的方法可以使用它。 Alies Belik 的回答列出了其中的大部分。然而,CSV 方法的缺点是您需要生成值列表,并且在某些测试中,您不能在不清理/重新初始化后端数据库的情况下简单地重用它。

另一个选项是生成随机值的函数,通常与“用户定义变量”控制器配对。

__Random 用于生成给定范围内的数字。 __RandomString 用于生成给定长度并包含一组字符的随机字符串。

这是一个强大的机制,但我觉得它有点麻烦和笨重。

对于简单的变量,例如生成用户名/密码/电子邮件组合,我更喜欢并且发现使用 Random Variable 配置元素更容易。它从 Jmeter 2.3.3 开始可用。您将它添加到您的线程组并指定一个变量来存储每个线程的随机值。您可以稍后在 HTTP 采样器中,在请求的 GET/POST 参数中引用此变量,方法是将参数的值指定为 testuser-$rnd 用于用户名,testpass-$rnd 用于密码。每个线程将获得不同的值 $rnd,因此您获得重复值(用户)的可能性很小(但仍有机会)。

【讨论】:

对不起,由于我的评分低,我不得不从我的答案中删除一些链接。我试图留下最重要的。【参考方案3】:

除了@zorlem answer中提到的功能,您还可以使用:

__UUID 用于生成伪随机类型 4 通用唯一标识符,如果您需要生成随机且唯一的字符串。

【讨论】:

以上是关于JMeter负载测试的变量输入?的主要内容,如果未能解决你的问题,请参考以下文章

jmeter负载测试从数组变量中获取动态值

Jmeter 负载测试计算

性能测试——JMeter脚本录制和HTTP负载测试

如何使用JMeter进行性能和负载测试

jmeter 之负载测试

如何使用 JMeter 对 Websocket 进行负载测试?