二、beanShell用法小结
beanShell常用的内置函数:vars、prev、props
1、beanshell中必须通过vars来操作变量,不能直接输出${}
${__StringFromFile(F:\api_jmeter\pin#'.'txt,pin,1,3)};//读取pin1.txt pin2.txt pin3.txt的文件内容
log.info("-----------"+vars.get("pin")+"-----------------");
2、beanshell中通过props来操作属性 props.get()获取属性值 props.put()设置属性
3、String response = prev.getResponseDataAsString();//内置函数prev获取上一个请求的返回值
4、导入java包时,只需要引入package相应的路径,因为java不识别文件夹只识别package
5、java类都可以直接使用,不需要import
6、实例化java类时不能带有数据类型 如Map map=new HahsMap(),String a=""是正确的写法。Map<String,String> map=new HahsMap<String,String>()则编译报错
7、变量一般不能跨域调用(测试计划上的全局变量除外),但是属性可以跨域调用,方法如下
将提取的token或者cookie(提取方法:后置处理器-正交法则、后置处理器-json提取)设置为变量${value}
通过${__setProperty(pro,${value},)}的方法将变量设置为全局属性,因为属性是全部线程组共享的
线程组中通过${__property(pro)}方法取得属性的值
beanshell中使用属性内置对象props props.get("pro")的方式调用属性的值
beanshell断言功能虽然强大,但是会拖累jmeter的运行速度,因此接口自动化测试还行,性能测试还是用响应断言吧