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的lib\ext下:  E:\WorkSpace\Jmeter\apache-jmeter-4.0\lib\ext

 

 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.多實踐多實踐多實踐!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM