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 ...
随机推荐
- ViewPager结合view无限滑动
使用viewPager进无限滑动,这里的实现是在适配器里面进行,当然在外头使用滑动监听也行. import android.support.v4.view.PagerAdapter; import a ...
- <自动化测试方案_10>第十章、自动化测试部署策略
第十章.自动化测试部署策略 按照以下顺序部署自动化框架 1,部署API自动化 时间:三周2,部署PC端UI自动化 时间:1个月 3,部署Sonar代码质量管理 时间:1个月 4,集成到Jenki ...
- leetcode-69.x的平方根
leetcode-69.x的平方根 Points 二分查找 牛顿迭代 题意 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保 ...
- 2015年6月6日,杨学明老师《IT技术人才管理角色转型与实践》专题培训在苏宁云商成功举办!
2015.6.6,在中国南京苏宁总部,研发资深顾问.资深讲师为苏宁易购IT事业部全体产品总监.研发总监进行了为期一天的<IT技术人才管理角色转型与实践>的内训服务. 杨学明老师分别从技术人 ...
- HDU 2086 A1 = ? (找规律推导公式 + 水题)(Java版)
Equations 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2086 ——每天在线,欢迎留言谈论. 题目大意: 有如下方程:Ai = (Ai-1 ...
- (python)数据结构---集合
一.描述 set翻译为集合 set是可变的.无序的.不可重复的 set的元素要求可哈西(不可变的数据类型可哈西,可变的数据类型不可哈希) set是无序的,因此不可以索引,也不可以修改 线型结构的查询时 ...
- IIS 使用OpenSSL 生成的自签名证书,然后使用SingalR 客户端访问Https 站点通信
使用SignalR 的客户端去发送消息给使用 https 部署的站点,官方文档目前并没有详细的教程,所以在此记录下步骤: 使用管理员身份打开cmd 窗口,选择一个整数保存文件夹的地址,切换到对应的文件 ...
- c/c++ 用前序和中序,或者中序和后序,创建二叉树
c/c++ 用前序和中序,或者中序和后序,创建二叉树 用前序和中序创建二叉树 //用没有结束标记的char*, clr为前序,lcr为中序来创建树 //前序的第一个字符一定是root节点,然后去中序字 ...
- js中图片上传,多次上传同一张不生效
在做图片上传的功能时, 使用删除功能删除了一张图片, 然后想重新上传原来删除的图片, 结果预览不显示, 也不能上传成功 解决办法, 在删除方法里置空input $("#id").f ...
- update layer tree导致页面卡顿
前因 今天检查一个vue页面问题,就是在切换Tab时候(某些win10电脑),页面会卡顿一段很长的时间,短则3秒,长则十几秒,这个体验非常糟糕,于是我着手寻找其中原因. 概况 这个vue页面的元素非常 ...