JMeter负载测试的可变输入?

时间:2012-02-21 14:21:36

标签: jmeter load-testing

我需要加载测试我开发的服务但是我需要将我发布到Web服务的数据有一些差异。

我已经设置了一个带有Http请求的Thread,我有我需要设置的参数,但我看不出如何将HTTP参数的内容从请求更改为请求。

理想情况下,我想提供一个数据项列表,让JMeter迭代它们。

3 个答案:

答案 0 :(得分:10)

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

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

  2. Jmeter功能:__CSVRead__StringFromFile

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

答案 1 :(得分:10)

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

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

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

这是一个强大的机制,但我发现它有点笨重和笨重。

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

答案 2 :(得分:0)

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

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