應用測試
應用配置好了以後,我們可以手動測試配置是否如何預期,也可以編寫測試用例來驗證。
同時,編寫好的測試用例,也可以用於每次配置變更後的回歸測試, 還可以配合灰度釋出功能,用於正式釋出前的回歸測試。
我們先看下如何新增測試用例。
首先,我們需要輸入測試名字,方便用於區分不同的測試。
再主要就是用 TestML 這種小語言來描述:用於測試的請求資訊,以及期望的輸出。
比如這裡我們加一個簡單的測試 (也可以輸入多個測試用例,用三個空行隔開),
意思是向被測試節點傳送請求:http://openresty.com/,
期望得到 301 的返回,並且請求頭中包含期望的 Location 地址,和 Server 標識,
響應體中包含 301 Moved Permanently
這個 HTML title 。
具體來說,===
段表示該測試的名字,
---
段表示測試的具體內容,比如:
url
: 用於指定請求的 URL,
host
: 用於指定請求的 Host,
ssl
: 用於指定請求是否是 HTTPS 請求,預設是 HTTP,
req_headers
: 用於指定請求頭,預設是沒有請求頭,一行表示一對請求頭,
status
:用於指定期望的響應狀態碼,
resp_headers
:用於指定期望的響應頭,一行表示一對響應頭,
resp_header_pat
:用於指定期望的響應頭的正則匹配模式,跟 resp_headers
類似,只是 value 值部分可以用正則來表達,
resp_body_pat
:用於指定期望的響應體的正則匹配模式。
儲存成功後,會跳轉到測試用例列表,我們可以選擇一個測試來執行。
首先我們需要選擇執行哪一個測試。
然後需要指定被測試的閘道器節點,可以選擇某些節點,也可以全選。
選中某個閘道器節點則意味著,將會從 admin 節點向這個閘道器節點傳送測試用例裡描述的請求(透過節點的外網 IP), HTTP 請求會走 80 埠,HTTPS 請求則會走 443 埠(還不支援指定特殊的埠), 然後將獲取到的響應狀態碼,響應頭以及響應體,跟測試用例裡描述的期望的值逐個進行對比, 如果符合期望值,則該測試點透過,在結果欄裡將會有一個綠色的勾, 如果不符合期望值,則該測試點失敗,在結果欄裡將會有一個紅色的叉。 所以,一個測試用例也可能會有多條測試結果輸出(取決於測試裡寫的期望值多少)。
選擇執行後,我們會看到測試結果的實時輸出。