jmeter进阶之Beanshell引用Java代码
在Jmeter实际的使用中,根据业务往往需要构造一些数据源,比如虚拟用户的账号信息等,为了快速灵活,较好的方式往往是通过代码来辅助生产数据。
故在Jmeter支持的众多 sampler 或 前/后置处理器 中,一般借助 Beanshell(推荐) 或 JSR223 等来实现。(源码示例为随机生成中国地区的手机号)
对于 Beanshell,一般调用 Java 源码的方式有三种:
- 通过 beanshell sampler or PreProcesser or PostProcesser 直接进行 Java 编码
- 通过 beanshell sampler or PreProcesser or PostProcesser 引入本地 Java 源码文件
- 通过导入的 jar 包,在beanshell sampler or PreProcesser or PostProcesser 中进行源码的调用(推荐)
方法一:通过 beanshell sampler 直接进行 Java 编码
略
方法二:通过 beanshell 引入本地 Java 源码文件
如图示,先将源代码存放在本地的目录,然后通过 beanshell 的关键字加载之。
#加载源码文件
source("/Users/hailongchen/Documents/workspace/hailongchen/src/main/java/utils/PhoneNoGenerateUtil.java");
#调用源码程序(略)
#使用 beanshell 存/取 变量
vars.put();
vars.get();
方法三:通过导入的 jar 包,在beanshell sampler中进行源码的调用
Demo如图示:
具体步骤参考:
-
先通过 jdk 的命令或者借助 IDE 编译器的功能,生成 jar 包(一般不需要生成可执行 jar 包)
-
将 jar 包放入 jmeter 的目录,并修改 jmeter.properties 文件(自行度娘)
-
启动 jmeter,在测试计划中,导入 jar 路径(该步骤可能不需要,可测试确认)
-
创建 beanshell 组件,按需引用源码(需要注意源码的 package 路径,图示为源码在 package 名称为 utils,类文件名称为 PhoneNoGenerateUtil)
-
在 Beanshell 中调用 所引用 jar包的代码(见 demo)
笔者:v小周与海神
未来的测试终局----就是拎着一个“工具箱”来干活的角色,最终必然是面向“产品业务”与“开发”的技能
未来的测试终局----就是拎着一个“工具箱”来干活的角色,最终必然是面向“产品业务”与“开发”的技能