zoukankan      html  css  js  c++  java
  • jmeter之beanshell的基本用法

    一,官网:http://www.BeanShell.org/

    二、Jmeter有哪些Bean Shell

    • 定时器:  BeanShell Timer

    • 前置处理器:BeanShell PreProcessor

    • 采样器:  BeanShell Sampler

    • 后置处理器:BeanShell PostProcessor

    • 断言:   BeanShell断言

    • 监听器:  BeanShell Listener

    三、BeanShell的用法

       在此介绍下BeanShell PreProcessor的用法,其它的beahshell可以类推。在此我们使用beahshell调用自己写的工具类,工具类实现了密码的加、解密功能:

      1、在eclipse写好代码,然后把该类打成jar包(在类上点击右键->Export->jar file)jar包放到jmeter目录的libext下

      

      如何使用idea2019打jar可参考这个文件https://blog.csdn.net/yueWang_blog/article/details/90718071

      3、打开jmeter,添加一个http sampler,在sampler下添加一个BeanShell 取样器(如果jmeter已经打开了,步骤2中jar包要生效,必须才重启jmeter

      4、在beanshell 取样器中导入我们的jar包,调用里面的加、解密码方法,把结果保存在jmeter变量中,下面两个方法是beanshell中我们最常用到的:

    • vars.get(String paramStr):获得变量值
    • vars.put(String key,String value):,将数据存到jmeter变量中

      

    四、Bean Shell常用内置变量

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

      1.log:输出日志----如:log.info("hello jmeter"),会显示在jmeter的控制台

      2,ctx:该变量引用了当前线程的上下文

       

      import org.apache.jmeter.samplers.SampleResult;
      SampleResult result = ctx.getPreviousResult();
      log.info("=======result========="+result);
      //getRequestHeaders()方法返回String字符串,获取请求头数据
      String RequestHeaders = result.getRequestHeaders();
      log.info("=======请求头========="+RequestHeaders);
      //getResponseHeaders() 返回响应headers
      String ResponseHeaders = result.getResponseHeaders();
      log.info("=======响应头========="+RequestHeaders);
      //getResponseCode() 返回http响应状态码字符串
      String responseCode = result.getResponseCode();
      log.info("=======响应状态码========="+responseCode);
      //getURL() 返回请求URL对象
      URL url = result.getURL();
      log.info("=======请求URL========="+url);

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

      getResponseDataAsString():获取响应信息

       getResponseCode() :获取响应code  这个和ctx中的String responseCode = result.getResponseCode();效果一样

      我们在看看常用的方法

       

      import org.json.*;(一定要找与Jmeter对应的json.jar放到ext目录下,否则会报找不到jar)
      String response_data = prev.getResponseDataAsString();
      JSONObject result = new JSONObject(response_data); //解析json串
      log.info("======"+result);
      //获取data整体内容,因为data的内容是json,所以要用getJSONObject
      JSONObject data = result.getJSONObject("data");
      log.info("===验证码==="+data);
      //获取message内容,因为message是string,所以用getString
      String mes = result.getString("message");
      log.info("===message==="+mes);
      //获取短信验证码的内容,把获取的内容可以用vars.put方法给jmeter用
      String smscode = result.getJSONObject("data").getString("smsVerificationCode");
      log.info("===message==="+smscode);
      String response_code = prev.getResponseCode();
      log.info("======"+response_code);

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

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

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

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

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

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

      

  • 相关阅读:
    各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
    How to see log files in MySQL?
    git 设置和取消代理
    使用本地下载和管理的免费 Windows 10 虚拟机测试 IE11 和旧版 Microsoft Edge
    在Microsoft SQL SERVER Management Studio下如何完整输出NVARCHAR(MAX)字段或变量的内容
    windows 10 x64系统下在vmware workstation pro 15安装macOS 10.15 Catelina, 并设置分辨率为3840x2160
    在Windows 10系统下将Git项目签出到磁盘分区根目录的方法
    群晖NAS(Synology NAS)环境下安装GitLab, 并在Windows 10环境下使用Git
    使用V-2ray和V-2rayN搭建本地代理服务器供局域网用户连接
    windows 10 专业版安装VMware虚拟机碰到的坑
  • 原文地址:https://www.cnblogs.com/hally/p/12774888.html
Copyright © 2011-2022 走看看