A veces, al configurar la supervisión HTTP(S) para comprobar el rendimiento de su sitio web o API, debe enviar solicitudes HTTP con una carga dinámicamente cambiante. Por ejemplo, es posible que deba enviar un JSON con un ID de producto único para agregar un nuevo producto a la base de datos de la aplicación de comercio electrónico, o una fecha y hora reales a un servidor web, etc. O bien, supongamos que debe parametrizar una carga útil para cargar la API.

Dotcom-Monitor admite la sintaxis de Razor y máscaras de datos para permitir a los usuarios configurar solicitudes HTTP dinámicamente cambiantes y parametrizadas para fines de supervisión web y pruebas de carga.

Por lo general, la configuración dinámica de la carga útil incluye dos pasos básicos:

  • Especificar datos de cuerpo con parámetros dinámicos (JSON, XML, Texto, JavaScript, HTML) en el campo Publicar datos (parche, colocar).
  • Declarar un método de análisis en el campo Preparar script. Si no se especifica el método de análisis, el sistema procesará los datos del cuerpo como texto.

Si es necesario parametrizar los datos corporales de una solicitud HTTP, los parámetros de contexto correspondientes se pueden declarar en el campo Preparar script o con la opción Administrar parámetros de contexto.

Uso de razor engine

Los datos JSON o el contenido de script que se pasan en el cuerpo de la solicitud HTTP se pueden cambiar dinámicamente mediante la sintaxis del motor razor. Al trabajar con la sintaxis de Razor en el campo Publicar datos, utilice el prefijo @ para marcar el texto siguiente como un elemento de código de C# ( expresiones en línea, bloques de instrucciones individuales o bloque de varias instrucciones). Para obtener más información sobre la sintaxis de Razor, visite https://www.w3schools.com/asp/razor_syntax.asp.

En caso de que se detecten errores en la sintaxis de Razor al analizar el cuerpo de la solicitud, se generará un error y se agregará al informe de ejecución de prueba.

Dotcom-Monitor admite el modelo Razor (define la estructura de un mensaje de entrada de Razor) con las siguientes propiedades:

  • @Model.DeviceID – una variable que devuelve un identificador único del dispositivo de supervisión actual.
  • @Model.TaskID: una variable que devuelve un identificador único de la tarea de supervisión actual.
  • @Model.SessionID : una variable que devuelve un identificador único de la sesión de supervisión actual.

Puede utilizar parámetros de contexto en expresiones razor. Para hacer referencia a un parámetro de contexto en una expresión razor, ajuste la referencia al parámetro context entre corchetes [ ] y encierre su nombre entre comillas dobles ” ” “

@Model["ContextParameterName"]

Para notificar al sistema que los datos de un cuerpo de solicitud requieren ser analizados por el motor razor, en el campo Preparar script, agregue el método ProcessPostDataByRazor(currentTask). De lo contrario, los elementos de código de Registrar datos se analizarán como texto.

Ejemplo

Supongamos que queremos enviar un ID de dispositivo y un marcador de prueba en un cuerpo de solicitud HTTP, entonces necesitamos configurar el campo Publicar datos de la siguiente manera:

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

A continuación, necesitamos establecer el valor del parámetro de contexto y el método de análisis en el campo Preparar script:

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

Donde el parámetro currentTask no depende de un nombre de tarea y tiene el tipo de la tarea que se procesa actualmente.

Uso de máscaras de datos en solicitudes HTTP

Puede hacer referencia a parámetros de contexto en un cuerpo POST ajustando la referencia de nombre del parámetro en signos de marcador en ambos lados. Así que una referencia a un parámetro de contexto “GUID” se introducirá de esta manera:

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

Aquí los signos de porcentaje indican al sistema que se trata de una referencia de parámetro de contexto y no una parte de una cadena.

Para notificar al sistema que los datos de un cuerpo de solicitud deben analizarse mediante una máscara especificada, en el campo Preparar script, agregue processpostdatabymask(currentTask, “signos de marcador”). De lo contrario, el parámetro context se omitirá y se pasará como texto. Para el ejemplo proporcionado anteriormente, el campo Preparar script contendría la siguiente cadena:

ProcessPostDataByMask(currentTask, "%%%");

Donde el parámetro currentTask no depende de un nombre de tarea y tiene el tipo de la tarea que se procesa actualmente.