我记录了一个上传 excel 的场景,在下一个后续请求中,excel 中的这些记录将作为参数传递。
但是假设我需要更改 excel ,该请求将如何采用新值?
由于值数量众多,参数化似乎不是答案。
请帮忙。
如果需要从 Excel 文件中提取一些值并将其添加为 HTTP 请求参数,可以使用以下方法。
- 下载 Apache Tika 二进制文件(tika-app-*.jar)并将其放入 JMeter 的/lib 文件夹中。如果 JMeter 正在运行,请重新启动它
- 添加 Beanshell 预处理器作为请求的子处理器,您要根据 Excel 文件值修改该参数
-
在"脚本"中是开发代码,它读取Excel文件并从中添加值作为HTTP请求参数。下面的示例代码从 testfile.xlsx 文件的 A1 和 B1 单元格中提取值,并将它们作为"foo"和"bar"HTTP 请求参数发送。
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; FileInputStream excelFile = new FileInputStream(new File("/path/to/excel/testfile.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(excelFile); XSSFSheet sheet = workbook.getSheetAt(0); XSSFRow row = sheet.getRow(0); Cell a1 = row.getCell(0); String a1Value = a1.getStringCellValue(); Cell a2 = row.getCell(1); String a2Value = a2.getStringCellValue(); excelFile.close(); sampler.addArgument("foo",a1Value); sampler.addArgument("bar",a2Value);
引用:
- Apache POI User API (HSSF 和 XSSF)
- 如何使用 POI 从 Excel 文件中读取?
- 如何使用BeanShell:JMeter最喜欢的内置组件