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