我正在使用称为'Update Person'的Jmeter对HTTP修补程序请求进行性能测试。这里的情况是更新人依赖于另一个称为“创建人”的请求。 Create Person将返回一个“ personId”作为响应,我将使用该ID发送更新请求。因此,我不能仅使用Update Person Request进行性能测试。这是我的Jmeter测试计划布局:
当我运行测试计划时,两个请求的性能都比单独测试“创建人”要慢得多。我的问题是:
谢谢。
答案 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。您可以从简单数据写入器/视图结果侦听器中取消选择所有不需要的数据。