首页 > 编程知识 正文

JMeter循环提取值写入CSV

时间:2023-11-19 15:26:14 阅读:292779 作者:UTUD

本文将介绍如何使用JMeter进行循环提取值并将其写入CSV文件。JMeter是一款功能强大的性能测试工具,它可以模拟多种场景进行测试。对于某些需要循环执行的操作,我们可能需要从响应结果中提取一些值,比如登录成功后返回的token或者需要用到的一些参数值。这时候,我们就可以使用JMeter的正则表达式提取器或CSS选择器提取器提取这些值,然后将它们写入CSV文件中,方便后续使用。

一、使用正则表达式提取器提取值

使用正则表达式提取器,需要先进行以下几个步骤:

1、添加HTTP请求

HTTP请求
    方法:GET
    服务器名称或IP:www.test.com

2、添加正则表达式提取器

正则表达式提取器
    变量名称:token
    正则表达式:token=(.*?)&
    模板:$1$
    匹配范围:响应头或响应数据

3、添加循环控制器

循环控制器
    循环计数器:10

4、添加Beanshell Sampler

Beanshell Sampler
    脚本内容:import org.apache.commons.io.FileUtils;
             FileUtils.writeStringToFile(new File("path/to/file.csv"), vars.get("token") + "n", true);
    对应的变量名:token

以上步骤中,第一个步骤是添加HTTP请求,模拟需要进行操作的场景。第二个步骤中,我们定义了一个正则表达式将响应结果中的token值提取出来,并将其赋值给一个名为“token”的变量。在第三个步骤中,我们添加了一个循环控制器,使得执行次数为10次。最后在第四个步骤中,我们使用Beanshell脚本将token值写入CSV文件中。

二、使用CSS选择器提取器提取值

使用CSS选择器提取器,需要先进行以下几个步骤:

1、添加HTTP请求

HTTP请求
    方法:GET
    服务器名称或IP:www.test.com

2、添加CSS选择器提取器

CSS选择器提取器
    变量名称:value
    CSS选择器:div.content
    属性:text
    匹配序号:1
    默认值:

3、添加循环控制器

循环控制器
    循环计数器:10

4、添加Beanshell Sampler

Beanshell Sampler
    脚本内容:import org.apache.commons.io.FileUtils;
             FileUtils.writeStringToFile(new File("path/to/file.csv"), vars.get("value") + "n", true);
    对应的变量名:value

以上步骤中,第一步和第三步与正则表达式提取器相同。在第二步中,我们定义了一个CSS选择器将响应结果中的div.content的值提取出来,并将其赋值给一个名为“value”的变量。在最后一步中,我们使用Beanshell脚本将value值写入CSV文件中。

三、问题解决

在使用JMeter循环提取值写入CSV的过程中,可能会出现以下一些问题:

1、在循环控制器中,如何使用变量进行控制?

可以使用JMeter内置的变量计数器来进行控制。在循环控制器中,将循环计数器设置为${__counter(FALSE,)},可以动态的生成数字序列,从而实现使用变量进行控制的功能。

2、如何解决多个值的提取?

如果需要提取多个值,可以使用多个正则表达式或CSS选择器进行提取,并将其分别赋值给不同的变量,然后在Beanshell脚本中将这些变量值写入同一个CSV文件中。

3、如何处理特殊字符?

对于一些特殊字符,比如引号、换行符等,可以使用Beanshell中的字符串转换函数进行转换,从而确保写入CSV文件的内容正确。

通过本文的介绍,相信大家对JMeter循环提取值写入CSV的实现方式有了更深入的了解。希望能够帮助大家提高性能测试的效率。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。