Configurar um teste de carga YAML
Saiba como configurar seu teste de carga no Teste de Carga do Azure usando YAML. Use o arquivo YAML de configuração de teste para criar e executar testes de carga do fluxo de trabalho de CI/CD (integração contínua e entrega contínua).
Sintaxe YAML de teste de carga
Uma configuração de teste de carga usa as seguintes chaves:
Chave | Tipo | Obrigatório | Valor padrão | Descrição |
---|---|---|---|---|
version |
string | Y | Versão de especificação de teste de carga. O único valor com suporte é v0.1 . |
|
testId |
string | Y | Identificador exclusivo do teste de carga. O valor deve estar entre 2 e 50 caracteres ([a-z0-9_-]). Para um teste existente, você pode obter o testId na página de detalhes do teste no portal do Azure. |
|
testName |
string | N | Preterido. Identificador exclusivo do teste de carga. Essa configuração é substituída por testId . Você ainda pode executar testes existentes com o testName campo. |
|
displayName |
string | N | Nome de exibição do teste. Esse valor é mostrado na lista de testes no portal do Azure. Se não for fornecido, testId é usado como o nome para exibição. |
|
description |
string | N | Breve descrição do teste. O valor tem um comprimento máximo de 100 caracteres. | |
testType |
string | Y | Tipo de teste. Valores possíveis:
|
|
testPlan |
string | Y | Referência ao arquivo de plano de teste.
|
|
engineInstances |
Número inteiro | Y | Número de instâncias do mecanismo de teste paralelo para executar o plano de teste. Saiba mais sobre como configurar a carga em alta escala. | |
configurationFiles |
matriz de cadeias de caracteres | N | Lista de arquivos externos, exigidos pelo script de teste. Por exemplo, arquivos de dados CSV, imagens ou qualquer outro arquivo de dados. O Teste de Carga do Azure carrega todos os arquivos na mesma pasta que o script de teste. No script JMeter, consulte apenas arquivos externos usando o nome do arquivo e remova qualquer informação de caminho de arquivo. |
|
failureCriteria |
objeto | N | Lista de critérios de falha no teste de carga. Consulte failureCriteria para obter mais detalhes. | |
autoStop |
cadeia de caracteres ou objeto | N | Pare automaticamente o teste de carga quando a porcentagem de erro exceder um valor. Valores possíveis: - disable : não interrompa um teste de carga automaticamente.- Objeto: Consulte Configuração de parada automática para obter mais detalhes. |
|
properties |
objeto | N | Referências do arquivo de propriedade do usuário JMeter. Consulte as propriedades para obter mais detalhes. | |
zipArtifacts |
matriz de cadeias de caracteres | N | Especifica a lista de arquivos de artefato zip. Para arquivos diferentes de scripts JMeter e propriedades de usuário, se o tamanho do arquivo exceder 50 MB, compacte-os em um arquivo ZIP. Certifique-se de que o arquivo ZIP permaneça abaixo de 50 MB de tamanho. Apenas 5 artefatos ZIP são permitidos com um máximo de 1000 arquivos em cada e tamanho descompactado de 1 GB. Aplica-se somente quando testType: JMX . |
|
splitAllCSVs |
boolean | N | Falso | Divida os arquivos CSV de entrada uniformemente em todas as instâncias do mecanismo de teste. Para obter mais informações, consulte Leitura de um arquivo CSV em testes de carga. |
secrets |
objeto | N | Lista de segredos referenciados pelo script Apache JMeter. Veja segredos para mais detalhes. | |
env |
objeto | N | Lista de variáveis de ambiente às quais o script Apache JMeter faz referência. Consulte variáveis de ambiente para obter mais detalhes. | |
certificates |
objeto | N | Lista de certificados do cliente para autenticação com pontos de extremidade de aplicativo no script JMeter. Consulte certificados para obter mais detalhes. | |
keyVaultReferenceIdentity |
string | N | ID de recurso da identidade gerenciada atribuída pelo usuário para acessar os segredos de seu Azure Key Vault. Se você usar uma identidade gerenciada pelo sistema, essas informações não serão necessárias. Certifique-se de conceder a essa identidade atribuída pelo usuário acesso ao cofre de chaves do Azure. Saiba mais sobre identidades gerenciadas no Teste de Carga do Azure. | |
subnetId |
string | N | ID de recurso da sub-rede de rede virtual para testar pontos de extremidade hospedados de forma privada. Essa sub-rede hospeda as VMs do mecanismo de teste injetado. Para obter mais informações, confira como carregar pontos de extremidade hospedados de modo privado. | |
publicIPDisabled |
boolean | N | Desative a implantação de um endereço IP público, balanceador de carga e grupo de segurança de rede ao testar um ponto de extremidade privado. Para obter mais informações, confira como carregar pontos de extremidade hospedados de modo privado. |
Exemplo de configuração de teste de carga
O trecho de YAML a seguir contém um exemplo de configuração de teste de carga.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
subnetId: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.Network/virtualNetworks/load-testing-vnet/subnets/load-testing
configurationFiles:
- 'sampledata.csv'
zipArtifacts:
- bigdata.zip
splitAllCSVs: True
failureCriteria:
- avg(response_time_ms) > 300
- percentage(error) > 50
- GetCustomerDetails: avg(latency) >200
autoStop:
errorPercentage: 80
timeWindow: 60
secrets:
- name: my-secret
value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
keyVaultReferenceIdentity: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity
Configuração de failureCriteria
Os critérios de falha de teste permitem definir condições para determinar se uma execução de teste de carga foi bem-sucedida ou não. Se um ou mais critérios de reprovação forem atendidos, o teste obterá um resultado de teste com falha. Saiba mais sobre como usar critérios de falha de teste de carga.
Você pode definir critérios de falha que se aplicam a todo o teste de carga ou que se aplicam a uma solicitação específica. Os critérios de falha têm a seguinte estrutura:
- Critérios de teste no nível do teste de carga:
Aggregate_function (client_metric) condition threshold
. - Critérios de teste aplicados a solicitações JMeter específicas:
Request: Aggregate_function (client_metric) condition threshold
.
Métricas de cliente suportadas
O Teste de Carga do Azure dá suporte às seguintes métricas de cliente:
Métrica | Função de agregação | Limite | Condição | Descrição |
---|---|---|---|---|
response_time_ms |
avg (média)min (mínimo)max (máximo)pxx (percentil), xx pode ser 50, 90, 95, 99 |
Valor inteiro, representando o número de milissegundos (ms). | > (maior que)< (menor que) |
Tempo de resposta ou tempo decorrido, em milissegundos. Saiba mais sobre o tempo decorrido na documentação do Apache JMeter. |
latency |
avg (média)min (mínimo)max (máximo)pxx (percentil), xx pode ser 50, 90, 95, 99 |
Valor inteiro, representando o número de milissegundos (ms). | > (maior que)< (menor que) |
Latência em milissegundos. Saiba mais sobre a latência na documentação do Apache JMeter. |
error |
percentage |
Valor numérico no intervalo de 0 a 100, representando uma porcentagem. | > (maior que) |
Porcentagem de solicitações com falha. |
requests_per_sec |
avg (média) |
Valor numérico com até duas casas decimais. | > (maior que) < (menor que) |
Número de solicitações por segundo. |
requests |
count |
Valor inteiro. | > (maior que) < (menor que) |
Número total de solicitações. |
Exemplo de configuração de critérios de falha
O trecho de código a seguir mostra uma configuração de teste de carga, que tem três critérios de falha no teste de carga.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
failureCriteria:
- avg(response_time_ms) > 300
- percentage(error) > 50
- GetCustomerDetails: avg(latency) >200
Configuração de autoStop
A funcionalidade de parada automática de teste de carga permite que você interrompa automaticamente um teste de carga quando a porcentagem de erro exceder um limite específico durante uma determinada janela de tempo. Saiba mais sobre a funcionalidade de parada automática de teste de carga.
Chave | Type | Valor padrão | Descrição |
---|---|---|---|
errorPercentage |
Número inteiro | 90 | Limite para a porcentagem de erro, durante o timeWindow . Se a porcentagem de erro exceder essa porcentagem durante uma determinada janela de tempo, a execução de teste será interrompida automaticamente. |
timeWindow |
Número inteiro | 60 | Janela de tempo em segundos para calcular o errorPercentage . |
Exemplo de configuração de parada automática
O trecho de código a seguir mostra uma configuração de teste de carga, que tem três critérios de falha no teste de carga.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
autoStop:
errorPercentage: 80
timeWindow: 60
Configuração de properties
Você pode especificar um arquivo de propriedades de usuário do JMeter para seu teste de carga. O arquivo de propriedades do usuário é carregado junto com o plano de teste e outros arquivos. Saiba mais sobre como usar as propriedades de usuário do JMeter no Teste de Carga do Azure.
Chave | Type | Valor padrão | Descrição |
---|---|---|---|
userPropertyFile |
string | Arquivo a ser usado como arquivo de propriedades de usuário do Apache JMeter. O arquivo é carregado no recurso de Teste de Carga do Azure junto com o script de teste do JMeter e outros arquivos de configuração. Se o arquivo estiver em uma subpasta no computador local, use um caminho relativo ao local do script de teste. |
Exemplo de configuração do arquivo de propriedade do usuário
O trecho de código a seguir mostra uma configuração de teste de carga, que especifica um arquivo de propriedades do usuário.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
properties:
userPropertyFile: 'user.properties'
Configuração de secrets
Você pode armazenar valores secretos no Cofre de Chaves do Azure e fazer referência a eles em seu plano de teste. Saiba mais sobre como usar segredos com o Teste de Carga do Azure.
Chave | Type | Valor padrão | Descrição |
---|---|---|---|
name |
string | Nome do segredo. Esse nome deve corresponder ao nome secreto que você usa nas solicitações de plano de teste. | |
value |
string | URI (identificador secreto) para o segredo do Azure Key Vault. |
Exemplo de configuração de segredos
O trecho de código a seguir mostra uma configuração de teste de carga, que faz referência a um segredo my-secret
no Cofre de Chaves do Azure.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
secrets:
- name: my-secret
value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
Configuração de env
Você pode especificar variáveis de ambiente e fazer referência a elas em seu plano de teste. Saiba mais sobre como usar variáveis de ambiente com o Teste de Carga do Azure.
Chave | Type | Valor padrão | Descrição |
---|---|---|---|
name |
string | Nome da variável de ambiente. Esse nome deve corresponder ao nome da variável que você usa nas solicitações do plano de teste. | |
value |
string | Valor da variável de ambiente. |
Exemplo de configuração de variável de ambiente
O trecho de código a seguir mostra uma configuração de teste de carga, que especifica uma variável my-variable
de ambiente e um valor my-value
.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
env:
- name: my-variable
value: my-value
Configuração de certificates
Você pode passar certificados de cliente para seu teste de carga. O certificado é armazenado no Cofre de Chaves do Azure. Saiba mais sobre como usar certificados de cliente com o Teste de Carga do Azure.
Chave | Type | Valor padrão | Descrição |
---|---|---|---|
name |
string | Nome do certificado. | |
value |
string | URI (identificador secreto) para o certificado no Azure Key Vault. |
Exemplo de configuração de certificado
O trecho de código a seguir mostra uma configuração de teste de carga, que faz referência a um certificado de cliente no Cofre de Chaves do Azure.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
certificates:
- name: my-certificate
value: https://akv-contoso.vault.azure.net/certificates/MyCertificate/abc1234567890def12345
Solicita arquivo JSON
Se você usar um teste baseado em URL, poderá especificar as solicitações HTTP em um arquivo JSON em vez de usar um script de teste do JMeter. Certifique-se de definir o testType
para URL
no arquivo YAML de configuração de teste e fazer referência ao arquivo JSON de solicitações.
Solicitações HTTP
O arquivo JSON de solicitações usa as seguintes propriedades para definir solicitações na requests
propriedade:
Propriedade | Type | Descrição |
---|---|---|
requestName |
string | Nome de solicitação exclusivo. Você pode fazer referência ao nome da solicitação ao configurar os critérios de falha de teste. |
responseVariables |
matriz | Lista de variáveis de resposta. Use variáveis de resposta para extrair um valor da solicitação e fazer referência a ele em uma solicitação subsequente. Saiba mais sobre variáveis de resposta. |
responseVariables.extractorType |
string | Mecanismo para extrair um valor da saída de resposta. Os valores com suporte são XPathExtractor , JSONExtractor e RegularExpression . |
responseVariables.expression |
string | Expressão para recuperar a saída da resposta. A expressão depende do valor do tipo de extrator. |
responseVariables.variableName |
string | Nome exclusivo da variável de resposta. Você pode fazer referência a essa variável em uma solicitação subsequente usando a {$variable-name} sintaxe. |
queryParameters |
matriz | Lista de parâmetros de cadeia de caracteres de consulta a serem passados para o ponto de extremidade. |
queryParameters.key |
string | Nome do parâmetro da cadeia de caracteres de consulta. |
queryParameters.value |
string | Valor do parâmetro de cadeia de caracteres de consulta. |
requestType |
string | Tipo de solicitação. Os valores suportados são: URL ou CURL . |
endpoint |
string | URL do ponto de extremidade do aplicativo a ser testado. |
headers |
matriz | Lista de cabeçalhos HTTP a serem passados para o ponto de extremidade do aplicativo. Especifique um par chave-valor para cada cabeçalho. |
body |
string | Corpo de texto para a solicitação HTTP. Você pode usar o para especificar o requestBodyFormat formato do conteúdo do corpo. |
requestBodyFormat |
string | Formato do conteúdo do corpo. Os valores compatíveis são: Text , JSON , JavaScript , HTML e XML . |
method |
string | Método HTTP para invocar o ponto de extremidade. Os valores suportados são: GET , , , DELETE , , POST PATCH PUT e . HEAD OPTIONS |
curlCommand |
string | comando cURL a ser executado. Requer que o requestType é CURL . |
O trecho JSON a seguir contém um exemplo de arquivo JSON de solicitações:
{
"version": "1.0",
"scenarios": {
"requestGroup1": {
"requests": [
{
"requestName": "add",
"responseVariables": [],
"queryParameters": [
{
"key": "param1",
"value": "value1"
}
],
"requestType": "URL",
"endpoint": "https://www.contoso.com/orders",
"headers": {
"api-token": "my-token"
},
"body": "{\r\n \"customer\": \"Contoso\",\r\n \"items\": {\r\n\t \"product_id\": 321,\r\n\t \"count\": 50,\r\n\t \"amount\": 245.95\r\n }\r\n}",
"method": "POST",
"requestBodyFormat": "JSON"
},
{
"requestName": "get",
"responseVariables": [],
"requestType": "CURL",
"curlCommand": "curl --request GET 'https://www.contoso.com/orders'"
},
],
"csvDataSetConfigList": []
}
},
"testSetup": [
{
"virtualUsersPerEngine": 1,
"durationInSeconds": 600,
"loadType": "Linear",
"scenario": "requestGroup1",
"rampUpTimeInSeconds": 30
}
]
}
Configuração de carga
O arquivo JSON de solicitações usa as seguintes propriedades para definir a configuração de carga na testSetup
propriedade:
Propriedade | Tipo | Tipo de carga | Descrição |
---|---|---|---|
loadType |
string | Tipo de padrão de carga. Os valores suportados são: linear , step e spike . |
|
scenario |
string | Referência ao grupo de solicitações, especificado na scenarios propriedade. |
|
virtualUsersPerEngine |
Número inteiro | Tudo | Número de usuários virtuais por instância do mecanismo de teste. |
durationInSeconds |
Número inteiro | Tudo | Duração total do teste de carga em segundos. |
rampUpTimeInSeconds |
Número inteiro | Linear, Passo | Duração em segundos para aumentar o número alvo de usuários virtuais. |
rampUpSteps |
Número inteiro | Etapa | O número de etapas para atingir o número alvo de usuários virtuais. |
spikeMultiplier |
Número inteiro | Pico | O fator para multiplicar o número de usuários de destino durante a duração do pico. |
spikeHoldTimeInSeconds |
Número inteiro | Pico | Duração total em segundos para manter a carga de pico. |
Conteúdo relacionado
- Saiba como criar testes de regressão automatizados em seu fluxo de trabalho de CI/CD.
- Saiba como parametrizar testes de carga com segredos e variáveis de ambiente.
- Saiba como realizar o teste de carga de pontos de extremidade protegidos.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de