Jmeter BeanShell笔记

前言:beanshell是支持java语法的,因此当一些复杂的数据结构jmeter处理不了的时候,我们可以借助于java来实现

1,使用beanshell处理JDBC请求返回的值

数据库结构

当JDBC的请求如图所示的时,则

  col_#=2 (总行数)
  col_1=第1列, 第1行
  col_2=第1列, 第2行
  

如果sql语句 变成了SELECT id,name from stu_sex,Variable names被设置成了:col1,col2,那么

  col1_#=2 (总行数)       col2_#=2 (总行数)
  col1_1=第1列, 第1行    col2_1=第2列, 第1行
  col1_2=第1列, 第2行    col2_2=第2列, 第2行

取值的方式使用${col1_#},${col1_1}...${col2_2}

当JDBC的请求如图所示的时,则此时返回的是一个List<Map>

这个时候进行数据的处理可以借助于bean shell

//单只取值
System.out.println(vars.getObject("col").get(0).get("列名"));//列名为id的第一行的值
System.out.println(vars.getObject("col").get(1).get("列名"));//列名为id的第一行的值
//对结果进行遍历
//方法1
ArrayList arrayList=vars.getObject("col");
for(HashMap table:arrayList)
{
    for(Object obj:table.keySet())
    {
        System.out.println(obj+"-->"+table.get(obj));
    }
}

//方法2
for(int i=0;i<arrayList.size();i++)
{
    System.out.println(result.get(i).get("列名"));
}
时间: 2024-09-27 04:30:55

Jmeter BeanShell笔记的相关文章

【转】jmeter学习笔记——一种简单的数据库性能测试方法

前提条件:一个数据库:test   数据库下面有一张表:user   表中有两个字段:username.passworld . 要求:往数据库内大批量插入数据,1000/s 其实和之前的方法一样,为了简单,我还是把截图贴出来吧. 1.创建一个测试计划,将我们所使用的数据库驱动包导入. 2.添加一个线程组,并设置我们的虚拟用户数.启动时间.和循环次数 3.创建一个线程,并在线程下面,创建一个JDBC Connection Configuration ,设置相关信息. 4.创建一个JDBC Requ

【转】jmeter学习笔记——参数化

JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问. 一.准备脚本,测试数据 1.录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面.如下: 2.我们需要“参数化”的数据,用记事本写了五个用户名和密码,保存为.

【转】jmeter学习笔记——关联

依照<[转]jmeter学习笔记——一个简单的接口测试>一文中的例子,记录讨论关联 所谓关联, 就是第二个Requst, 使用第一个Request中的数据 我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用 选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor 现在新建第二个Http Reque

JMeter 学习笔记从不懂慢慢提升(01)

开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度. 以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高薪聘请你,可是现在已经不一样了,如果你只是会实用工具还不行,而且还是那高昂的收费工具,你应该学会语言,脚本语言.开发语言~~~~~~~~~~~ 以前总听他们说JMeter但是自己并没有在意,但是现在因为项目需要慢慢的弄了,这里分享一下学习过程. 一.环境搭建 1.JMeter的环境搭建这个和java

Testing Complex Logic with JMeter Beanshell

BeanShell是最先进的JMeter内置组件之一.JMeter具有丰富的内置插件,可满足性能测试的许多需求.例如,在编写一些复杂的测试时,您可能需要一些额外的脚本.在这种情况下,值得使用Beanshell.在这篇文章中,我们将讨论使用JMeter Beanshell和常见用例测试复杂逻辑.Beanshell具有运行Java代码的功能,并且可以访问JMeter API和在JMeter类路径中加载的外部类. JMeter具有以下启用Beanshell的组件: Beanshell采样器. Bean

JMeter BeanShell示例

翻译:https://blog.trigent.com/jmeter-blog-series-jmeter-beanshell-example 在这个例子中,我们将演示在Apache JMeter中使用BeanShell组件.我们将使用BeanShell脚本语言编写一个简单的测试用例.这些脚本将成为我们将为此示例配置的BeanShell组件的一部分.在我们看看不同BeanShell组件的用法之前,让我们来看看这个概念. 1.简介 Apache JMeter是一个基于Java的开源工具,使您可以对

JMeter博客系列:JMeter BeanShell示例

1.简介 Apache JMeter是一个基于Java的开源工具,使您可以在应用程序上执行功能,负载,性能和回归测试.应用程序可以在Web服务器上运行,也可以是独立的.它支持在包含静态和动态资源的客户端 - 服务器和Web模型上进行测试.它支持各种用于进行测试的协议,包括HTTP,HTTPS,JDBC,FTP,JMS,LDAP,SOAP等. 快速浏览一些功能: 它提供了一个全面的基于GUI的工作台来玩测试.它还允许您在非GUI模式下工作.JMeter也可以移植到服务器上,允许在分布式环境中执行测

Jmeter使用笔记之函数

用Jmeter才做了一个项目的测试,就不得不对函数这部分吐槽一下,真是有点弱,难怪大多数人不用这个功能,不过如果用的好也是很方便的,以下慢慢说. 一.BeanShell函数 在测试中遇到了时间戳的加减,查到发现__BeanShell可以做表达式的运算,满心欢喜的用了,结果发现没有结果,再三确认发现不是自己使用的问题,随即 测试了12+12,发现没有问题.最后猜测应该是这个函数是int类型的计算,测试后发现这里的最大值就是int类型的最大值.(心里又默默的吐槽了一番为何 不弄成long类型呢?)

Jmeter beanshell 生成手机号加密签名

首先自己写一个根据手机号生成加密字符串的函数,并且导出为Jar包,函数具体内容省略,网上有很多 将Jar包放到Jmeter lib\ext目录下面,然后在user.properties里面把路径加进去 创建一个BeanShell PreProcessor,这是一个前置的beanshell,会在我发request前把我需要的mobile还有签名生成好 具体结构如图: 我的request的body data如下: { "mobile":"${mobile}", &quo