1.添加JSON Path Extractor?
>>下載地址:http://jmeter-plugins.org/downloads/all/,下載 JMeterPlugins-ExtrasLibs-X.X.X.zip下載
>>解壓,將lib和lib/ext中的jar包放到安裝目錄對應位置,重啟。
?
2.參數不能輸入中文,且返回的json中包含中文的,在斷言中顯示為亂碼。
>>不適用json斷言,使用‘響應斷言’
?
3.提示:No Jwt Token attached
>>添加http信息頭管理器,添加相關jwt信息
?
4.報9999
>>參數中的數據與數據庫中數據不一致
?
5. BeanShell PreProcessor處理加密
1):在eclipse寫好需要的加密代碼,然后把該類打成jar包(在類上點擊右鍵->Export->jar file)
2):把jar包放到jmeter目錄\apache-jmeter-2.13\lib\ext下或在測試計劃中的Add directory or jar to classpath 選擇jar文件引入;
3):添加一個http請求,在http請求中添加前置處理器BeanShell PreProcessor;
4):在BeanShell PreProcessor中添加代碼:例:
import test.SHACodeHelper;?
?
import java.security.MessageDigest;
?
import javax.xml.bind.annotation.adapters.HexBinaryAdapter;
?
?
System.out.println("*****加密*****");
String password = "11111111";
String pass = SHACodeHelper.encodeSHA256(password);//調用工具類中的方法進行加密
System.out.println("Set my pass");
vars.put("pass",pass);//把值保存到jmeter變量pass中
String getPass=vars.get("pass");
System.out.println("Get my pass: " + getPass);
?
6.使用jmeter錄制腳本
1).點擊工作臺,添加http代理服務器;
2).設置端口號:例如8888,8080,選擇目標控制器和分組
?
3). 設置一下IE瀏覽器
IE--->“internet屬性”--->“連接”--->“局域網設置”
設置地址為:127.0.0.1,端口號為步驟2中配置的端口號
4)在jmeter的http代理服務器中點擊啟動,打開瀏覽器,輸入要錄制的地址
?
7.jmeter錄制時提示不受信任DLG_FLAGS_INVALID_CA;
解決:重啟ie,重新關閉連接設置又打開
?
8.讀取csv文件的第一行報錯,同樣的值放在第二行就正常
解決:使用notepad++,去掉第一行重新保存成新的文件
?
9.解決返回值或關系的斷言:
方法一:在響應斷言中使用正則,例如:"result":[0-1]{1}
方法二:下載jmeter3.2版本;
方法三:使用beanshell斷言,添加判斷代碼,例如:
if ("${result}" == "0"){
?????? SampleResult.setSampleLabel("result=0");
???
}else if("${result}" == "1"){
??? SampleResult.setSampleLabel("res=1");
}else{
??? SampleResult.setSampleLabel("error");
}
10.在jmeter中使用js獲取當前時間:
方法1.${__javaScript((new Date()).getFullYear()+'-'+ ((new Date()).getMonth()+1) + '-' + (new Date()).getDate(),)}
方法2:${__time(yyyy-MM-dd,)}
11. JVM參數優化
修改jmeter.bat(windows下),jmeter.sh(linux下)
我優化后使用的參數是
JVM_ARGS="-Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedOops"
12.提取JDBC請求獲取的值
填寫JDBC REquest中的Variable names,如username,引用時寫作"${username_取的第幾個行}",如,獲取第一行,寫作"${username_1}"