首页 > 其他分享 >Jmeter实现本地文件的读写操作-将响应结果写入到本地Excel中

Jmeter实现本地文件的读写操作-将响应结果写入到本地Excel中

时间:2024-07-19 22:56:08浏览次数:13  
标签:文件 log 读写操作 创建 单元格 Excel 目录 本地 写入

一、环境准备
1、引入操作EXcel文件的包

2、安装JMeter:确保已安装JMeter。
Java环境:确保系统中已安装JDK,并配置了JAVA_HOME环境变量。

二、脚本准备

1. 配置JMeter测试计划

创建线程组

  1. 添加线程组
    • 右键点击“测试计划 (Test Plan)”,选择“添加 (Add)” -> “线程 (Threads (Users))” -> “线程组 (Thread Group)”。

添加HTTP请求

  1. 添加HTTP请求采样器

    • 右键点击“线程组 (Thread Group)”,选择“添加 (Add)” -> “取样器 (Sampler)” -> “HTTP请求 (HTTP Request)”。
  2. 配置HTTP请求

    • 设置请求的URL、方法和其他参数。

添加JSR223后置处理器

  1. 添加JSR223后置处理器

    • 右键点击“HTTP请求 (HTTP Request)”,选择“添加 (Add)” -> “后置处理器 (Post Processors)” -> “JSR223 PostProcessor”。
  2. 配置JSR223后置处理器

    • 语言选择Groovy。
    • 将提供的代码粘贴到脚本区域。

变量配置

  • DIR_PATHFILE_NAME变量:
    • 确保在测试计划中通过用户定义的变量或前置处理器设置DIR_PATHFILE_NAME变量。


`
import groovy.json.JsonSlurper
import org.apache.poi.hssf.usermodel.HSSFWorkbook
import org.apache.poi.ss.usermodel.*
import java.io.FileOutputStream
import java.io.File
import java.io.FileInputStream

// 解析 JSON 响应
def response = prev.getResponseDataAsString() // 获取响应数据
def jsonSlurper = new JsonSlurper() // 创建 JsonSlurper 实例
def jsonResponse = jsonSlurper.parseText(response) // 解析 JSON 响应

// 获取 "future" 数据
def futureData = jsonResponse.result.future // 获取 JSON 响应中的 "future" 数组

// 获取参数化的目录路径和文件名
String dirPath = vars.get("DIR_PATH") // 获取目录路径
String fileName = vars.get("FILE_NAME") // 获取文件名
String filePath = dirPath + "\" + fileName // 定义文件路径
File dir = new File(dirPath) // 创建 File 对象表示目录

// 检查并创建目录
if (!dir.exists()) { // 如果目录不存在
if (dir.mkdirs()) { // 创建目录
log.info("目录已创建: " + dirPath) // 记录日志,目录创建成功
} else {
log.error("创建目录失败: " + dirPath) // 记录日志,目录创建失败
}
} else {
log.info("目录已存在: " + dirPath) // 记录日志,目录已存在
}

File file = new File(filePath) // 创建 File 对象表示文件

// 创建或打开工作簿和工作表
Workbook workbook // 定义工作簿对象
Sheet sheet // 定义工作表对象
if (file.exists()) { // 如果文件存在
FileInputStream fis = new FileInputStream(file) // 创建文件输入流
workbook = new HSSFWorkbook(fis) // 打开现有工作簿
sheet = workbook.getSheetAt(0) // 获取第一个工作表
fis.close() // 关闭文件输入流
log.info("打开现有文件: " + filePath) // 记录日志,文件打开成功
} else {
workbook = new HSSFWorkbook() // 创建新的工作簿
sheet = workbook.createSheet("Weather Data") // 创建新的工作表
// 写入标题行
Row headerRow = sheet.createRow(0) // 创建标题行
Cell headerCell1 = headerRow.createCell(0) // 创建第一列单元格
headerCell1.setCellValue("Date") // 设置第一列标题
Cell headerCell2 = headerRow.createCell(1) // 创建第二列单元格
headerCell2.setCellValue("Temperature") // 设置第二列标题
Cell headerCell3 = headerRow.createCell(2) // 创建第三列单元格
headerCell3.setCellValue("Weather") // 设置第三列标题
log.info("创建新文件并写入标题行: " + filePath) // 记录日志,文件创建成功并写入标题行
}

// 获取当前工作表的行数
int rowCount = sheet.getLastRowNum() // 获取当前工作表的最后一行行号

// 遍历 "future" 数据并写入工作表
futureData.each { dayData -> // 遍历 future 数据
String date = dayData.date // 获取日期
String temperature = dayData.temperature // 获取温度
String weather = dayData.weather // 获取天气
Row row = sheet.createRow(++rowCount) // 创建新行
Cell cell1 = row.createCell(0) // 创建第一列单元格
cell1.setCellValue(date) // 设置第一列单元格值
Cell cell2 = row.createCell(1) // 创建第二列单元格
cell2.setCellValue(temperature) // 设置第二列单元格值
Cell cell3 = row.createCell(2) // 创建第三列单元格
cell3.setCellValue(weather) // 设置第三列单元格值
log.info("写入数据: 日期=" + date + ", 温度=" + temperature + ", 天气=" + weather) // 记录日志,写入数据
}

// 将工作簿写入文件
try {
FileOutputStream fileOut = new FileOutputStream(filePath) // 创建文件输出流
workbook.write(fileOut) // 将工作簿写入文件
fileOut.close() // 关闭文件输出流
log.info("天气数据已写入文件: " + filePath) // 记录日志,文件写入成功
} catch (Exception e) {
log.error("写入文件时出错: " + e.getMessage()) // 记录日志,文件写入错误
} finally {
workbook.close() // 关闭工作簿
}

`

标签:文件,log,读写操作,创建,单元格,Excel,目录,本地,写入
From: https://www.cnblogs.com/ShaoqiHe/p/18305565

相关文章

  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • MaxKB添加本地ollama大模型遇到API域名无效的问题
    MaxKB添加本地ollama大模型遇到API域名无效的问题前期的安装过程下载ollama,直接安装添加环境变量,使得下载模型到指定文件夹docker部署MaxKB打开添加模型API域名无效解决办法添加环境变量给ollama在“系统变量”或“用户变量”中点击“新建…”。输入变量名OLLAMA_......
  • WebKit 的 Web SQL 数据库:现代浏览器的本地存储解决方案
    WebKit的WebSQL数据库:现代浏览器的本地存储解决方案随着Web应用的不断发展,对本地存储的需求也日益增加。WebKit作为许多现代浏览器的核心引擎,提供了一种强大的本地存储解决方案:WebSQL数据库。本文将详细探讨WebSQL数据库的工作原理、支持情况以及如何利用它进行数......
  • EXCEL:按有序列表对数组进行排序,无需自定义列表
    我有一张邮政编码表,其中包含发送到每个邮政编码的货件数量。我想按特定顺序按邮政编码对这个数组进行排序,我将其放在第二个列表中。我不想按客户数量或邮政编码的数字顺序排序,而是按这个专门排名的列表排序。我无法使用自定义排序功能,因为我的列表对于此功能来说太长了。......
  • 系统运营支持-如何快速协助处理excel里的数据?来吧,教你一招
    今天,一个销售MM发来一个excel文件,里面是客户的结算数据。需要我们技术协助,为excel里每一行的个人银行卡号,匹配出来所对应的银行机构编码和银行名称。下方是excel文件里其中一部分数据的截图。预期结果是:  这要依托我们系统里的卡bin数据来完成。查询卡bin的sql是:select*......
  • 【6!使用本地大模型调用代码,根本就是一场骗局!】
    通过大模型调用其他工具到底可不可行?ChatGPT或许能轻松搞定一切,但同样的需求落在本地大模型上,恐怕就要打个问号了。法国开发工程师EmilienLancelot尝试了多款号称具备工具调用功能的agent框架,来看看本地大模型到底能不能完成任务,但结果就像他总结的“一无所获”。是......
  • PlantUML-UML 绘图工具安装、Graphviz安装、本地使用/在线使用、语法、图示案例
    文章目录前言本地安装vscode安装插件下载安装Graphviz配置Graphviz环境变量测试在线使用演示PlantUML语法总结活动图(新语法)时序图类图用例图其他图更多相关内容可查看前言本篇提供两种使用方式分别为在线使用地址1:https://www.planttext.com/在线使用地址2vsco......