JMeter Sampler之BeanShellSampler的使用

简介: JMeter Sampler之BeanShellSampler的使用

SamplerBeanShellSampler的使用


1. Bean Shell简介

·        BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;

·        BeanShell是一种松散类型的脚本语言(这点和JS类似);

·        BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器。

·        BeanShell可执行标准Java语句和表达式,另外包括一些脚本命令和语法。

 

2. Bean Shell常用内置变量

JMeter在其BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

·        log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);

 

·        ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext

 

·        vars:即JMeterVariables,操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),常用方法:

a) vars.get(String key):从jmeter中获得变量值

b) vars.put(String keyString value):数据存到jmeter变量中,其作用可简单理解为赋值操作:key=value,更多方法可参考:org.apache.jmeter.threads.JMeterVariables

 

·        props:即JMeterProperties - class java.util.Properties,操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是put函数,value数据类型只能为String,不能是一个对象。对应于java.util.Properties 

a) props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义 

b) props.put("PROP1","1234");

 

·        Parameters:从参数输入框中获取的参数值的集合

 

·        bsh.args:从参数输入框中获取的参数值的数组

 

3. 启动Jmeter,添加测试计划,线程组等

 

4. 添加BeanShell Sampler

右键线程组->添加->Sampler->BeanShell Sampler

 

 

5. 应用举例

4.1 自定义脚本、函数

 

注:UUID含义是通用唯一识别码(Universally Unique Identifier),java中可调用randomUUID直接生成。

 

代码如下:

 

使用保存的unique_id变量值

 

 

4.2 引用外部java文件

 


说明:运行结果,在d盘根目录下生成shouke.txt文件

附:eclipse中代码组织结构如下(下同,不再赘述):

 


其中:

CreateFile.java代码文件内容:

 

 

4.3 引用外部class文件

 

 

运行后,在d盘根目录下生成destfile.txt文件

 

注意:

addClassPath(String class_path);

1这里的class_path可以不是绝对上级路径,只需要包含.class文件即可,比如可以是

addClassPath("D:\\workspace\\StudyProject\\");

addClassPath("D:\\ ");

 

2class_path不能包含包名对应的目录路径

如上,如果改成addClassPath("D:\\workspace\\StudyProject\\bin\\ mypackage");

运行会报类似如下错误

2016/10/17 17:55:50 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   CreateFile (wrong name: mypackage/CreateFile)

2016/10/17 17:55:50 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    CreateFile (wrong name: mypackage/CreateFile)

 

4.4 引用外部jar文件

如下,

1、在eclipse中单独把CreateFile.java文件打包成jar文件,比如create-file.jar

2、把create-file.jar文件放到JMeter安装目录->lib目录下

3、然后在JMeter的【测试计划】面板中添加打包的jar文件

 


4.5 JMeter内置变量演示

添加【配置原件】-【用户定义的变量】,并在面板中添加var1,var2两个变量

 

运行结果:

 

 

注:

1log.info等方法会把日志写入到JMeter安装目录->bin目录下的jmeter.log文件中(形如:D:\Program Files (x86)\Jmeter\apache-jmeter-2.13\bin jmeter.log

2、参数输入框中也可以直接输入字符串参数值,如下

 


目录
相关文章
EMQ
|
网络协议 Java 数据库连接
JMeter 扩展开发:自定义 Java Sampler
本文是开源测试工具JMeter扩展性开发教程第二期,主要讲解JMeter如何实现对新协议的支持。以MQTT协议中的连接为例,介绍使用JMeter Java Sampler进行扩展开发的具体步骤。
EMQ
413 0
JMeter 扩展开发:自定义 Java Sampler
|
网络协议 Java 测试技术
又一次对Jmeter TCP Sampler实现的小改动
经历对“动态报文长度”处理后,又一次对JMeter的TCP Sampler作了一次小改
9162 0
|
3月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
471 0
|
2月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
514 10
|
2月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
295 0
|
4月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
754 23
|
6月前
|
数据可视化 测试技术 API
JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择
API测试如同筹备一场晚宴,选对工具至关重要。JMeter功能强大但上手难,适合专业用户;Postman简单易用,但在复杂场景和团队协作中表现有限;而Apipost则是一款智能高效的“厨房神器”。它性能测试轻松、结果清晰、学习门槛低,并且能一键集成CI/CD流程。对于追求效率与便捷的团队而言,Apipost无疑是更优选择,让API测试如同五星大厨烹饪般丝滑流畅。
|
12月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
394 3
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
347 2