我有一個JMeter測試計劃,都到了網站的頁面的sitemap.xml,從一個網站地圖更換的$ {URL}的部分取回使用XPath提取該網頁上的每一個URL,然後通過$ {URL}發送到ForEach控制器內的HTTP請求採樣器,以將每個頁面的結果發送到文件。這很好,除非我意識到這個sitemap.xml頁面上的鏈接是硬編碼的。當我想測試https://staging-website.com時,這是一個問題,但sitemap.xml上的所有鏈接都是www.website.com頁面。似乎必須有一種方法可以用正則表達式或其他東西來替換每個$ {url}中的「www.website.com」和「staging-website.com」,但我一直無法弄清楚。任何建議將不勝感激。在JMeter中
Q
在JMeter中
1
A
回答
0
添加BeanShell的預處理器來處理的URL。
String sUrl = vars.get("url");
String sNewUrl = sUrl.replace("www.website.com", "https://staging-website.com");
log.info("sNewUrl:" + sNewUrl);
vars.put("url", sNewUrl);
您也可以嘗試將sitemap.xml的與位於直到www.website.com,讓你只提取數據,而不是完整的主機名的URL部分正則表達式提取相關。你是否應該擁有它,因爲HTTPSampler只允許你輸入URI段而不是主機名?
0
您可以利用現有的__strReplace()功能通過JMeter Plugins項目,如:
${__strReplace(${url},${url},staging-website.com,)}
演示:
安裝JMeter的自定義功能(以及任何其他插件),最簡單的方法是使用JMeter Plugins Manager
0
我能夠通過將
${__javaScript('${url}'.replace('www.website'\,'staging.website'))}
在第二HTTP請求採樣器的路徑輸入到替換的字符串內的主機。塞爾瓦和迪米特里提供的答案更加優雅,所以如果我有時間回到這個問題,我會再給他們一次嘗試。我非常感謝幫助!
相關問題
- 1. socket.io在JMeter中
- 2. Jmeter:如何解決java.io.NotSerializableException:org.apache.jmeter.JMeter $ ListenToTest在Jmeter中
- 3. jmeter - 如何在jmeter中使用Apache htpasswd
- 4. 如何在Jmeter中獲取Jmeter對象
- 5. 無法在JMeter中
- 6. 排除在JMeter中
- 7. 如何在JMeter中
- 8. 如何在JMeter中
- 9. 無法在JMeter中
- 10. 在Jmeter中提取PostBack值
- 11. 無法在Jmeter中記錄
- 12. 在jmeter中處理變量
- 13. 在JMeter中捕獲曲奇
- 14. 如何在JMeter中運行JMeter負載測試和JMeter Webdriver測試
- 15. Jmeter中的EventTarget
- 16. 中的JMeter
- 17. jmeter中的ClientProtocolException
- 18. JMeter中的ClassNotFoundException
- 19. 在JMeter的
- 20. 在的JMeter
- 21. 在的JMeter
- 22. AuthenticationFailedException在JMeter的
- 23. 在JMeter的
- 24. 在JMeter的
- 25. 在JMeter的
- 26. 在JMeter的
- 27. Jmeter- Web服務 - 在Jmeter中生成令牌密鑰
- 28. 的JMeter(無法在Ubuntu亞馬遜實例中運行的JMeter)
- 29. Jmeter:如何在Jmeter中使用ArrayList,Beanshell採樣器?
- 30. 如何在Jmeter中獲取jmeter腳本的目錄
我是新來的JMeter,我真的不明白哪裏放BeanShell的預處理器做測試之前每個URL的,以便替換。當我把它作爲ForEach控制器中HTTP請求的預處理器時,它不起作用。我錯過了一步嗎? – gallagher
根據您的描述,您正在使用XPath提取器來提取URL。一旦您將其提交,您將在下一個HTTP請求採樣器中提交它,以獲取從XPath Extractor獲取的URL的內容。在第二個HTTP採樣器中,您需要執行此操作。 – Selva