1.概述

在本教程中,让我们探索两种提取数据的方法Apache Jmeter.并将其写入外部文件。

2.设置基本的JMeter脚本

我们现在首先创建一个基本的JMeter脚本。让我们创造一个线程组使用单个线程(创建时是默认的线程组):

在这内线程组,让我们现在创造一个http采样器

创建Http采样器

让我们设置我们的http采样器调用运行的APIlocalhost。我们可以通过简单地定义API来开始休息控制器

@RestController公共类RetrieveUuidController {@getmapping(“/ api / uuid”)公共响应uuid(){返回新响应(格式(“测试消息...%s。”,uuid.randomuuId())));}}

此外,让我们定义响应我们的控制器返回的实例如上所述:

public class Response {private即时时间戳;私人UUID UUID;私人字符串消息;// getters, setters和constructor省略}

现在让我们使用它来测试JMeter脚本。默认情况下,这将在端口8080上运行。如果我们不能使用端口8080,那么我们将需要更新端口号码田野http采样器因此

http采样器请求应该是这样的:

JMeter HTTP采样器详细信息

3.使用侦听器编写提取的输出

接下来,让我们使用类型的侦听器保存对文件的响应要提取要文件的数据:

JMeter写侦听器

使用此侦听器是方便的,但在我们可以提取到文件中的内容中不允许更大。对于我们的情况,这将生成一个json文件,该文件保存到当前正在运行的JMeter(尽管路径可以配置在文件名前缀场地)。

4.使用提取的输出使用后处理器

另一种方式我们可以通过创建一个文件来提取到文件的数据豆壳后处理器豆壳是一个非常灵活的脚本处理器,允许我们使用Java代码编写我们的脚本,也可以使用JMeter提供的某些内置变量

豆壳可用于各种不同的用例。在这种情况下,让我们创建一个豆壳后处理器并添加脚本以帮助我们将某些数据提取到文件:

JMeter Beanshell后处理器

现在让我们将下面的脚本添加到脚本部分:

FileWriter FWriter = New FileWriter(“/  /result.txt”,true);bufferedwriter buff =新bufferedwriter(fwriter);buff.write(“数据”);buff.close();fwriter.close();

我们现在有一个简单的脚本,它将输出字符串数据到一个名为结果的文件。这里的一个重要点是以下的第二个参数文件迹构造函数。这必须设置为真的所以我们的豆壳将附加到文件而不是覆盖它。在JMeter中使用多个线程时,这非常重要。

接下来,我们希望提取对我们用例更有意义的东西。让我们使用CTX.变量,由JMeter提供。这将允许我们访问运行HTTP请求的单个线程所持有的上下文。

CTX.,让我们获取响应代码,响应标题和响应主体,并将其提取到我们的文件:

buff.write(“响应代码:”+ ctx.getpreviousresult()。getResponseCode());buff.write(system.getproperty(“line.separator”));buff.write(“响应标题:”+ ctx.getpreviousresult()。getResponseHeaders());buff.write(system.getproperty(“line.separator”));buff.write(“响应主体:”+新字符串(ctx.getpreviousresult()。getresponsedata()));

如果我们想收集特定的现场数据并将其写入我们的文件,我们可以使用vars.多变的。这是我们可以使用的地图后处理器存储和检索字符串数据。

对于这个更复杂的例子,让我们创造另一个后处理器在我们的文件提取器之前。这将通过HTTP请求通过JSON响应进行搜索:

jmeter json exctractor

此提取器将创建一个调用变量消息。剩下的所有这些都是在我们的文件提取器中引用此变量以将其输出到我们的文件:

buff.write(“更复杂的提取:”+ vars.get(“消息”));

注意:我们可以将这种方法与其他后处理器一起使用,例如“正则表达式提取器”,以以更具定制的方式收集信息。

结论

在本教程中,我们涵盖了如何使用BeanShell后处理器和写入侦听器将数据从JMett中提取到外部文件。我们使用的JMeter脚本和Spring Rest应用程序可以找到在github上。

通用底部

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程
对这篇文章的评论关闭!