写点什么

软件测试 |BeanShell 服务器

  • 2023-06-07
    北京
  • 本文字数:804 字

    阅读完需:约 3 分钟

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 valueinc=Integer.decode(args[1]); // Incrementend=Integer.decode(args[2]); // Final valuesecs = Integer.decode(args[3]);// Wait between changeswhile(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
复制代码

搜索微信公众号:霍格沃兹测试学院

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 |BeanShell服务器_测试_测吧(北京)科技有限公司_InfoQ写作社区