zoukankan      html  css  js  c++  java
  • Jmeter——BeanShell PreProcessor的用法

    ------------------------------------------------------------------------------------------------------转-------------------------------------------------------------------------------------------------------------

    一、什么是BeanShell

    BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚本来对其进行拓展。BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码。因为BeanShell是用java写的,运行在同一个虚拟机的应用程序,因此可以自由地引用对象脚本并返回结果。

    二、BeanShell PreProcessor的作用
          BeanShell PreProcessor是一个前置处理器,它可以进行一些处理,比如执行一个算法并将结果存储到参数中。
    通过BeanShell PreProcessor可以在发生采样之前执行任何代码。
    2、添加该部件的步骤
    右击项目——》“添加”——》“前置处理器”——》“BeanShell PreProcessor”
     
    添加后,页面如下图:
     
    3、参数描述如下:
    属性 描述
    名称 该元件的描述性名称,用于在测试树种标识元件。
    Reset bsh.Interpreter before each call 如果设置该选项,那么就会为每个采样器重新创建解释器。
    Parameters to be passed to Bean Shell 传递给BeanShell脚本的参数。参数存在于如下变量表中:
    1)String Parameters:包含有参数的字符串,作为单个变量存在
    2)String []bsh.args:包含有参数的字符串数组,以空格作为间隔
    Script file 一个文件,其中包含有待运行的BeanShell脚本
    Script BeanShell脚本。返回值将被忽略。
     
    4、Bean Shell常用内置变量

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

    • log用来记录日志文件,写入到jmeber.log文件,使用方法:log.info(“This is log info!”);

    • ctx(JmeterContext)通过它来访问context,使用方法可参考: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变量中

         c) vars.putObject("OBJ1",new Object());

        更多方法可参考: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 访问当前采样

    5、用法案例
    在HTTP信息头管理器初始化2个参数:一个时间戳 ${Timestamp},一个签名校验 ${Sign}
     
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • 相关阅读:
    生成二维码
    【C#】教你纯手工用C#实现SSH协议作为GIT服务端
    Git断点续传和离线增量更新的实现
    微信定位真的泄露了你的精确位置
    Helper Files
    正则表达式的一些应用
    Apache配置SSL实现HTTP转HTTPS及可能出现的问题(配置https启动不了的解决办法)
    Python3 采集APP数据及相关配置
    Laravel 5 中间件、路由群组、子域名路由、 权限控制的基本使用方法
    Python3使用cookielib模块
  • 原文地址:https://www.cnblogs.com/zhlan/p/9342288.html
Copyright © 2011-2022 走看看