Após criar e salvar um serviço do Compute Nest, teste sua disponibilidade e o modelo de serviço antes de enviá-lo para revisão.
Provedores de serviços podem testar um serviço manualmente ou usar testes automatizados. Escolha o método mais adequado ao seu serviço.
Teste manual: use o link de implantação da instância de serviço para implantar uma instância em sua própria conta, simulando a perspectiva de um usuário.
Teste automatizado: crie casos de teste para diferentes modelos e execute tarefas de teste para verificar a precisão do modelo. Os casos de teste são herdados pelas versões subsequentes do serviço, o que permite testes de regressão entre iterações. O sistema aciona os testes automatizados automaticamente ao enviar um serviço para revisão.
Teste manual
Use o link de implantação da instância de serviço para criar uma instância em sua conta e verificar o processo de implantação.
Para solicitar um teste gratuito de um recurso de nuvem destinado a testes de serviço, consulte Configurar um teste gratuito.
Faça login no Compute Nest console.
Localize o serviço salvo. Clique em nome do serviço para abrir a página de detalhes.
-
Clique em aba Service Test e, em seguida, clique em link de teste para abrir a página de criação da instância de serviço.
Na página de criação da instância de serviço, verifique a interface do usuário (UI).
Após a conclusão do teste, a mensagem Test successful será exibida na aba Service Test. Isso confirma a criação da instância de serviço e a disponibilidade do serviço.
Teste automatizado
Crie um caso de teste para personalizar os parâmetros do modelo de serviço. O caso de teste se vincula ao processo de revisão do serviço e é executado automaticamente quando você envia o serviço para revisão. Todas as versões subsequentes do serviço herdam os casos de teste, o que permite realizar testes de regressão ao atualizar ou modificar o serviço.
Se você não adicionar um caso de teste, o teste automatizado não será executado quando você enviar o serviço para revisão.
Configuração do caso de teste
Um caso de teste é definido em um arquivo YAML. O exemplo a seguir mostra uma configuração de caso de teste para um serviço consul.
---
parameters:
SystemDiskSize: 100
PayType: "PostPaid"
DataDiskSize: 40
InstanceType: "$[iact3-auto]"
AllocatePublicIp: "true"
DataDiskCategory: "cloud_efficiency"
InstancePassword: "$[iact3-auto]"
SystemDiskCategory: "cloud_essd"
Você também pode clicar em Import Default Configurations na caixa de diálogo Add Test Case para importar a configuração padrão do caso de teste para o serviço. A configuração padrão utiliza os parâmetros definidos no modelo de serviço.
Parâmetros
A tabela a seguir descreve os campos em uma configuração de caso de teste.
|
Parâmetro |
Obrigatório |
Descrição |
|
specificationName |
Não |
Nome do conjunto de parâmetros. Os parâmetros neste conjunto não podem entrar em conflito com os parâmetros definidos na seção |
|
parameters |
Sim |
Parâmetros usados para executar o modelo do Resource Orchestration Service (ROS) em um único teste. |
Defina o parâmetro
InstanceChargeType, que especifica o método de faturamento, comoPostPaid.O pseudoparâmetro
$[iact3-auto]seleciona automaticamente um valor aleatório dentre as opções disponíveis. Ele escolhe automaticamente um recurso de nuvem definido entre aqueles disponíveis na região atual. Para obter mais informações, consulte Pseudoparâmetros.Propriedades fortemente associadas a uma região (
region), como VPC, zona, vSwitch e grupo de segurança, são geradas automaticamente durante a execução de uma tarefa. Essas propriedades também suportam personalização pelo usuário.
Criar uma tarefa de teste
Para executar um teste, selecione um modelo e um caso de teste em sua conta do Compute Nest.
-
Na seção Test Tasks, clique em Create Task. Na caixa de diálogo exibida, configure as informações da tarefa.
Defina um nome para a tarefa de teste.
-
Selecione um modelo de serviço e um caso de teste.
Se houver vários modelos, adicione um caso de teste para cada modelo.
-
Selecione a região onde deseja executar a tarefa.
Se nenhuma região for selecionada, o sistema escolherá uma aleatoriamente entre as regiões de implantação configuradas para o serviço.
-
Clique em Create Now.
Após criar a tarefa, acompanhe seu progresso na lista de tarefas. A tarefa aparecerá na lista Test Tasks. A lista contém informações como Task Name, Region, Test Case e Execution Status. O status inicial de execução é Running.
-
Visualize o relatório.
Depois que a tarefa for concluída, visualize a configuração de teste e as informações do caso de teste no relatório de execução.
Clique em ícone
ao lado do nome da tarefa de teste e, em seguida, clique em Details.Na caixa de diálogo Test Report, revise a configuração de teste, a região e a pilha da tarefa. A caixa de diálogo possui duas seções: a seção Test Configuration exibe os parâmetros YAML do modelo, como
SystemDiskSize,PayType,DataDiskSize,InstanceType,AllocatePublicIp,DataDiskCategory,InstancePasswordeSystemDiskCategory. A seção Test Case exibe o nome do teste, região, pilha, resultado e log de teste em uma tabela. Clique em link View para visualizar os detalhes do log de teste correspondente.
-
Consulte os logs.
É possível visualizar informações como parâmetros efetivos, detalhes da pilha e mensagens de erro nos logs. A caixa de diálogo de detalhes do log mostra campos como
Region,StackName,StackId,TestedResulteResultReason. Por exemplo, se o resultado do teste forFailed, o motivo pode serStackValidationFailedcom uma mensagem comoResources.Database.Condition: Unrecognized value 'Please fill in'. Isso indica um valor de parâmetro inválido. Valores válidos para tipos booleanos incluem'0','1','true','false','yes','no','on'e'off'.
Erros comuns e soluções
Veja a seguir erros comuns durante testes de serviço e suas respectivas soluções.
-
Mensagem de erro: No log de erros,
TestedResultaparece comoFailedeResultReasonmostraIacerException, can not find any available value for ZoneId in {region}. Um exemplo é "IacerException, can not find any available value for ZoneId in cn-qingdao region in [] for default".Solução: Não há recursos correspondentes disponíveis na região atual. Especifique uma região diferente para a tarefa.
-
Mensagem de erro: "Resources.TiDBServerScalingGroupEnable.Properties: : Unknown Property DetachOptions request id: 51341F62-56DC-xxxx-xxxx-xxx"
Solução: Um parâmetro no modelo é inválido. Modifique o parâmetro na configuração de teste com base na mensagem do log.
Pseudoparâmetros
Inserir manualmente parâmetros de teste para verificação funcional pode ser trabalhoso. Use o pseudoparâmetro $[iact3-auto] para preencher automaticamente os valores dos parâmetros. Os pseudoparâmetros são suportados nos seguintes cenários:
O parâmetro suporta uma API para consultar suas restrições. Ao chamar a operação
GetTemplateParameterConstraintspara o parâmetro, a operação retorna uma lista deAllowedValues.-
O nome do parâmetro tem um significado específico ou implica um tipo claro de recurso. Nesse caso, o pseudoparâmetro obtém automaticamente um valor apropriado.
Para parâmetros como
VpcId,VswitchIdeSecurityGroupId, o pseudoparâmetro seleciona automaticamente um ID de instância correspondente na região atual.Para parâmetros como
VpcName,PasswordeUuid, o pseudoparâmetro gera aleatoriamente um nome, senha ou valor UUID.-
O pseudoparâmetro suporta nomes que correspondem às seguintes expressões regulares:
Se o nome de um parâmetro corresponder à expressão regular
vpc(_|)id, ele obterá automaticamente um valor aleatório deVpcIdda região atual.Caso o nome do parâmetro corresponda a
v(_|)switch(_|)id, ele obterá automaticamente um valor deVswitchIdda região atual. Se o nome do parâmetro também contiver um valor que corresponda azone(_|)id, o sistema consultará o ID de um vSwitch na zona correspondente.Quando o nome do parâmetro corresponder a
security(_|)group(_id|id), as informações do grupo de segurança serão obtidas automaticamente.Se o nome do parâmetro corresponder à expressão regular
r'\w*name', uma string aleatória começando comiacer-será gerada.Ao corresponder à expressão regular
r'\w*password', uma senha aleatória contendo letras maiúsculas, minúsculas, dígitos e caracteres especiais será gerada.Se o nome do parâmetro corresponder à expressão regular
r'\w*uuid', um UUID será gerado automaticamente.