今天在做服務發布性能測試的時候,傻傻的犯了個錯,沒有對參數進行仔細的檢查,直接從fiddler中copy到jmeter中了,業務流程配置好后執行測試報錯。。。
jmeter中的響應結果如下:
java.net.URISyntaxException: Illegal character in query at index 222: http://xxx.xx.xx.24:9006/xx-cloud/rest/china1_10/wmts?service=WMTS&...&width=256&tileSize=256&fullExtent=[object Object]&tilematrix=10&tilerow=146&tilecol=820 at java.net.URI$Parser.fail(URI.java:2848) at java.net.URI$Parser.checkChars(URI.java:3021) at java.net.URI$Parser.parseHierarchical(URI.java:3111) at java.net.URI$Parser.parse(URI.java:3053) at java.net.URI.<init>(URI.java:588) at java.net.URL.toURI(URL.java:946) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:331) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1146) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1135) at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:465) at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:410) at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:241) at java.lang.Thread.run(Thread.java:745)
仔細檢查了一下各控件的相關參數,感覺沒有什么問題,頓時萌幣了。
好吧,休息一下,想一想當初哪里的雷忘了排了,對照着原始Url仔細對比,發現響應報錯中fullExtent的參數值為[object Object],在請求中沒有進行轉碼,導致存在特殊符號“空格”,坑啊。。。
解決方法:
1、自動轉碼:
在jmeter的“HTTP請求”中勾選fullExtent參數后面的“編碼?”復選框,如下圖所示:
2、手動轉碼:
手動轉碼就簡單了,將fullExtent的參數值手動轉碼為[object%20Object]后對其賦值即可。
PS:任何事情都需要細致嚴謹,尤其做測試工作,2018年第一份隨筆,希望新的一年生活上家庭甜美,身體健康,工作上嚴謹細致,勇攀高峰!