Compute Nest サービスを作成して保存した後、レビューに提出する前に、サービスの可用性とサービス テンプレートをテストします。
サービスプロバイダーは、手動テストまたは自動テストを使用してサービスをテストできます。 ご利用のサービスに最適な方法を選択してください。
-
手動テスト:サービスインスタンスのデプロイリンクを使用して、ユーザーの視点から自身のアカウントにサービスインスタンスをデプロイします。
-
自動テスト:さまざまなテンプレートのテストケースを作成し、テストタスクを実行してテンプレートの正確性を検証します。 テストケースは後続のサービスバージョンに継承されるため、イテレーションをまたいだリグレッションテストが可能になります。 自動テストは、レビューにサービスを提出すると自動的にトリガーされます。
手動テスト
サービスインスタンスのデプロイリンクを使用して、自身のアカウントにサービスインスタンスを作成し、デプロイプロセスを検証します。
サービステスト用のクラウドリソースの無料トライアルを申請する方法については、「無料トライアルの設定」をご参照ください。
-
Compute Nest コンソールにログインします。
-
保存したサービスを見つけます。 サービス名をクリックして、サービス詳細ページを開きます。
-
サービステスト タブをクリックし、テストリンクをクリックしてサービスインスタンス作成ページを開きます。
サービスインスタンス作成ページで、ユーザーインターフェイス (UI) を検証します。
-
テストが完了すると、[Service Test] タブに「Test successful」というメッセージが表示されます。 これにより、サービスインスタンスが作成され、サービスが利用可能であることが確認できます。
自動テスト
テストケースを作成して、サービス テンプレートのパラメーターをカスタマイズします。 テストケースはサービスレビュープロセスと連携しており、レビューにサービスを提出すると自動的に実行されます。 テストケースは後続のすべてのサービスバージョンに継承されるため、サービスのアップグレードまたは更新時にリグレッションテストが可能になります。
テストケースを追加しない場合、レビューにサービスを提出しても自動テストは実行されません。
テストケースの設定
テストケースは 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 |
はい |
1 回のテストで Resource Orchestration Service (ROS) テンプレートを実行するためのパラメーターです。 |
-
課金方法を指定する
InstanceChargeTypeパラメーターは、後払いに設定する必要があります。 -
詳細については、「疑似パラメーター」をご参照ください。
$[iact3-auto]疑似パラメーターは、利用可能なオプションからランダムな値を自動的に選択します。 現在のリージョンで利用可能な定義済みのクラウドリソースを自動的に選択します。 -
VPC、ゾーン、vSwitch、セキュリティグループなど、リージョン (
region) に密接に関連するプロパティは、タスクの実行時に自動的に生成されます。 これらのプロパティは、ユーザーがカスタマイズすることも可能です。
テストタスクの作成
テストを実行するには、Compute Nest アカウントでテンプレートとテストケースを選択します。
-
テストタスク セクションで、タスクの作成 をクリックします。 表示されるダイアログボックスで、タスク情報を設定します。
-
テストタスクの名前を設定します。
-
サービス テンプレートとテストケースを選択します。
複数のテンプレートがある場合は、テンプレートごとにテストケースを追加できます。
-
タスクを実行するリージョンを選択します。
リージョンを選択しない場合、サービスに設定されているデプロイリージョンからランダムに 1 つ選択されます。
-
-
今すぐ作成する をクリックします。
タスクを作成した後、タスクリストで進捗状況を確認できます。 タスクは [Test Tasks] リストに表示されます。 リストには、[Task Name]、[Region]、[Test Case]、[Execution Status] などの情報が含まれます。 初期の実行ステータスは 実行中 です。
-
レポートの表示
タスクが完了した後、実行レポートでテスト設定とテストケース情報を表示できます。
-
テストタスク名の横にある
アイコンをクリックし、詳細 をクリックします。 -
[Test Report] ダイアログボックスで、タスクのテスト設定、リージョン、およびスタックを確認します。 このダイアログボックスには 2 つのセクションがあります。 [Test Configuration] セクションには、
SystemDiskSize、PayType、DataDiskSize、InstanceType、AllocatePublicIp、DataDiskCategory、InstancePassword、SystemDiskCategoryなど、テンプレートの YAML パラメーターが表示されます。 [Test Case] セクションには、テスト名、リージョン、スタック、結果、およびテストログが表形式で表示されます。 [View] リンクをクリックすると、対応するテストログの詳細を表示できます。
-
-
ログの表示
ログでは、有効なパラメーター、スタックの詳細、エラーメッセージなどの情報を確認できます。 ログ詳細ダイアログボックスには、
Region、StackName、StackId、TestedResult、ResultReasonなどのフィールドが表示されます。 たとえば、テスト結果が失敗の場合、理由はStackValidationFailedで、メッセージは"Resources.Database.Condition: Unrecognized value 'Please fill in'"のようになります。 これは、パラメーター値が無効であることを示します。 ブール型の有効な値には、'0'、'1'、'true'、'false'、'yes'、'no'、'on'、'off'があります。
一般的なエラーと解決策
以下に、サービスをテストする際の一般的なエラーとその解決策を示します。
-
エラーメッセージ:エラーログでは、
TestedResultが失敗であり、ResultReasonには"IacerException, can not find any available value for ZoneId in {region}"と表示されます。 例: "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] 疑似パラメーターを使用して、パラメーター値を自動的に入力します。 疑似パラメーターは、次のシナリオでサポートされます:
-
パラメーターがその制約を照会するための API をサポートしている場合。 パラメーターに対して
GetTemplateParameterConstraintsAPI を呼び出すと、API はAllowedValuesのリストを返します。 -
パラメーター名に特定の意味があるか、明確なリソースタイプを示す場合。 この場合、疑似パラメーターは適切な値を自動的に取得します。
-
VpcId、VswitchId、SecurityGroupIdなどのパラメーターの場合、疑似パラメーターは現在のリージョンから対応するインスタンス ID を自動的に選択します。 -
VpcName、Password、Uuidなどのパラメーターの場合、疑似パラメーターは名前、パスワード、または UUID 値をランダムに生成します。 -
疑似パラメーターは、次の正規表現に一致する名前をサポートします:
-
パラメーター名が正規表現
vpc(_|)idに一致する場合、現在のリージョンからランダムなVpcId値を自動的に取得します。 -
パラメーター名が
v(_|)switch(_|)idに一致する場合、現在のリージョンからVswitchId値を自動的に取得します。 パラメーター名にzone(_|)idに一致する値も含まれている場合、対応するゾーン内の vSwitch の ID を照会します。 -
パラメーター名が
security(_|)group(_id|id)に一致する場合、セキュリティグループ情報を自動的に取得します。 -
パラメーター名が正規表現
\w*nameに一致する場合、iacer-で始まるランダムな文字列を生成します。 -
パラメーター名が正規表現
\w*passwordに一致する場合、大文字、小文字、数字、特殊文字を含むランダムなパスワードを生成します。 -
パラメーター名が正規表現
\w*uuidに一致する場合、UUID を自動的に生成します。
-
-