我使用JMeter測試Eclipse-RAP應用程序。
在RAP中,客戶端(瀏覽器中的JavaScript框架)通過基於json的協議與服務器進行通信。在請求之前操作httpsampler的post主體
的消息是這樣的:
{"head":{"requestCounter":3,"uiSessionId":"832834"},"operations":[["set","w1",{"bounds": [0,0,1680,893],"cursorLocation":[1262,-1]}]]}
正如你看到有存儲在uiSessionId. I extracted this id using a "Regular Expression Extractor" and stored it in a variable named
UI_SESSION_ID`一個會話ID。
然後我編輯的原始「帖子正文」記錄的HTTP請求的:
{"head":{"requestCounter":3,"uiSessionId":"${UI_SESSION_ID}"},"operations":[["set","w1",{"bounds": [0,0,1680,893],"cursorLocation":[1262,-1]}]]}
和它的作品。
但是我必須改變每個HTTP-Request的每個Post-Body可能很多。 一些研究,我想用一個「BeanShell的預處理器」將是正確的事情後,但:
var sampler = ctx.getCurrentSampler();
會給我一個HTTPSampler,我沒有找到任何這讓我找回體POST方法,更換會話ID與變量並設置更改後的主體。
的JavaDoc:http://jmeter.apache.org/api/org/apache/jmeter/protocol/http/sampler/HTTPSampler.html
你知道有什麼辦法可以代替uiSessionId
與變量,而無需手動更改每一個要求?