软件测试 | BeanShell服务器
  p1prOQge3cDY 2023年11月02日 20 0

BeanShell解释器有一个非常有用的特性,它表现得的一台服务器,可以通过Telnet或者HTTP访问。

这里没有安全机制,任何人只要能连接上对应端口,就能执行任何BeanShell命令。这些命令可以提供对JMeter应用程序和主机不受限制的访问。不要启动BeanShell服务器,除非已经对端口访问做了保护,例如,通过防火墙。

如果测试人员确实希望使用BeanShell服务器,请在jmeter。properties文件中定义如下属性:beanshell.server.port=9000

在上面的例子中,BeanShell服务器将会被启动,并监听端口9000和9001。端口9000将会用于HTTP访问。端口9001将会用于Telnet访问。startup.bsh文件将被BeanShell服务器处理,它可以用于定义各种函数及初始化变量。文件startup中定义了设置/打印JMeter及系统属性的各种方法。测试人员可以在JMeter控制台中看到如下内容:

Startup script running

Startup script completed

Httpd started on prot: 9000

Sessiond started on port: 9001

这里有一个实际例子,假设测试人员有一个以非GUI模式长期运行的JMeter测试,并且测试人员希望能在测试运行期间不定时改变吞吐率。测试计划中包含一个恒定的吞吐率定时器,它是以属性的形式定义的,形如${_P(throughput)}。如下BeanShell命令可以被用于改变测试:

printprop("throughput");
curr=Integer.decode(args[0]); // Start value
inc=Integer.decode(args[1]); // Increment
end=Integer.decode(args[2]); // Final value
secs = Integer.decode(args[3]);// Wait between changes
while(curr <= end){
setprop("throughput",curr.toString()); // Needs to be a string here
  Thread.sleep(secs*1000);
  curr +=inc;
}
 printprop("throughput");

该脚本可以被存储到一个文件中(如throughput.bsh),接着使用bshclient.jar将其传递给BeanShell服务器。例如:

java -jar ../lib/bshclient.jar localhost 9000 throughput.bsh 70 5 100 60
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
p1prOQge3cDY
最新推荐 更多