Jmeter---后置处理器 BeanShell PostProcessor 获取JDBC结果(多行)并以列表传入另一个请求...

 

 

之前用python+locust对脚本生成商品编码, 商品上架,购买商品进行编写脚本和压测;

开始是打算用Jmeter,后来遇到问题在 Jmeter如何读取JDBC多行并组成列表,作为下一个请求 一直卡在这里,今天终于突破 记录一下:

多方百度没有结果,最终经过过以为朋友指导,可以达成python脚本的效果;

总结:

虽然locust 没有向jmeter, LR等压测工具图表丰富,监听服务器情况等需要借助其他工作完成,在脚本灵活度上大大增加工作的效率;

 

第一步:

添加JDBC请求:详细参考另外一个博文

1.1添加mysql 链接驱动 \mysql-connector-java-5.1.47.jar

   

 

在线程组 增加 JDBC Connection Configuration:

在线程组 增加 JDBC Request:

 

 添加debug Sample和查看结果树,运行脚本,查debug sample运行情况,如下:

在对于JDBC请求结果,发现同一个版本 也会出现不一样的情况,朋友结果是有些是有这个返回值gId_matchNr,而我的是没有

 

重点:

第二步:

思路是:通过BeanShell PostProcessor拿到JDBC查询结果,组合成一个列表,作为参数传入下一个请求;

vars.put() 接收是字符串,不接受其他类型

列表因此需要用:varObject() 

引用参数直接通过${goodId}

5行:获取JDBC查询结果的“gId_#”的结果 即JDBC查询结果的总数,用于便利结果集

6行:转换成int类型

7行:通过log,可以在debug模式查过结果;

8行:创建一个列表,用于查询结果存储;

10行:遍历JDBC结果

11行:因为JDBC查询结果是:gId_1 代表第一个值,gId_2 代表第二个值,如此类推

12行:通过vars.get() 拿到每个值,“\"” 对冒号进行转义

14行:把拿到的每个商品号的值加入到列表里

16行:通过vars.putObject(“goodId”, glist) 赋予到新的变量

 

通过debug sample 查看到列表方式打印

 

 

最后的最后:

 

在上面脚本最后添加“log.info(glist)” 这行代码 出现下面报错信息,不知道怎么处理 有哪位朋友有解决方法吗?知道的大神 烦请留个言,谢谢

 

2019-05-16 19:10:35,122 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval    Sourced file: inline evaluation of: ``  String tmp_id = vars.get("gId_#"); int num = Integer.parseInt(tmp_id); log.inf . . . '' : Error in method invocation: Method info( java.util.ArrayList ) not found in class'org.apache.logging.slf4j.Log4jLogger'
2019-05-16 19:10:35,122 WARN o.a.j.e.BeanShellPostProcessor: Problem in BeanShell script: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    Sourced file: inline evaluation of: ``  String tmp_id = vars.get("gId_#"); int num = Integer.parseInt(tmp_id); log.inf . . . '' : Error in method invocation: Method info( java.util.ArrayList ) not found in class'org.apache.logging.slf4j.Log4jLogger'

 

转载于:https://www.cnblogs.com/shoebill/p/10880909.html

JMeter一个开源的压力测试工具,用于对Web应用、应用程序接口(API)和其他网络服务进行性能测试。JMeter插件系统允许用户扩展JMeter的功能,并提供了一系列的插件来满足不同的测试需求。 `jmeter-plugins-cmn-jmeter-0.7.jar` 这个文件看起来像是 JMeter一个插件包,不过其版本信息似乎有些过时(0.7版),通常推荐使用最新的稳定版本以获得最佳功能和兼容性。 ### 下载步骤: 1. **访问官方站点**:首先前往 [Apache JMeter官方网站](https://jmeter.apache.org/) 或者 [Apache JMeter GitHub页面](https://github.com/apache/jmeter),获取关于最新版本的信息以及如何安装插件的相关指导。 2. **查找所需插件**:在网站上搜索 `Common Plugins` 或者直接输入 `jmeter-plugins-cmn` 来查找相关的插件列表。请注意,此插件的名称可能会有所不同,在最新的文档或API页面中,应找到对应的功能描述及下载链接。 3. **确认版本和兼容性**:在选择下载之前,请务必确认该插件是否与您当前使用的 JMeter 版本兼容。如果插件有多个版本供选择,请查阅它们之间的差异说明,选择最适合您的版本。 4. **下载并安装**:点击对应的下载链接,将文件保存到本地计算机上。然后打开JMeter,通过“添加JAR或目录”按钮,在JMeter的配置文件 `lib/ext` 目录下导入插件的 .jar 文件。确保在启动JMeter前已更新配置文件路径以包含新导入的插件。 5. **验证安装**:完成以上步骤后,重启JMeter并检查插件是否成功加载。通常,新插件会出现在JMeter的“取样器”、“监听器”等组件菜单中,你可以从这里确认插件是否可用。 ### 安全提示: - 确保下载来自可信源的插件。避免从不可信或未经授权的第三方站点下载文件,以防恶意软件感染。 - 使用杀毒软件扫描文件以确保安全性。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值