Jmeter提供了JSR223 PreProcessor前置處理器,通過該工具融合了Java 8 Nashorn 腳本引擎,可以執行js腳本以便對腳本進行前置處理。其中比較典型的應用就是通過執行js腳本對前端數據進行rsa加密,如登錄密碼加密。但在這里我就簡單的應用javaScript生成當前時間來做為例子,看如何在JMeter中使用JavaScript腳本的。
整個實例就是為了演示在JSR223 PreProcessor中生成HTTP請求的一個入參,然后得到響應后,可以通過JSON Extractor取出指定想到的信息,再通過BeanShell Assertion進行簡單的校驗斷言,如果一直沒有問題,再發起一個HTTP請求,其中的一個參數就是上一個HTTP請求響應解析入來的值。
先來看JSR223 PreProcessor,內容如下:
其實就是通過JavaScript代碼獲得當前系統時間,轉換成指定格式,設置到變量里。然后在接下來的HTTP請求中應用這個變量。
然后是JSON Extractor從響應體中提取信息(特別說明:響應體是JSON格式的)
接下來就是斷言,在這里用BeanShell Assertion來做,如下所示:
接下來的HTTP請求,有用來前面設置的變量和響應解析出來的變量。
運行結果如下:
第一個請求的時間是當前時間,第二個請求的時間也是第一個請求前設置的時間,且radomCode就是第一個請求響應體通過JSON Extractor解析提取出來的變量值,且對第一個請求的BeanShell Assertion是通過的(不通過會結果樹會顯示紅色且顯示出錯信息)。