服務商建立並儲存計算巢服務後,需要對該服務進行測試,測試通過後再提交審核。本文介紹服務商對服務進行可用性和服務範本進行測試操作的詳細步驟。
服務商測試服務包含手動測試和自動化的測試兩種方式。您可以根據服務實際情況選擇測試方式。
手動測試:使用服務執行個體部署連結,以使用者的視角在自己的帳號下部署服務執行個體。
自動化的測試:針對不同模板建立測試案例,並可通過建立測試工作驗證模板準確性。測試案例會隨著服務版本進行繼承,方便進行迴歸測試,確保服務迭代的準確性。同時,串聯服務審核流程,在提交審核時自動觸發服務進行自動化的測試。
手動測試
使用服務執行個體部署連結,在自己賬戶下進行服務執行個體的建立,驗證服務執行個體的部署操作、
登入計算巢控制台。
找到已儲存的服務。單擊服務名稱進入服務詳情頁。
單擊服務測試,然後單擊測試連結進入服務執行個體建立頁面。
在建立服務執行個體頁面中,測試服務執行個體的介面內容。
完成測試後,在服務詳情的服務測試頁簽中展示測試成功。
自動化的測試
建立測試案例,在測試案例中對模板的參數進行自訂。建立的測試案例會與審核服務關聯,在提交審核時自動觸發測試案例對服務進行測試。測試案例會被該服務一直繼承,當服務升級或更新後,新版本的服務會繼承之前服務的測試案例,方便進行迴歸測試。
若不添加測試案例,在提交審核服務時將不會觸發自動化的測試功能。
測試案例配置說明
測試案例配置是一個YAML檔案,此處以consul
服務的測試案例設定檔資訊為例。
---
parameters:
SystemDiskSize: 100
PayType: "PostPaid"
DataDiskSize: 40
InstanceType: "$[iact3-auto]"
AllocatePublicIp: "true"
DataDiskCategory: "cloud_efficiency"
InstancePassword: "$[iact3-auto]"
SystemDiskCategory: "cloud_essd"
您也可以在新增測試案例彈窗中,單擊匯入預設配置,可以匯入該服務的預設測試案例配置。預設配置中的參數內容是基於服務範本中定義的參數解析的。
名稱解釋
模板中相關欄位含義如下。
參數名稱 | 是否必填 | 參數說明 |
specificationName | 否 | 套餐名稱。 套餐內的參數和parameters參數不允許有衝突。 |
parameters | 是 | 單個服務測試回合ROS模板的參數。 |
付費模式(
InstanceChargeType
)參數的值必須定義成PostPaid
。偽參數(
$[iact3-auto]
)會自動從該參數的可選值中隨機播放。定義的雲資源將自動從目前範圍下選擇可用的資源。更多資訊,請參見偽參數說明。與地區(
region
)強關聯的屬性Vpc、可用性區域、Vswitch和安全性群組會在任務運行時會自動產生,也支援使用者自訂。
建立任務
在計算巢帳號下選擇指定模板和測試案例對服務進行測試。
在測試工作處,單擊建立任務,並在彈窗中配置任務資訊。
設定測試工作的名稱。
選擇服務範本和測試案例。
若您有多個模板時,您可以針對每個模板添加測試案例。
選擇任務執行地區。
若未選擇任務執行地區,則會從服務配置的部署地區中隨機播放地區。
單擊立即建立。
建立完成後,您可在工作清單中查看任務進度。
查看報告。
任務執行完後,您可以在執行報告中查看測試組態和測試案例資訊。
單擊測試工作的測試名稱前的,然後單擊詳情。
在查看報告彈窗中,查看任務的測試組態,地區和資源棧等資訊。
查看日誌。
您可以在日誌中,查看生效參數資訊、資源棧詳細資料和報錯資訊等。
相關錯誤及解決方案
此處列舉測試服務常見的錯誤記錄檔和解決方案。
錯誤記錄檔資訊:“IacerException, can not find any available value for ZoneId in cn-qingdao region in [] for default”
解決方案:當前地區沒有相應的資源,需指定其他地區執行。
錯誤記錄檔資訊:“Resources.TiDBServerScalingGroupEnable.Properties: : Unknown Property DetachOptions request id: 51341F62-56DC-xxxx-xxxx-xxx”
解決方案:模板參數錯誤,根據日誌提示修改測試組態的參數。
偽參數說明
在功能驗證測試中,測試參數的填寫較困難和繁瑣,因此可以引入自動填寫參數的$[iact3-auto]
偽參數。以下兩種情況下支援使用偽參數自動擷取參數。
所選參數支援參數查詢介面(即調用
GetTemplateParameterConstraints
介面有返回AllowedValues
)。參數名稱具有特定含義或指向性比較明確時,偽參數會自動擷取一個適當的參數值。
如
VpcId
、VswitchId
、SecurityGroupId
等,偽參數會自動從當前地區下篩選一個對應的執行個體ID。如
VpcName
、Password
、Uuid
等,偽參數會隨機產生名稱、密碼和Uuid值。當前已支援的參數:
滿足正則
vpc(_|)id
時,會自動隨機擷取當前地區下的VpcId
值。滿足正則
v(_|)switch(_|)id
時,會自動擷取當前地區下的VswitchId
值(如果參中名稱有符合zone(_|)id
的值時,會查詢對應可用性區域的交換器的ID。)。滿足正則
security(_|)group(_id|id)
時,會自動擷取安全性群組資訊。滿足正則
r'\w*name'
時,會自動產生一個以iacer-開頭的隨機字串。滿足正則
r'\w*password'
時,會自動產生一個含有大小字母數字和特殊字元串的密碼串。滿足正則
r'\w*uuid'
時,會自動產生一個uuid。