将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的更多相关文章

  1. jmeter 读取excel数据

    jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...

  2. Jmeter读取excel表中用例数据实现接口压测

    传统的接口测试,都是在接口中手动输入不同用例准备的多种场景参数数据,一遍一遍的输入来执行多个不同的用例,但是现在利用excel表格准备各种类型的数据,使用Jmeter中Jmeter CSV Data ...

  3. Excel文件按照指定模板导入数据(用jxl.jar包)

        本文中的方法只适合Excel2003,要读取Excel2007最好使用poi.jar,据说poi.jar还在更新,jxl.jar已经不更新了,处理Excel文件的读写问题最好还是学习poi.j ...

  4. Java读取Excel指定列的数据详细教程和注意事项

    本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...

  5. Jmeter中通过BeanShell获取当前时间

    第一步编写需要的java类: 第二步:将编写好的java类打包成jar包 第三步:将jar包放到\apache-jmeter-2.13\lib\ext下面 第四步:在Jmeter中通过BeanShel ...

  6. 关于jmeter读取CSV文件的详细设置

    jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...

  7. java 读取excel内容转为JSONArray

    需要引入的JAR     <!--*.xls--> <dependency> <groupId>net.sourceforge.jexcelapi</grou ...

  8. postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库

    最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...

  9. java读取excel文件数据

    package com.smp.server.Ctrl; import java.io.File;import java.io.FileInputStream;import java.io.FileN ...

随机推荐

  1. DAY4(PYTHON)列表的嵌套,range,for

    li=['a','b','开心','c'] print(li[2].replace ( ' 心 ', ' kaixin ' ) ) 输出:'a','b','开kaixin','c' li= ['abc ...

  2. (后端)spring的@Transactional注解详细用法(转)

    转自一人浅醉-博客园: 事务隔离级别 隔离级别是指若干个并发的事务之间的隔离程度.TransactionDefinition 接口中定义了五个表示隔离级别的常量: TransactionDefinit ...

  3. CentOS 安装开发环境 并安装coTurn

    从官网 https://www.centos.org/download/ 下载镜像文件 从163的镜像站点下载,速度较快 http://mirrors.163.com/centos/7/isos/x8 ...

  4. A problem has been detected and windows has been shut down to prevent damage to your computer.他么啥意思?看这里!【蓝屏】

    A problem has been detected and windows has been shut down to prevent damage to your computer.  检测到问 ...

  5. Spring MVC 请求映射 (二)

    完整的项目案例: springmvc.zip 目录 实例 项目结构: 一.配置web.xml <?xml version="1.0" encoding="UTF-8 ...

  6. SQL Server Browser探究

    一.官网关于SQL SERVER Browser服务的解释(谷歌翻译后稍作修改的): https://docs.microsoft.com/en-us/sql/tools/configuration- ...

  7. Android 加了自定义Application后报错 Unable to instantiate activity ComponentInfo ClassNotFoundException

    在Android自定义一个类继承集成Application后,并在AndroidManifest.xml里面配置了application的name属性为该类名称后报错: Unable to insta ...

  8. HttpHandler实现网页图片防盗链

    using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary ...

  9. python拟合数据,并通过拟合的曲线去预测新值的方法

    from scipy import interpolate import matplotlib.pyplot as plt import numpy as np def f(x): x_points ...

  10. syslog的坑

    先看看代码: g_log, err := syslog.NewLogger(syslog.LOG_INFO, ) 再看看syslog的源码: // NewLogger creates a log.Lo ...