当前位置: 首页 > article >正文

【性能测试】jmeter如何写入数据到文件,做持久化保存

在 JMeter 中,不仅可以从文件中读取数据,还可以将数据写入文件。这对于需要将从 API 或数据库获取的数据持久化存储的情况非常有用。下面详细说一下如何使用 JMeter 的 Beanshell 脚本来实现这一功能。

使用 Beanshell 脚本将数据写入文件

步骤 1: 准备测试计划
  1. 新建一个 JMeter 测试计划

    • 打开 JMeter,新建一个测试计划。
  2. 添加线程组

    • 右键点击测试计划,选择“添加” -> “Threads (Users)” -> “Thread Group”。
步骤 2: 定义变量
  1. 添加用户自定义变量

    • 在线程组中,右键点击,选择“添加” -> “配置元件” -> “User Defined Variables”。
  2. 定义变量

    • 在 User Defined Variables 中定义两个变量 v1v2,并分别赋值。

    例如:

    v1=value1
    v2=value2
    
步骤 3: 添加 Beanshell Sampler
  1. 添加 Beanshell Sampler

    • 在线程组中,右键点击,选择“添加” -> “Sampler” -> “Beanshell Sampler”。
  2. 编写 Beanshell 脚本

    • 在 Beanshell Sampler 中编写脚本,将变量写入文件。

    示例脚本如下:

    import org.apache.jmeter.services.FileServer;
    
    // 获取变量值
    String v1 = vars.get("v1");
    String v2 = vars.get("v2");
    
    // 文件路径
    String filepath = FileServer.getFileServer().getPropDefault("user.files.dir", "/tmp") + "/id_test.txt";
    
    // 将数据写入文件
    try {
        // 创建文件对象
        java.io.File file = new java.io.File(filepath);
        
        // 创建文件输出流
        java.io.FileWriter writer = new java.io.FileWriter(file, true); // 追加模式
    
        // 写入数据
        writer.write(v1 + "," + v2 + "\n"); // 可以根据需要修改分隔符
    
        // 关闭输出流
        writer.close();
    
        // 输出确认信息
        log.info("Data written to file: " + filepath);
    } catch (Exception e) {
        log.error("Error writing to file: " + filepath, e);
    }
    
    • vars.get() 用于获取变量值。
    • FileServer.getFileServer().getPropDefault("user.files.dir", "/tmp") 用于获取默认的文件路径,可以根据需要修改。
    • java.io.FileWriter 用于创建文件输出流,并将数据写入文件。
步骤 4: 添加监听器
  1. 添加 Debug Sampler

    • 在线程组中,右键点击,选择“添加” -> “Sampler” -> “Debug Sampler”。
  2. 添加结果树

    • 在线程组中,右键点击,选择“添加” -> “Listener” -> “View Results Tree”。
步骤 5: 运行测试计划并查看结果
  1. 运行测试计划

    • 保存测试计划并运行。
  2. 查看结果

    • 查看 Debug Sampler 的输出,确认变量获取情况。
    • 查看结果树,确认 Beanshell Sampler 的执行情况。
  3. 检查文件写入情况

    • 在本地文件系统中查看文件 id_test.txt,确认数据是否已正确写入。

实践过程

Beanshell Sampler 配置截图

Debug Sampler 配置截图

运行结果

当你运行测试计划时,JMeter 会将变量 v1v2 的值写入文件 id_test.txt。你可以通过结果树查看 Beanshell Sampler 的执行情况,并在本地文件系统中检查文件写入情况。

写入 CSV 格式

如果你想将数据写入 CSV 文件,只需稍作修改即可:

// 将数据写入文件
try {
    // 创建文件对象
    java.io.File file = new java.io.File(filepath);

    // 创建文件输出流
    java.io.FileWriter writer = new java.io.FileWriter(file, true); // 追加模式

    // 写入数据
    writer.write(v1 + "," + v2 + "\n"); // 使用逗号作为分隔符

    // 关闭输出流
    writer.close();

    // 输出确认信息
    log.info("Data written to file: " + filepath);
} catch (Exception e) {
    log.error("Error writing to file: " + filepath, e);
}

总结

使用 JMeter 的 Beanshell 脚本来将数据写入文件。这种方式不仅适用于简单的文本文件,也支持 CSV 格式。通过这种方式,你可以将从 API 或数据库获取的数据持久化存储,方便后续分析和处理。

文章原创首发于微信公众号 软件测试微课堂,更多内容欢迎关注微信公众号查看


http://www.kler.cn/a/376293.html

相关文章:

  • wx.setNavigationBarColor动态设置导航栏颜色无效(亲测有效)
  • CSS3简介(一)
  • parted 磁盘分区
  • 【小白学机器学习28】 统计学脉络+ 总体+ 随机抽样方法
  • 补齐:相交链表:扣160
  • 【Coroutines】Full Understanding of Kotlinx.Corutines Framework
  • linux之网络子系统-用户层接收数据包之多路复用方案(epoll)
  • jenkins 构建报错 mvn: command not found
  • 高压线路覆冰厚度测量,输电线路微波覆冰监测装置守护电网安全
  • 【Python系列】poetry安装与使用
  • WPF+MVVM案例实战(十八)- 自定义字体图标按钮的封装与实现(ABD类)
  • arcgis坐标系问题
  • 虚拟机指定固定ip地址
  • 自然语言处理(文本预处理基础)
  • Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
  • Go语言的使用
  • 高级SQL技巧详解与实例
  • 华为机试HJ17 坐标移动
  • 《手写Spring渐进式源码实践》实践笔记(第十四章 通过注解自动注入属性信息)
  • JDK动态代理为什么只能代理有接口的类?
  • 【原创分享】生产环境JAVA中间件性能优化调优要点和案例分析
  • 面向过程与面向对象
  • nginx-proxy-manager实现反向代理+自动化证书(实战)
  • 前端项目【本科期间】
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-27
  • uniapp 小程序 H5 app 价格计算 避免精度丢失