我在jmeter中经历了bean shell脚本,但是我没有找到任何这样的例子,它在jmeter中是如何有用的,以及哪种方式.读取采样器值等等.任何人都可以用例子解释Jmeter中的bean shell脚本.我们编写脚本的beanshell post/pre processor脚本.我正在努力解决这个问题的实际用途.请解释一下.对我或其他人来说,理解它的用法对我有很大的帮助.
Dmi*_*i T 42
如果您查看Beanshell Post Processor的"脚本"部分,您将看到以下内容:
Script(variables: ctx, vars, props, prev, data, log)
Run Code Online (Sandbox Code Playgroud)
ctx - 代表JMeterContext,提供对JMeter Context API的访问(有关详细信息,请参阅JavaDoc).用法示例:
int threadNum = ctx.getThreadNum(); // get current thread number
Run Code Online (Sandbox Code Playgroud)vars - 代表JMeterVariables.使用vars您可以获取/设置变量值.
String myvar = vars.get("myvar"); // get ${myvar} variable value and store it to myvar string
myvar = myvar + "something"; // append "something" to myvar
vars.put("myvar", myvar); // put new value into ${myvar} variable
Run Code Online (Sandbox Code Playgroud)props - 代表JMeter Properties.基本上与变量相同,但变量可见性仅限于当前线程组,属性为"全局"
prev - 以前SampleResult的简写.似乎正是您正在寻找的.您可以获取/设置开始时间,结束时间,执行时间,延迟,URL,响应代码,响应消息等.有关综合信息,请参阅JavaDoc.用法示例:
String code = prev.getResponseCode();
String message = prev.getResponseMessage();
Run Code Online (Sandbox Code Playgroud)data - 包含父采样器响应数据的字节数组
String samplerData = new String(data);
System.out.println(samplerData);
Run Code Online (Sandbox Code Playgroud)log - 可用于将内容打印到jmeter.log文件
log.info("This line has been written by Beanshell Post Processor");
Run Code Online (Sandbox Code Playgroud)有关更多详细信息和实际示例,请参阅如何使用BeanShell:JMeter最喜欢的内置组件指南.
如果你想在请求之间进行计算,Beanshell将帮助你在jmeter中实现。我们有 Beanshell 采样器、Beashell 预处理器和Beanshell 后处理器。例如,创建一个线程组并添加一个 beanshell 采样器,如图所示。在脚本下输入
var a=1;
var b=2;
var c=a+b;
log.info("sum="+c);
Run Code Online (Sandbox Code Playgroud)
并在启用日志查看器的情况下运行(选项菜单>日志查看器)。

您可以使用 beanshell 脚本调用 jar 的 java 方法(应位于 jmeter_folder/lib/ext 中)。
Beashell 预处理器用于执行计算并随请求一起发送值。假设您想在发送之前对用户名和密码进行加密。您可以提供凭据,使用 beanshell/java 方法对其进行加密,并将其设置为 beanshell 脚本 ( vars.put("variablename",variablevalue)) 中的变量。您可以将变量添加为请求http://test.com?parameter=${variablename}。
类似地,Beashell 后处理器用于处理响应。假设您想要从响应中解密一个值,提取该值(使用正则表达式提取器)并使用 beanshell 脚本解密。
| 归档时间: |
|
| 查看次数: |
55455 次 |
| 最近记录: |