jmeter获取响应结果_jmeter(七)-BeanShell常⽤内置变量和
场景
Bean Shell常⽤内置变量
JMeter在它的BeanShell中内置了变量,⽤户可以通过这些变量与JMeter进⾏交互,其中主要的变量及其使⽤⽅法如下: log:写⼊信息到jmeber.log⽂件,对应org.apache.logging.slf4j.Log4jLogger
使⽤⽅法:
log.info(“This is log info!”);
log.debug(“This is log debug!”);
log.warn(“This is log warn!”);
<(“This is log error!”);
ctx:该变量引⽤了当前线程的上下⽂;
使⽤⽅法:
更多使⽤⽅法可参考:org.apache.jmeter.threads.JMeterContext。
vars: (JMeterVariables):操作jmeter变量,这个变量实际引⽤了JMeter线程中的局部变量容器(本质上是 Map),它是测试⽤例与BeanShell交互的桥梁,常⽤⽅法:
a) (String key):从jmeter中获得变量String类型值
b) vars.put(String key,String value):String类型数据存到jmeter变量中
c) Object(String key):从jmeter中获得变量object值
d) vars.putObject(String key, Object value): 保存对象到jmeter变量中
更多⽅法可参考:org.apache.jmeter.threads.JMeterVariables
props: (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引⽤了JMeter的配置信息,可以获取Jmeter的属性,它的使⽤⽅法与vars类似,但是只能put进去String类型的值,⽽不能是⼀个对象。对应于java.util.Properties。
a) ("language");在⽂件jmeter.properties中定义
b) props.put("PROP1","1234");设置属性
prev: (SampleResult):获取前⾯的sample返回的信息,常⽤⽅法:
ResponseDataAsString():获取响应信息
ResponseCode() :获取响应code
更多⽅法可参考:org.apache.jmeter.samplers.SampleResult
sampler: (Sampler)访问当前samper对象;常⽤⽅法
sampler.setName("beanshell1");
备注:
对于不知道内置变量是什么类型对应什么类,可打印出来对应类名;再通过类名查jmeter api⽂件,查看具体⽅法。
log.warn("ctx:"+Class().toString());
class 测试结果
Class [B 表⽰此类是baye [] 及字节数组。
Bean Shell常⽤引⽤场景
⾃定义函数
引⽤外部java⽂件
引⽤外部class⽂件
引⽤外部Jar包
⼀、⾃定义函数:
在BeanShell中,我们可以使⽤java语⾔⾃定义函数来处理特定的逻辑,结合BeanShell的内置对象进⾏变量的存取,⽅便我们进⾏测试提⾼脚本的灵活性。
⽰例:
1、在Test Plan中添加⼀个变量:hello =kitty
定义变量
2、Debug sampler-1和Debug sampler-2什么都不处理,⽤来查询对⽐beahshell处理前后的结果
3、BeanShell Sampler中的脚本如下:
设置脚本
4、运⾏结果:
beanshell前测试结果
beanshell测试结果
shell代码beanshell后测试结果
⼆、引⽤外部java⽂件:
如果我们已经有现成的java源⽂件或者class⽂件时,我们有没有什么办法直接在jemter中引⽤?⽰例:
1、假如有⼀个java 源⽂件,名为:Myclass.java,代码如下:
package test;public class Myclass{ public int add(int a, int b) { return a + b; } }
2、Bean Shell使⽤代码如下:
在bean shel中通过source("代码路径")⽅法引⼊java,然后调⽤⽅法和java⼀样,new⼀个class,再调⽤⾥⾯的add ⽅法。
引⼊类
3、运⾏结果:
测试结果
三、引⽤外部class⽂件:
在jmeter中也可以直接引⽤class⽂件,⽰例如下:
1、直接把上例中的java⽂件编译成class⽂件。
2、Bean Shell使⽤代码如下:
⽤addClassPath("D:")⽅法引⼊ class⽂件,在⽤import导⼊包及类,然后就可以像java⼀样调⽤了
引⼊外部class
3、运⾏结果:
测试结果
四、引⽤外部Jar包:
上⾯⼆、三介绍了如何引⽤外部java和class⽂件,如果⽂件⽐较多时我们可以把它们打成⼀个jar包然后在jemter中调⽤jmeter中引⼊jar的⽅法:
⽅式⼀:把jar包放到jmeter⽬录安装libext下
⽅式⼆:在Test Plan的右侧⾯板最下⽅直接添加需要引⽤的jar包,如下图:
导⼊jar
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论