每个线程的相同随机数和字符串

时间:2014-01-27 20:43:54

标签: jmeter

我需要为HTTP请求的每个线程生成两次相同的JSON数据。我在JMeter中遇到问题。 我的结构是:

Test Plan
   - HTTP Header Manager
   - Thread Group 1 users, 5 loop
   - Random Variable, 
   - HTTP Request

我尝试将Per Thread User的组合设置为true并使用种子进行随机功能,但我无法达到我想要的效果。它继续为每个循环生成新的数字/字符串。

基本上对于每个用户,我想要完全相同的JSON请求数据。

2 个答案:

答案 0 :(得分:0)

我认为你的案件有三个决定:

Test Plan
   - HTTP Header Manager
   - Thread Group 1 users, 5 loop
   - User Defined Variables, (Name:varName; Value:${__Random(1,100)})
   - HTTP Request
  • 在HTTP请求之前使用Loop Controller(循环计数= 5)(而不是在线程组中循环= 5)

答案 1 :(得分:0)

我可以提出另一种解决方案,在我看来,这种解决方案冗长而笨拙,但没有其他想法。

使用BSF(或BeanShell)PreProcessor创建文件,并将随机变量的值写入文件。然后在每个请求之前读取文件。在下一个例子中,我使用了Groovy和BSF PreProcessor。

import java.util.Random  

def out= new File('File1.txt') // create file if it is not exists 
if(!out.exists()) 
{
  out.createNewFile()
  Random rand = new Random()  
  int max = 10  
  def a = rand.nextInt(max+1)  
  out << a // write text to file 
} 
//then read value of generated variable 
String fileContents = new File('File1.txt').text
//then put your variable into User defined Variable that I named HELLO 
vars.putObject("HELLO",fileContents)

在需要的请求中使用$ {HELLO}