Jmeter之Bean shell使用(二)

简介:   上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容如下: 一、操作变量 二、操作属性  三、自定义函数 四、引用外部java文件 五、引用...

  上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容如下:

一、操作变量

二、操作属性 

三、自定义函数

四、引用外部java文件

五、引用外部class文件

六、引用外部Jar包

七、其它用法(接受参数, log等)

 

一、操作变量:通过使用Bean shell内置对象vars可以对变量进行存取操作

    a) vars.get("name"):从jmeter中获得变量值

    b) vars.put("key","value"):数据存到jmeter变量中

二、操作属性:通过使用Bean shell内置对象props 可以对属性进行存取操作

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

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

三、自定义函数:

  在BeanShell中,我们可以使用java语言自定义函数来处理特定的逻辑,结合BeanShell的内置对象进行变量的存取,方便我们进行测试提高脚本的灵活性。

示例:

1、在Test Plan中添加一个变量:hello = kitty

 

2、Debug sampler-1和Debug sampler-2什么都不处理,用来查询对比beahshell处理前后的结果

3、BeanShell Sampler中的脚本如下:

 

4、运行结果:

  • Debug sampler-1中显示:hello=kitty
  • BeanShell sampler中 返回结果为:success 
  • Debug sampler-1中显示:hello=world,jmeter=111111

 

四、引用外部java文件:

  有没有觉得上面(三)中自定义函数这样的方式太麻烦并且也不美观?而且如果我们已经有现成的java源文件或者class文件时,我们有没有什么办法直接在jemter中引用?这就是这部分要介绍的内容,直接上示例:

1、假如我有一个java 源文件,名为:Myclass.java,代码如下:  

package test;

public class Myclass
{
    public int add(int a, int b)
    {
        return a + b;
    }    
}

2、Bean Shell使用代码如下:

  在bean shel中通过source("代码路径")方法引入java,然后调用方法和java一样,new一个class,再调用里面的add 方法。

3、运行结果:

 

五、引用外部class文件:

  现在知道如何引用外部文件,有时候如果我们只有class文件怎么办呢?其实在jmeter中也可以直接引用class文件,示例如下:

1、直接把上例中的java文件编译成class文件,如何编译请自行百度。

2、Bean Shell使用代码如下:

  用addClassPath("D:\\")方法引入 class文件,在用import导入包及类,然后就可以像java一样调用了

3、运行结果:

 

六、引用外部Jar包:

  上面四、五介绍了如何引用外部java和class文件,如果文件比较多时我们可以把它们打成一个jar包然后在jemter中调用,具体如何使用可以看我上一篇有介绍:Jmeter之Bean shell使用(一)

  在这里想补充一点的是jmeter中引入jar的方法:

  1、上一篇中已使用过的:把jar包放到jmeter目录\apache-jmeter-2.13\lib\ext下

  2、在Test Plan的右侧面板最下方直接添加需要引用的jar包,如下图:

 

七、其它用法: 

1、在Test Plan中定义如下三个变量:

2、Bean Shell可脚本如下:

  a、bean shell可以接受传入参数,如下图:${u1} ${u2} ${u3}

  b、参数可以通过bsh.args[]按顺序提取

  c、bean shell提供了一个内置变量Parameters,来保存参数的集合

3、运行结果:

下图中1输入的这两句设置:

ResponseCode = 500;
ResponseMessage = "This is a test";

下图中2输入的这两句设置:

log.info(Parameters);

log.info(Label);

 

 

官网:

http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_Sampler

目录
相关文章
|
8月前
|
Shell Linux 网络安全
性能工具之 JMeter 使用 shell 脚本快速执行
【2月更文挑战第30天】性能工具之 JMeter 使用 shell 脚本快速执行
445 1
性能工具之 JMeter 使用 shell 脚本快速执行
|
Java Shell 数据安全/隐私保护
|
Java Shell 数据安全/隐私保护
|
Java Shell Apache
Jmeter之Bean shell使用(一)
一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
1442 0
|
3月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
134 1
|
2月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
79 2
6种方法打造出色的Shell脚本
|
2月前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
94 1
|
2月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
86 2
|
3月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
71 6