jmeter - 如何使用beanshell在jmeter的excel/csv文件中的特定单元格写入数据?
问题描述
我正在尝试使用 beanshell 将数据写入 excel 或 CSV 文件中。但我能够在 excel 表中写入数据,但无法在 CSV 文件的特定单元格中写入数据。
下面是代码。
var response = prev.getResponseDataAsString();
f = new FileOutputStream("C:/Users/adityak/Desktop/K/app.csv", true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print(response);
f.close();
任何帮助,将不胜感激。
解决方案
- CSV 文件没有“单元格”,它是带有分隔符的纯文本文件,主要是逗号,因为 CSV 代表逗号分隔值
- 从JMeter 3.1 开始,建议使用 Groovy 进行脚本编写
假设以上所有:
- 切换到JSR223 测试元素和Groovy语言
- 使用File.readLines()函数读取现有文件
- 通过String.split()函数使用分隔符拆分它
- 用新的值替换那里的值。
例如,如果您有如下文件:
1,2,3
4,5,6
7,8,9
并希望5
用hello
相关的 Groovy 代码替换如下:
def csvFile = new File('/home/dtikhanski/Desktop/test.csv')
def lines = csvFile.readLines()
def secondLine = lines.get(1)
def entries = secondLine.split(",")
entries[1] = 'hello'
secondLine = entries.join(',')
lines.set(1, secondLine)
csvFile.withWriter{ out ->
lines.each {out.println it}
}
演示:
推荐阅读
- varnish - 一种从 Varnish 中快速清除大量 URL 列表的方法
- javascript - 如何使图表仅显示chartjs中总标签中的一定数量的标签?
- wpf - WrapPanel 儿童订单
- android - android menuItem文本更改
- java - 如何在 Java 中使用 ThreadLocalRandom.current().ints(int,int) 来查找与特定表达式匹配的特定数字?
- sequence - ANTLR:用于循环的“for”关键字与消息中使用的“for”冲突
- postgresql - 为什么在输入结束时出现错误语法错误
- ios - Swift MKMapView.setRegion 在 MKLocalSearch.Request 之后不起作用
- swift - 如何使用 UINavigationController 的 searchController 属性将 UISearchController 合并到 SwiftUI NavigationView 中?
- firebase - Flutter:如何实现回调