jmeter BeanShell脚本调试

用beanshell实现功能:如果参数required param中存在 ${column1_60} 这个字符串,那么就将这个字符串替换成 从数据库中查询出来的某一个值


实现代码如下:


运行结果如下:


可以看到${column1_60}这个字符串并没有按照预期结果替换

再次查看 查看结果树中的BeanShell请求body,发现替换的那一行代码变成了String data = data.replace("66",id);,这样就理解了为什么替换不成功了,这句意思就变成了在required param中找66,如果找到了就替换成id的值,当然不是我们想要的预期,查看了debug sampler刚好${column1_60}就是66



难道beanshell可以不通过vars.get 直接获取到jmeter的变量,直接用${column1_60} 就可以取到吗?尝试着打印了${column1_60} ,报错


这一步和刚才的差距只是少了引号,加上引号再试就好了


这就说明beanshell有第二种方法可以取到jmerer里的变量,这就理解了刚才替换的那句为什么执行后变成了String data = data.replace("66",id);

vars.get("column1_60")   等价于  "${column1_60}"

解决开篇问题的办法就是可以将excel数据中换个变量名,避免和jmeter中的变量冲突就可以了,将${column1_60}换成${test},这下就运行成功了


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • 函数 内置函数在线程间共享,每个内置函数的调用使用一个独立的实例进行处理 __CSVRead CSV file t...
    佛系小懒阅读 1,928评论 0 3
  • Jmeter插件访问Redis共有3种方式: 1)通过自已开发插件(目前难度有点大、这种方式一定是OK 的,以后再...
    奔跑的小小鱼阅读 2,712评论 0 1
  • jmeter内对response值的处理 1. 正则表达式提取器 在取样器上右键,选择正则表达式提取器,如图: 接...
    Null_ice阅读 10,614评论 0 2
  • 本文由作者张迎贞授权网易云社区发布。 一、用户定义的变量 1、右键快捷菜单中选择添加-配置元件-用户自定义变量。 ...
    43ce3d72fadb阅读 13,347评论 1 1
  • 瑜伽是我新的改变的开始,今天突然想起刚开始接触瑜伽想要凭此周游全国,现在看来遥遥无期,可是瑜伽却已经慢慢变了,它不...
    梦游世界阅读 255评论 0 3