如何在Jmeter中测试两个HTTP请求而不影响单个请求的性能,以及如何仅记录一个请求的结果?

时间:2019-04-26 10:10:59

标签: jmeter

我正在使用称为'Update Person'的Jmeter对HTTP修补程序请求进行性能测试。这里的情况是更新人依赖于另一个称为“创建人”的请求。 Create Person将返回一个“ personId”作为响应,我将使用该ID发送更新请求。因此,我不能仅使用Update Person Request进行性能测试。这是我的Jmeter测试计划布局:

Jmeter Test Plan

当我运行测试计划时,两个请求的性能都比单独测试“创建人”要慢得多。我的问题是:

  • 测试两个http请求是否会影响性能?如果是,怎么办?
  • 当“创建人”请求在后台运行以获取personId时,是否有一种方法可以单独测试我的“更新人”请求?

谢谢。

1 个答案:

答案 0 :(得分:0)

1。您可以先单独运行创建人并在csv中获取所有必需的人ID。为此,您可以使用后处理器捕获和写入输出,或者直接从DB中获取(如果可以)。 2.然后,使用CSV数据集配置将创建的ID传递给来自CSV的第二个请求。

更新:-

使用正则表达式或任何后处理器来获取UserId,然后在同一采样器中使用BeanShell PostProcessor将输出写入csv:-

例如:-

CreatePerson = vars.get("Create_Person");
f = new FileOutputStream("C:/Users/XXX/Users.csv", true);
p = new PrintStream(f); 
this.interpreter.setOut(p); 
print(CreatePerson);
f.close();

这也可以通过Groovy来实现,以提高性能。我不是Groovy的专家,但是您可以在此站点上找到它。 Dmitri T已经提交了很多次。

然后,对于阅读来说非常容易。在采样器之前或顶部添加“ CSV Data Set Config”以获取数据。列名需要作为变量传递,例如$ {CreatePerson}

还有另一件事可以捕获数据而不是代码。使用Sample Variable。在user.properties(位于bin文件夹下)文件的末尾添加一行:-sample_variables=CreatePerson 然后,使用简单的数据编写器或查看结果侦听器将结果保存在csv中。它应该将数据写入csv。您可以从简单数据写入器/视图结果侦听器中取消选择所有不需要的数据。