Recording Test
Jmeter 要錄一隻測試需要透過 proxy 代理伺服器,透過代理伺服器將會記錄在網頁端口的網頁請求回應記錄。
以下先在 WorkBench 底下新增 (HTTP(S) Test Script Recorder) 代理伺服器,待會需要在代理伺服器設定(Port)阜號
WorkBench -> Add -> Non-Test Elements -> HTTP(S) Test Script Recorder
再來我們還需要在 Thread Group 底下新增 (Recording Controller) 錄製控制器,這個錄製控制器會記錄工作平台上透過代理伺服器錄製的每一個步驟。
Thread Group -> Add -> Logic Controller -> Recording Controller
接著我們回到 HTTP(S) Test Script Recorder 改一下阜號,確保不要跟其他 port 衝突就好,另外還有點就是 Target Controller 他可以選擇記錄在哪個錄製控制器 (Recorder Controller),最後就可以按 start 執行了。
他會跳出這個警告訊息,是需要你的授權,按 ok 就可以了。
切記,上面的步驟只是開啟代理伺服器,並且聽取 9999 PORT ,因此我們還需要告訴瀏覽器我們需要透過代理伺服器發出請求,所以我們仍要在瀏覽器上作設定
▼ mac Google chrome 設定 proxy 阜號記得改成你 proxy server 的 port ,像是我的上面的範例是要改成 9999。
▼ Win 10 Google chrome 設定 proxy 阜號記得改成你 proxy server 的 port ,像是我的上面的範例是要改成 9999。
Notice that :
錄製最好是從簽退開始最後錄製結束也要記得簽退,所以錄製流程是
簽退 -> 簽到 -> 操作交易 -> 簽退
,這樣才確保 cookie 是乾淨的。錄製交易時,請使用滑鼠點擊,鍵盤錄製交易事件並不會有反應,敬請注意。
Proxy 設定大致上完成了,我們可以直接連到我們欲測試的網址 127.0.0.1:8080
接著我們做一隻簡單的交易
做完交易我們可以回去查看 jmeter 所錄製的結果
先為我們的 Recording Controller 加上 View Results Tree ,以便了解我們的結果。
在 run 之前記得前把代理伺服器 stop ,run 完之後,我們可以點到 View Results Tree 裡面查看每一個 http request 的 request,你會發現到 no cookies ,但是理當來說在 428 /Gaea-ibr/?v-150361585389 這個 request 就會設定 cookie 了,但是為什麼到後面都會是沒有 cookie 呢?
原因是 Jmeter 也有他自己的暫存 cookies ,然而瀏覽器設定的 cookie 並不會自動指派暫存給 Jmeter 的 cookies,因此我們還需要另外透過 HTTP cookie manager ,用來取得瀏覽器的 cookies 暫存給 Jmeter 的 cookies。
我們需要在 Thread Group 裡新增 HTTP Cookie Manager 來暫存 cookie
Thread Group -> Add -> Config Element -> HTTP Cookie Manager
設定完 HTTP Cookie Manger 之後,我們再運行一次,將可以看到已經紀錄 cookie 了。
再去查看 response data 是否符合預期。