• Jmeter组件8. BeanShell Sampler


    BeanShell是一个小巧免费的JAVA源码解释器,支持对象式的脚本语言特性,亦可嵌入到JAVA源代码中,能动态执行JAVA源代码并为其扩展了脚本语言的一些特性,像JavaScript和perl那样的弱类型、命令式、闭包函数等等特性都不在话下

    我想了下,这个组件可以放在请求之间来处理一些计算或者变量赋值等,没用过,不过提供了一个代码接口

    通过一个简单的小例子来说明一下,脚本结构如下,首先我定义了几个变量在User defined variables里面,然后通过Debug Sampler打印出来,接着用Beanshell Sampler去改变了几个值,最后再次打印:

    BeanShell Sampler里面的脚本如下

    Parameters里面放了三个引用的变量,我在User Defined Variables里面定义如下

    然后执行之后,第一个Debug Sampler里打印如下,这应该没什么问题:

    然后第二个Debug Sampler里面打印结果如下:

    首先给var1赋了个新值,造了个var4,赋值为Parameters,看打印结果,存的是一个String类型的值

    var2的值,我重新赋值为var3里面的值,新定义个变量start_time,取的是Jmeter里面的属性START.HMS

    另外,你要是不清楚Jmeter自带哪些属性,可以在workbench下面加一个Property Display控件

    另外,log.info打印的位置在控制台

    可以再看下beanshell Sampler的结果,Responsecode 还有ResponseMessage都是可以定制的

    最后,附BeanShell重用内置变量,很多我也还没用到过,有实践机会的时候可以再好好研究下

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

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

    • vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

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

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

        更多方法可参考:org.apache.jmeter.threads.JMeterVariables

    • props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。 

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

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

    • prev - (SampleResult):获取前面的sample返回的信息,常用方法:

        a) getResponseDataAsString():获取响应信息

        b) getResponseCode() :获取响应code

        更多方法可参考:org.apache.jmeter.samplers.SampleResult

    • sampler - (Sampler):gives access to the current sampler

  • 相关阅读:
    性能
    .Net 平台下的互联网架构新思考
    bootstrap-paginator 分页插件笔记
    HTTP 报文中的 Header 字段进行身份验证
    .NET简单企业应用
    djngo快速实现--使用Bootstrap
    Knockout应用开发指南
    Linux下OpenCV的环境搭建(转)
    初识树莓派(转)
    网络名词解释
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/5821985.html
Copyright © 2020-2023  润新知