zoukankan      html  css  js  c++  java
  • Jmeter4.0之beanshell引用外部jar

    beanshell练习 ---导入外部jar包

    步骤:

    1.Eclipse下准备好测试类 ,如下

    package test;
    public class TestBeanShell { 
     public static String testHello(String username, String password) {
      if (!username.equals("clover")) {
       return "用户名错误";
      } else if (!password.equals("456")) {
       return "密码错误";
      } else {
       return "恭喜你,登陆成功!";
      } 
     }
    }
    

    2.导出jar包,右键-export-JAR-test.jar

    ==============================Jmeter 相关========================================

    3.将导出的jar包放在jmeter的libext下:  E:WorkSpaceJmeterapache-jmeter-4.0libext

     4.打开jmeter,在测试计划里边引入test.jar

    5.新增用户定义的变量  : 新增变量  user :clover       pass :123456

    6.添加beanshell sample:   线程组-右键添加-beanshell  sample 

    7.编写beanshell 代码 获取用户名和密码,并传递给提前封装好的类,最后返回登录后的结果

    import test.*;
    //静态方法打点调用 不需要实例化 
    // 注意分号 注意分号 注意分号
     a = vars.get("user");
     b = vars.get("pass");
    String c = TestBeanShell.testHello(a,b);
    log.info(c);

    8.新增查看结果数,用来查看beanshell sample 请求是否正确

    9.运行成功                         

     以上jmx的元件  如上图。

    总结及与遇到的问题

    1.beanshell  中写的代码 没加分号;  导致一直报错=============对JAVA语法不熟

    2.beanshell  常用功能

    • vars.get("user")    获取变量值  如上面的用户定义的变量 user  ,想要得到user 对应的值clover ,就这样使用:vars.get("user") 结果是clover
    • vars.put("v1","${user}")  ${user}  的结果是clover , 这句话就是将clover赋给v1  即 v1="clover"
    • log.info("==========") 打印日志

    3.以下三种种方式都可以取到用户名和密码的值

    //String result = TestBeanShell.testHello("${user}", "${pass}");
    //vars.put("v1",bsh.args[0])    vars.put("v1",bsh.args[1]);   在beanshhell 定义变量的时候要用空格隔开 ${user} ${pass}  空格隔开空格隔开空格隔开
    //vars.ger("user") vars.get("pass")

    4.进阶版

    import test.*
    vars.put("v1","${user}"); vars.put("v2","${pass}"); vars.put("v3",Parameters); String result = TestBeanShell.testHello(vars.get("v1"), vars.get("v2")); log.info(result); String name = vars.get("v1"); String pass = vars.get("v2"); String params = vars.get("v3"); log.info("输入用户名=" + name); log.info("输入密码=" + pass); log.info("params=" + params); //log.info("bsh.args="+ Arrays.toString(bsh.args)); int bshArgs = bsh.args.length; log.info("bsh.args数组长度="+Integer.toString(bshArgs)); for(int i = 0 ; i< bshArgs ; i++){ log.info("bsh.args第"+i+"个元素=" + bsh.args[i]); }

    5.多实践多实践多实践!!!

  • 相关阅读:
    什么叫委托
    什么是继承
    什么叫多态
    委托的了解
    什么是数组
    工作记录之 oracle去重的三个方法
    实例分析J2ME网络编程的两种方法
    在无线J2ME设备上实现超文本传输协议
    java与C、C++进行通信的一些问题
    如何配置Wiindows live writer
  • 原文地址:https://www.cnblogs.com/eosclover/p/11489031.html
Copyright © 2011-2022 走看看