1.说明html
BeanShell:是一个小型嵌入式Java源代码解释器,具备对象脚本语言特性,可以动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚原本对其进行拓展。BeanShell不单单能够经过运行其内部的脚原本处理Java应用程序,还能够在运行过程当中动态执行你java应用程序执行java代码。由于BeanShell是用java写的,运行在同一个虚拟机的应用程序,所以能够自由地引用对象脚本并返回结果。java
Jmeter中的BeanShell主要有:定时器BeanShell Timer、前置处理器BeanShell PreProcessor、采样器BeanShell Sampler、后置处理器BeanShell PostProcessor、断言BeanShell、断言监听器BeanShell Listener。闭包
此处运用了内置对象vars对变量进行存取操做:函数
·vars.get("name"):从jmeter中得到变量值学习
·vars.put("key","value"):数据存到jmeter变量中spa
(可参考该文档进行学习:https://www.jianshu.com/p/bc537d6acb3a)线程
2.直接在jmeter中写java代码调试
第一步:添加 BeanShell Sampler 编写 java 代码code
线程组(右键) => Sampler => BeanShell Sampler(可直接写入java代码)htm
第二步:添加 Debug Sampler 进行调试
控制器 => Sampler => Debug Sampler (调试)
第三步:调用java代码中的数据
/ep/add.action?NAME=${name}&AGE=${age}
3.导入 java 代码文件
说明:其中,引入java文件,不须要放到根目录,只是引用时文件路径须要使用双斜杠\\,格式为source("D:\\software\\workspace\\junit-test\\AddMethod.java");
source("D:\\software\\workspace\\junit-test\\AddMethod.java");//导入java文件 int addm = new AddMethod().add(5,8);//调用函数 vars.put("name","duoduo");//保存变量 vars.put("num",addm.toString());//保存变量 return "success"; return num;
Debug Sampler 结果:
name=duoduo
num=13
4.导入 class 文件
addClassPath("D:\\"); import com.AddMethod;//AddMethod是class文件的文件名,放到D盘比较深的一个目录里 int addm = new AddMethod().add(6,9); vars.put("num",addm.toString()); vars.put("name","kaku"); log.info("test"); return "success"; return num;
Debug Sampler 结果:
name=kaku
num=15
5.jmeter使用自定义编写java代码
(可参考该文档进行学习:https://www.cnblogs.com/linglingyuese/articles/linglingyuese-two.html)
备注:正常状况下,不多会在jmeter中写java代码,因此,仅作了解便可