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负载测试的变量输入?的主要内容,如果未能解决你的问题,请参考以下文章