JMeter负载测试的可变输入?

Oma*_*eji 12 jmeter load-testing

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

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

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

Ali*_*lik 10

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

  1. CSV数据集配置
    解释例子在这里,简单的例子在这里.

  2. Jmeter函数:__ CSVRead,__ StringFromFile.

  3. 变量来自jmeter-plugins的CSV采样器.


zor*_*lem 10

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

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

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

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

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