如何同时存储请求响应数据

时间:2019-01-11 09:42:02

标签: jmeter-5.0

我正在设置一个依次运行该线程组的测试计划:

  1. 使用10个线程,500个循环执行请求A。
  2. 使用10个线程,500个循环以及步骤1的输出执行请求B。

我的问题是这样的: 在每个请求A上,我都会收到一个ID,该ID需要传递给请求B。 存储所有ID,然后在步骤2中使用它们的最佳方法是什么?

这时,我正在从响应中“ JSonExtracting”每个ID,并将其存储在CSV文件中以传递到步骤2。 问题在于胎面的并发性。有时我在文件或连接的字符串上出现空白点,这将在步骤2上产生错误。 我无法将其存储到数组变量中以用于步骤2。

要将ID写入文件,我正在我的threadGroup内的BeanShell侦听器上使用此代码。我坚信这不是最正确的方法。


    f = new FileOutputStream("${DocumentIdsFile}", true);
    p = new PrintStream(f); 
    p.println("${DocumentId}");

    p.close();
    f.close();

    log.info("Id: ${Id}");

我该如何解决并发问题?

1 个答案:

答案 0 :(得分:0)

如果您在请求A处收到一个ID,只需在请求B中使用它,并通过变量传递给它即可:

  1. 使用Post-Processors之一将请求A 响应中的ID值解析为变量值,例如"ID"
  2. 在您的请求B 中将其值用作参数:

    GET https://myserver.com/myapp/getSomethig/${ID}