测试开发水货-Jmeter系列-又学会一招-关于debug sampler 关于JDBC

353 阅读2分钟

我以为我会了,然而...

Jmeter大名鼎鼎,想必各位都不陌生了。日常做个接口测试,常规的压测什么的,用Jmeter很方便。建个线程组,几个参数一填,就齐活了。深一点的,再配个参数化,从CSV config里读取点外部数据,再用函数助手生成几个随机数啥的,我以为Jmeter用到这个份儿上也就差不多了。直到我看了同事写的脚本……具体的图我就不放了,反正比我写的复杂多了。

其中有一个审批流的操作涉及到了mysql数据库的控制。mysql这块我之前没有在Jmeter里用过,只知道要用到一个JDBC之类的插件,从官网下载一个jar包放到Jmeter安装目录的lib路径下重启就行了。实际应用的时候我也是有样学样,直到遇到了这个报错:

可以看出来我这个变量没有解析出来,而我是这样配置的JDBC request:

道理就是执行一条sql,然后把结果赋给employee_code这个变量。那究竟为什么没有获取到呢?这时候就要用到另一个取样器了:Debug Sampler。

在默认设置下,这个元件可以帮我们把目前所有的变量都打印在结果树里,然后我就赫然看到了我需要的变量:

竟然变成了employee_code_1!这是为什么呢?查了一番资料,我才得知,原来这是Jmeter的设计规则,如果我给这个参数设置了值,比如employee_code,它会保存sql语句返回的数据和返回数据的总行数。如上图那样,它会返回一个employee_code_#=1 表示结果一共只有一行,下面的employee_code_1=xxxx才是我要引用的真正变量。如果不知道这个规则,我可能还一直卡在那个报错上。

做个总结

  • 遇到问题,善用debug sampler查看自己的脚本配置;

  • 白嫖代码一时爽,遇到问题泪两行。这个脚本是我copy的同事的,当时用觉得挺好使,自己想举一反三就遇到了各种坑,一度怀疑人生。所以说,打好基础很重要啊!

联系博主:测试开发水货,生活有意思系列,带妹跑步等内容在别处额: yoyo33881213