我在JMeter中創建了一個簡單的測試用例。JMeter「忘記」通過Regular Expressioin Extractor定義的變量值
打開的形式和它的所有內容(CSS,圖像等):
- GET/
- GET /css/site.css
- GET /favicon.ico
- GET /字體/特定fonts.woff
- GET /images/banner.png
等待李ttle ...
後的值
- POST/
收到 「謝謝」 頁面。 - GET /謝謝
在第一個GET的響應是一個隱藏的輸入字段,其中包含一個令牌。這個令牌也需要包含在POST中。 現在我使用JMeter的「正則表達式提取器」從響應中獲取令牌。到現在爲止還挺好。 然後,在使用token參數值字段中的RegExp-Extractor中的變量名稱創建POST消息之後,將所有其他內容進行檢索。 但是......當執行測試用例時,它會填充給定的默認值而不是令牌的實際值。
所以......調試此問題的第一步是在獲取令牌後直接添加一個dummy-HTTP-GET請求。在這個GET請求中,我還添加了令牌變量作爲值的token參數,但是現在我可以通過查看我的web服務器上的訪問日誌來輕鬆檢查參數。 在這種情況下...該URL看起來很有前途。它包含GET中的實際標記值,但它仍然使用POST中的默認值。
調試的第二步是使用「調試採樣器」和「查看結果樹」。 通過在不同步驟之間移動Debug Sampler,我發現令牌變量的值在我收到CSS後回到默認值。
所以......現在最大的問題是...... 如何讓JMeter記住我的變量值直到我的測試腳本結束?
找到一種解決方法:-) ... 我沒有把第一個GET和正則表達式提取器放在一個簡單的控制器內。其餘的(除了計時器「等一下......」)仍然在主流中。 這解決了這個問題。 – user3472174