Às vezes, quando você configura o monitoramento HTTP(S) para verificar o desempenho do seu site ou API, você precisa enviar solicitações HTTP com uma carga útil que muda dinamicamente. Por exemplo, você pode precisar enviar um JSON com um ID de produto exclusivo para adicionar um novo produto ao banco de dados do aplicativo de comércio eletrônico, ou uma data e hora reais para um servidor web, etc. Ou, digamos, você precisa parametrizar uma carga útil para carregar a sua API.

O Dotcom-Monitor suporta a sintaxe razor e máscaras de dados para permitir que os usuários configurem solicitações HTTP de mudança dinâmica e parametrizada para fins de monitoramento da Web e testes de carga.

Geralmente, a configuração dinâmica da carga inclui duas etapas básicas:

  • Especificando dados do corpo com parâmetros dinâmicos (JSON, XML, Texto, JavaScript, HTML) no campo Post Data (Patch, Put).
  • Declarando um método de análise no campo Preparar script. Se o método de análise não for especificado, o sistema processará os dados do corpo como texto.

Se for necessário parametrizar os dados do corpo de uma solicitação HTTP, os parâmetros de contexto correspondentes podem ser declarados no campo Preparar script ou com a opção Gerenciar parâmetros de contexto.

Usando o mecanismo de navalha

Os dados json ou o conteúdo do script que é passado no corpo da solicitação HTTP podem ser alterados dinamicamente usando a sintaxe do motor Razor. Ao trabalhar com a sintaxe razor no campo Post Data, use o prefixo @ para marcar o texto a seguir como um elemento de código C# (expressões inline, blocos de declaração única ou bloco de várias instruções). Para obter mais informações sobre a sintaxe razor, visite https://www.w3schools.com/asp/razor_syntax.asp.

No caso de quaisquer erros detectados na sintaxe razor ao analisar o corpo de solicitação, um erro será gerado e adicionado ao relatório de execução do teste.

O Dotcom-Monitor suporta o modelo Razor (define a estrutura de uma mensagem de entrada Razor) com as seguintes propriedades:

  • @Model.DeviceID – uma variável que retorna um identificador exclusivo do dispositivo de monitoramento atual.
  • @Model.TaskID – uma variável que retorna um identificador único da tarefa de monitoramento atual.
  • @Model.SessionID – variável que retorna um identificador único da sessão de monitoramento atual.

Você pode usar parâmetros de contexto em expressões de Navalha. Para se referir a um parâmetro de contexto em uma expressão de Navalha, enrole a referência ao parâmetro de contexto nos suportes quadrados [ ] e inclua seu nome em duplas citações ” “:

@Model["ContextParameterName"]

Para notificar o sistema que os dados em um corpo de solicitação precisam ser analisados pelo mecanismo Razor, no campo Preparar script, adicione o método ProcessPostDataByRazor (currentTask). Caso contrário, os elementos de código do Post Data serão analisados como texto.

exemplo

Digamos que queremos enviar um ID do dispositivo e um marcador de teste em um órgão de solicitação HTTP, então precisamos configurar o campo Post Data como a seguir:

{ "Device": "@Model.DeviceID", "ContextTest": "@Model["Test"]" }

Em seguida, precisamos definir o valor do parâmetro de contexto e o método de análise no campo Preparar script:

context.Test = "Website Availability Monitoring";
ProcessPostDataByRazor(currentTask);

Onde o parâmetro currentTask não depende de um nome de tarefa e tem o tipo de tarefa que é processada atualmente.

Usando máscaras de dados em solicitações HTTP

Você pode referenciar parâmetros de contexto em um corpo POST envolvendo a referência de nome do parâmetro em sinais marcadores de ambos os lados. Assim, uma referência a um parâmetro de contexto “GUID” será inserida assim:

{"ContextGuid": "%%%Guid%%%"}

Aqui os sinais por cento dizem ao sistema que esta é uma referência de parâmetro de contexto e não uma parte de uma sequência.

Para notificar o sistema de que os dados em um corpo de solicitação precisam ser analisados por uma máscara especificada, no campo Preparar script, adicione o ProcessPostDataByMask (currentTask, “marker signs”). Caso contrário, o parâmetro de contexto será ignorado e passado como texto. Para o exemplo fornecido acima, o campo Preparar script conteria a seguinte sequência:

ProcessPostDataByMask(currentTask, "%%%");

Onde o parâmetro currentTask não depende de um nome de tarefa e tem o tipo de tarefa que é processada atualmente.