服务商创建并保存计算巢服务后,需要对该服务进行测试,测试通过后再提交审核。本文介绍服务商对服务进行可用性和服务模板进行测试操作的详细步骤。
服务商测试服务包含手动测试和自动测试两种方式。您可以根据服务实际情况选择测试方式。
-
手动测试:使用服务实例部署链接,以用户的视角在自己的账号下部署服务实例。
-
自动测试:针对不同模板创建测试用例,并可通过创建测试任务验证模板准确性。测试用例会随着服务版本进行继承,方便进行回归测试,确保服务迭代的准确性。同时,串联服务审核流程,在提交审核时自动触发服务进行自动测试。
手动测试
使用服务实例部署链接,在自己账户下进行服务实例的创建,验证服务实例的部署操作。
如需申请试用云资源进行服务测试,请参考配置免费试用。
-
登录计算巢控制台。
-
找到已保存的服务。单击服务名称进入服务详情页。
-
单击服务测试,然后单击测试链接进入服务实例创建页面。
在创建服务实例页面中,测试服务实例的界面内容。
-
完成测试后,在服务详情的服务测试页签中展示测试成功。测试完成后,页面显示测试成功,表示服务实例创建完成,服务可用性验证通过。
自动测试
创建测试用例,在测试用例中对模板的参数进行自定义。创建的测试用例会与审核服务关联,在提交审核时自动触发测试用例对服务进行测试。测试用例会被该服务一直继承,当服务升级或更新后,新版本的服务会继承之前服务的测试用例,方便进行回归测试。
若不添加测试用例,在提交审核服务时将不会触发自动测试功能。
测试用例配置说明
测试用例配置是一个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和安全组会在任务运行时会自动生成,也支持用户自定义。
创建任务
在计算巢账号下选择指定模板和测试用例对服务进行测试。
-
在测试任务处,单击创建任务,并在弹窗中配置任务信息。
-
设置测试任务的名称。
-
选择服务模板和测试用例。
若您有多个模板时,您可以针对每个模板添加测试用例。
-
选择任务执行地域。
若未选择任务执行地域,则会从服务配置的部署地域中随机选择地域。在创建任务对话框中,填写任务名称,通过模板选择测试用例(可单击+ 添加模板和测试用例继续添加),选择任务执行地域(如未选择,则从服务配置部署地域随机选择),然后单击立即创建。
-
-
单击立即创建。
创建完成后,您可在任务列表中查看任务进度。创建成功后,在 测试任务 列表中可查看已创建的任务记录,包含 任务名称、地域、测试用例、执行状态 等信息,此时任务的执行状态为 运行中。
-
查看报告。
任务执行完后,您可以在执行报告中查看测试配置和测试用例信息。
-
单击测试任务的测试名称前的
,然后单击详情。 -
在查看报告弹窗中,查看任务的测试配置,地域和资源栈等信息。测试报告弹窗包含两个区域:测试配置区域展示模板的 YAML 参数,包括
SystemDiskSize、PayType、DataDiskSize、InstanceType、AllocatePublicIp、DataDiskCategory、InstancePassword、SystemDiskCategory等;测试用例区域以表格展示测试名、地域、资源栈、结果和测试日志,可单击查看链接查看对应测试日志详情。
-
-
查看日志。
您可以在日志中,查看生效参数信息、资源栈详细信息和报错信息等。弹窗中展示测试日志详情,包括
Region、StackName、StackId、TestedResult和ResultReason等字段。例如当测试结果为Failed时,错误原因可能为StackValidationFailed,提示Resources.Database.Condition: Unrecognized value 'Please fill in',表示参数值不合法,可接受值包括'0'、'1'、'true'、'false'、'yes'、'no'、'on'、'off'等布尔类型值。
相关错误及解决方案
此处列举测试服务常见的错误日志和解决方法。
-
错误日志信息:“IacerException, can not find any available value for ZoneId in cn-qingdao region in [] for default”错误日志中
TestedResult为Failed,ResultReason显示IacerException, can not find any available value for ZoneId in {region}。解决方法:当前地域没有相应的资源,需指定其他地域执行。
-
错误日志信息:“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。
-
-