Jmeter读取Excel,BeanShell取样器调用rt.jar和jxl.jar
将rt.jar和jxl.jar,放在\apache-jmeter-5.0\lib\ext下面
import java.io.*;
import java.util.ArrayList;
import java.util.List; import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
String path = "C:/123.xls";
InputStream instream = new FileInputStream(path);
Workbook readwb = null;
Cell cell= null;
readwb = Workbook.getWorkbook(instream);
// 获取第一张Sheet表,Sheet的下标是从0开始
Sheet readsheet = readwb.getSheet(0);
// 获取Sheet表中所包含的总列数
int rsColumns = readsheet.getColumns();
// 获取Sheet表中所包含的总行数
int rsRows = readsheet.getRows(); // 获取指定单元格的对象引用
List list = new ArrayList();
//线程数(按线程数取行数)
rsRows = ${__threadNum}; print("线程数=========== :"+${__threadNum});
for (int i = 0; i < rsRows; i++) //行
{
for (int j = 0; j < rsColumns; j++) //列
{
cell = readsheet.getCell(j,i);
//list存第一行名字
if( i== 0){
list.add(cell.getContents());
continue;
}
//put变量存第二行以后的值(线程3以后会反复替换以前put的值)
vars.put(list.get(j),cell.getContents());
print(vars.get(list.get(j)));
} }
//log.info("isEnc:"+vars.get("name"));//调用jmeter内置log对象,日志会打印到jmeter.log中
//System.out.println(vars.get(list.get(j)));//打印
//print(vars.get(list.get(j)));//打印
//return vars.get(list.get(j));//返回
//print((vars.get("表头"))
由于list无法传递,则每个线程都需要将第一行表头读取存在list里面;
但线程3以后,会反复读取Excel第二行(前面行)的数据,进行vars.put()替换值操作。
优化以上问题
import java.io.*;
import java.util.ArrayList;
import java.util.List; import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
String path = "C:/123.xls";
InputStream instream = new FileInputStream(path);
Workbook readwb = null;
Cell cell= null;
readwb = Workbook.getWorkbook(instream);
// 获取第一张Sheet表,Sheet的下标是从0开始
Sheet readsheet = readwb.getSheet(0);
// 获取Sheet表中所包含的总列数
int rsColumns = readsheet.getColumns();
// 获取Sheet表中所包含的总行数
int rsRows = readsheet.getRows(); // 获取指定单元格的对象引用
List list = new ArrayList();
//线程数(按线程数取行数)
rsRows = ${__threadNum};
//该线程只读第一行和应该读的最后一行
int[] myRows = {0,rsRows-1}; print("线程数=========== :"+${__threadNum});
for (int i = 0; i < myRows.length; i++) //行
{
for (int j = 0; j < rsColumns; j++) //列
{
cell = readsheet.getCell(j, myRows[i]);
//list存第一行名字
if(myRows[i] == 0){
list.add(cell.getContents());
continue;
}
//put变量只存最后一行的值
vars.put(list.get(j),cell.getContents());
print(vars.get(list.get(j)));
} }
其实以上两种都不影响最后需要的结果,只是影响效率
在接口调用时直接 ${"表头"}
Jmeter读取Excel,BeanShell取样器调用rt.jar和jxl.jar的更多相关文章
- jmeter 读取excel数据
jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...
- Jmeter读取excel表中用例数据实现接口压测
传统的接口测试,都是在接口中手动输入不同用例准备的多种场景参数数据,一遍一遍的输入来执行多个不同的用例,但是现在利用excel表格准备各种类型的数据,使用Jmeter中Jmeter CSV Data ...
- Excel文件按照指定模板导入数据(用jxl.jar包)
本文中的方法只适合Excel2003,要读取Excel2007最好使用poi.jar,据说poi.jar还在更新,jxl.jar已经不更新了,处理Excel文件的读写问题最好还是学习poi.j ...
- Java读取Excel指定列的数据详细教程和注意事项
本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...
- Jmeter中通过BeanShell获取当前时间
第一步编写需要的java类: 第二步:将编写好的java类打包成jar包 第三步:将jar包放到\apache-jmeter-2.13\lib\ext下面 第四步:在Jmeter中通过BeanShel ...
- 关于jmeter读取CSV文件的详细设置
jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...
- java 读取excel内容转为JSONArray
需要引入的JAR <!--*.xls--> <dependency> <groupId>net.sourceforge.jexcelapi</grou ...
- postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库
最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...
- java读取excel文件数据
package com.smp.server.Ctrl; import java.io.File;import java.io.FileInputStream;import java.io.FileN ...
随机推荐
- Tomcat异常:server Tomcat v9.09 Server at localhost failed to start
详细报错: 首先不要慌张,这不是Tomcat引发的问题.而是你自己代码错误导致的问题(小编遇到的是配置servlet-mapping时,url-pattern中配置不合法) 然后,检查控制台打印信息, ...
- iOS ----------怎么修改xcode默认打开方式
很简单就能解决:选中文件,右键,显示简介,打开方式,选择8.2.然后打钩.
- mysql左连接
举个例子说明: select d.id, d.uid,d.username,d.dateline, d.message,d.replynum, c.picid, c.filename from doi ...
- OkHttpHelper使用
源码:https://gitee.com/xcode_xiao/OkHttpHelper 网络请求缓存的支持,OKHttp Retrofit (get,post,一切,文字,图片,语音,文件,自定义缓 ...
- Node.js学习记录(一)--安装设置篇
安装Node window window上安装node可选择以下两种方式: 方式一:直接进入官网下载安装 进入node.js官网点击windows,选择.msi后缀的,根据自己的电脑选择对应的64位或 ...
- JavaScript中,JSON格式的字符串与JSON格式的对象相互转化
前言:JSON是一个独立于任何语言的数据格式,因此,严格来说,没有“JSON对象”和“JSON字符串”这个说法(然而”菜鸟教程“和”W3school“使用了“JSON对象”和“JSON字符串”这个说法 ...
- linux文件统计命令和目录统计命令
1.统计本目录下除`./apps/myapp/migrations`的所有py文件 wc -l `find -path . -o -name '*py' ! -path "./apps/my ...
- C#-泛型类型(十六)
概述 泛型类和泛型方法兼具可重用性.类型安全性和效率,这是非泛型类和非泛型方法无法实现的 泛型通常与集合以及作用于集合的方法一起使用 泛型所属命名空间:System.Collections.Gener ...
- Linux系统修改日期时间
linux修改时间 服务器时间与网络时间不符: 一.手动修改 1. date命令:查看当前时间 2. date -s 时分秒 :修改时间 还需要把日期改过来 3. date -s 完整日期时间 ...
- strlen strcat strcpy strcmp 自己实现
strlen strcat strcpy strcmp 自己实现 strlen include <stdio.h> #include <string.h> #include & ...