解鎖JMeter(一)——擴充套件jar包與依賴jar包
閱讀本文大約需要3分鐘
前言
在使用自定義的Java Sampler,總是莫名奇妙地報找不到類——ClaasNotFound Exception,但實際上該類是存在的。究其原因,是因為不知道哪些jar包應該放在哪個目錄。一般情況下,JMeter有2個預設的jar包路徑:%JMETER_HOME%lib和%JMETER_HOME%lib/ext;有時候為了更有序地管理自定義的jar包,往往希望能夠在%JMETER_HOME%lib目錄下建立自定義的資料夾來分類存在jar包。但也因為沒有真正理解哪個路徑應該存放哪種型別的jar包,導致執行指令碼過程中,總是猝不及防地報錯。
定義
這裡先介紹一下, 擴充套件jar包 與 依賴jar包 。
擴充套件jar包(也稱“協議測試jar包”):自己開發的指令碼(jar檔案),需要在Java Sampler等取樣器中被識別的Java程式碼 ,包括元件和外掛;預設情況,放在%JMETER_HOME%lib/ext 目錄下。
注:指令碼依賴的jar不要放在這裡!
依賴jar包:指令碼依賴的jar包或者其他jar(如JDBC,JMS實現類或者任何其他支援庫);預設情況,放在%JMETER_HOME%lib 目錄下。注:%JMETER_HOME%lib 目錄下本身有很多jar包,拷貝指令碼依賴的jar時一定要小心,如果有重複的jar包但版本不一致,一般情況下,保留高版本的jar,刪除抵版本的jar即可(java一般需要遵從高版本向低版本相容)。
擴充套件
如果不想將擴充套件jar放在lib/ext 目錄下,可以在jmeter.properties配置檔案中,配置search_paths。
操作步驟:開啟%JMETER_HOME%/bin/jmeter.properties檔案,搜尋“search_paths ”,去掉註釋符號“#”,設定自定義的目錄。如search_paths=..lib/osp;..lib/testcase。
同理,如果不想將依賴jar放在lib目錄下,可以在jmeter.properties配置檔案中,配置user.classpath或者 plugin_dependency_paths。操作步驟同上。
備註:JMeter只識別.jar檔案,不會對.zip等壓縮檔案進行掃描。
官方解釋,可參考官方白皮書 ofollow,noindex">JMeter Classpath 。