测试服务配置和参数
服务商创建并保存计算巢服务后,可以对服务中的模板参数和配置行测试,测试通过后再提交审核。测试服务模板可以发现模板问题,提升用户部署成功率。本文介绍服务商如何测试服务模板。
前提条件
本文的测试流程仅适用于服务模板的部署方式为ROS或者Terraform场景。
操作步骤
- 登录计算巢控制台。
选择以下任意一种方式进入服务展示页面。
在左侧导航栏中,选择
,进入未发布服务页面。在左侧导航栏中,选择
,进入已发布服务页面。
找到待测试的服务,单击服务名称,打开服务详情。
单击服务测试页签,配置相应内容。
在测试配置区域,填写服务测试模板,并单击保存配置。
您可以使用默认配置生成的测试模板,也可以自定义测试模板。更多信息,请参见测试配置模板说明。
重要您只能在未保存配置前获取默认配置,保存配置后,将无法再获取默认配置。
默认配置目标中,参数取值为
Please fill in
的参数,需要您手动填写实际参数值,否则测试会失败。
单击创建任务,在弹出框中根据界面提示,配置选择模板、任务名称和任务执行地域信息,然后单击确定。
选择模板中,选择测试配置的模板名称。
在任务列表中查看任务执行状态。
若执行失败,可单击查看报告列的查看按钮,进入页面查看测试日志。关于查看日志和常见报错,请参见常见日志报错。
测试配置模板说明
测试模板分为默认配置模板和自定义配置模板,默认配置模板中仅支持单个测试项,若您想同时测试多个测试项时,推荐使用自定义模板。此处以自定义模板为例,介绍模板的参数和注意事项。
模板示例
project: #必填,测试配置的通用属性
name: iacer-full-test #必填,测试配置的名字
specificationName: 套餐1 #非必填,project 中specificationName中的参数和parameter 定义的参数整体作为所有测试的公共参数,可以不定义,project的参数优先级大于 tests中的参数优先级
parameters: #非必填,tests中测试用例的公用参数
InstanceChargeType: PostPaid
NetworkType: vpc
AllocatePublicIP: false
InstanceName: '$[iacer-auto]'
Password: '$[iacer-auto]'
tests: #必填,测试用例名称,可以设置多个测试用例
default: #必填,完全独立运行的测试用例参数名称,该名称可以自定义
specificationName: 套餐1 #非必填,specificationName中的参数和parameter 定义的参数整体作为测试的参数集。specificationName可不定义
parameters: #非必填,定义各自独立运行的测试用例的参数
ZoneInfo: '$[iacer-auto]'
InstanceType: '$[iacer-auto]'
SystemDiskCategory: '$[iacer-auto]'
DataDiskCategory: '$[iacer-auto]'
SpecifiedInstanceType:
parameters:
ZoneInfo: '$[iacer-auto]'
InstanceType: 'ecs.r6e.large'
SystemDiskCategory: '$[iacer-auto]'
DataDiskCategory: '$[iacer-auto]'
模板参数说明
InstanceChargeType
(付费模式)的参数值必须定义成PostPaid
即按量付费。测试配置中取值为
$[iacer-auto]
的参数为伪参数,在测试时这部分参数会自动从该参数的可选值范围中随机选择一个值进行测试。与
Region
(地域)强相关的参数(如VPC、可用区、Vswitch和安全组),会在任务运行时自动生成,不允许在测试配置模板中自定义。
模板中各参数字段的说明如下表所示:
层级 | 参数 | 是否必填 | 参数说明 |
一级key | project | 是 | 测试配置的通用属性。 |
二级key | name | 是 | 测试配置的名字。 |
parameters | 否 | tests中测试用例的公用参数。 | |
specificationName | 否 | 套餐名字,并且套餐内参数和project.parameters参数不能相同。 | |
一级key | tests | 是 | 测试用例名称,可以设置多个测试用例。 |
二级key | default | 是 | 完全独立运行的测试用例参数名称,该名称可以自定义。 |
三级key | parameters | 否 | 定义各自独立运行的测试用例的参数。 |
specificationName | 否 | 套餐名字,套餐内参数和tests.default.parameters参数不能相同。 |
伪参数$[iacer-auto]即自动填写参数,在执行时可以自动从参数的可选值中随机选择一个值作为该参数的取值进行测试。如下两种情况支持自动获取。
所选参数支持参数接口查询。
参数名称具有特定的指向性比较明确的含义,计算巢会自动获取一个适当的参数值(如
VpcId
、VswitchId
、SecurityGroupId
等,会自动从当前地域下调用一个对应的实例ID)。以下参数已支持自动获取参数值:满足正则表达式
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值。
常见日志报错
任务执行失败后,可以单击查看日志来排查问题。此处列举了常见的日志报错和对应的解决方法。
错误信息:IacerException, can not find any available value for ZoneId in ap-south-1 region in [] for default。
错误解释:当前地域没有相应资源。
解决方法:请指定其他有相应资源的地域。
错误信息:Resources.TiDBServerScalingGroupEnable.Properties: : Unknown Property DetachOptions request id: 51341F62-56DC-xxxx-xxxx-D9DA7B6Exxxx
错误解释:模板参数错误。
解决方法:根据日志提示,修改模板内容。