Uso de esquemas de valores controlados - Amazon CloudWatch

Uso de esquemas de valores controlados

Esta sección proporciona detalles sobre cada uno de los esquemas de valor controlado y las tareas para las que cada esquema es más adecuado. Se proporcionan esquemas para los siguientes tipos de valor controlado:

  • Monitor de latidos

  • Valor controlado de la API

  • Verificador de enlaces que no funcionan

  • Supervisión visual

  • Registrador de valores controlados

  • Flujo de trabajo de la GUI

Cuando se utiliza un esquema para crear un valor controlado, mientras rellena los campos en la consola de CloudWatch, el área de la página Editor de scripts muestra el valor controlado que se está creando como script Node.js. También puede editar su valor controlado en esta área para personalizarlo aún más.

Supervisión de latidos

Los scripts de latidos cargan la URL especificada y almacenan una captura de pantalla de la página y un archivo HTTP (archivo HAR). También almacenan registros de direcciones URL a las que se accede.

Puede utilizar los archivos HAR para ver datos de rendimiento detallados sobre las páginas web. Puede analizar la lista de solicitudes web y detectar problemas de rendimiento, como el tiempo de carga de un elemento.

Si el valor controlado utiliza syn-nodejs-puppeteer-3.1 o una versión posterior en el tiempo de ejecución, puede utilizar el esquema de supervisión de latidos para supervisar varias direcciones URL y ver el estado, la duración, las capturas de pantalla asociadas y el motivo del error para cada URL en el resumen de pasos del informe de ejecución del valor controlado.

Valor controlado de la API

Los canaries de API pueden probar las funciones básicas de lectura y escritura de una API REST. REST significa transferencia de estado representacional y es un conjunto de reglas que siguen los desarrolladores al crear una API. Una de estas reglas establece que un enlace a una URL específica debe devolver un fragmento de datos.

Los canaries pueden trabajar con cualquier API y probar todo tipo de funcionalidades. Cada valor controlado puede hacer varias llamadas a la API.

En los canarios que usan la versión de tiempo de ejecución syn-nodejs-2.2 o posterior, el esquema de canario de API admite canarios de varios pasos que supervisan las API como pasos HTTP. Puede probar varias API en un único valor controlado. Cada paso es una solicitud independiente que puede acceder a una URL diferente, usar cabeceras diferentes y utilizar diferentes reglas para la captura de cabeceras y de cuerpos de respuesta. Al no capturar cabeceras y cuerpo de respuesta, puede evitar que se registre información confidencial.

Cada solicitud en un valor controlado de API consta de la siguiente información:

  • El punto de enlace, que es la URL que solicita.

  • El método, que es el tipo de solicitud que se envía al servidor. Las API REST admiten operaciones GET (lectura), POST (escritura), PUT (actualización), PATCH (actualización) y DELETE (eliminación).

  • Los encabezados, que proporcionan información tanto al cliente como al servidor. Se utilizan para la autenticación y para proporcionar información sobre el contenido del cuerpo. Para obtener una lista de cabeceras válidos, consulte HTTP Headers (Cabeceras HTTP).

  • Los datos (o el cuerpo), contienen información que se enviará al servidor. Esto se utiliza solo para solicitudes POST, PUT, PATCH o DELETE.

El esquema de valor controlado de API admite los métodos GET y POST. Cuando utilice este valor controlado, debe especificar los encabezados. Por ejemplo, puede especificar Authorization como Key (Clave) y especificar los datos de autorización necesarios como Value (Valor) para esa clave.

Si está probando una solicitud POST, especifique también el contenido que se va a publicar en el campo Data (Datos).

Integración con la API Gateway

El proyecto de la API está integrado con Amazon API Gateway. Esto le permite seleccionar una API de API Gateway y un escenario desde la misma cuenta y región de AWS que el valor controlado, o cargar una plantilla de Swagger desde API Gateway para la supervisión de la API entre cuentas y entre regiones. A continuación, puede elegir el resto de los detalles en la consola para crear el valor controlado, en lugar de introducirlos desde cero. Para obtener más información sobre API Gateway, consulte What is Amazon API Gateway? (¿Qué es Amazon API Gateway?)

Uso de una API privada

Puede crear un valor controlado que utilice una API privada en Amazon API Gateway. Para obtener más información, consulte Creación de una API privada en Amazon API Gateway.

El verificador de enlaces que no funcionan recopila todos los enlaces dentro de la dirección URL que está probando mediante document.getElementsByTagName('a'). Solo prueba el número de enlaces que especifique; la dirección URL en sí se cuenta como primer enlace. Por ejemplo, si desea comprobar todos los enlaces de una página que contiene cinco enlaces, debe especificar que el valor controlado siga seis enlaces.

Los valores controlados de verificadores de enlaces que no funcionan que se han creado con el tiempo de ejecución syn-nodejs-2.0-beta o posterior admiten las siguientes características adicionales:

  • Proporciona un informe que incluye los enlaces que se han verificado, el código de estado, el motivo del error (si los hay) y las capturas de pantalla de la página fuente y de destino.

  • Al ver los resultados del valor controlado, puede utilizar el filtro para ver solo los enlaces que no funcionan y, a continuación, corregir el enlace en función del motivo del error.

  • Esta versión toma capturas de pantalla de la página fuente anotadas para cada enlace y resalta el anclaje donde se encontró el enlace. Los componentes ocultos no se anotan.

  • Puede configurar esta versión para tomar capturas de pantalla de páginas fuente y de destino, pero solo páginas fuente o páginas de destino.

  • Esta versión corrige un problema de la versión anterior en el que el script del valor controlado se detiene después del primer enlace roto, incluso cuando se raspan más enlaces desde la primera página.

Si desea actualizar un valor controlado existente con syn-1.0 para utilizar el nuevo tiempo de ejecución, debe eliminar y volver a crear el valor controlado. Actualizar un valor controlado existente al nuevo tiempo de ejecución no hace que estas características estén disponibles.

Un valor controlado de verificadores de enlaces que no funcionan detecta los siguientes tipos de errores en un enlace:

  • 404 Página no encontrada

  • Nombre de host no válido

  • URL incorrecta. Por ejemplo, a la URL le falta un corchete, tiene barras diagonales adicionales o utiliza el protocolo incorrecto.

  • Código de respuesta HTTP no válido

  • El servidor host devuelve respuestas vacías sin contenido ni código de respuesta.

  • Las solicitudes HTTP agotan constantemente el tiempo de espera durante la ejecución del valor controlado.

  • El host interrumpe constantemente las conexiones porque está mal configurado o está demasiado ocupado.

Proyecto de supervisión visual

El esquema de supervisión visual incluye un código para comparar capturas de pantalla que se toman durante una ejecución de valor controlado con capturas de pantalla que se toman durante una ejecución de valor controlado de línea de base. Si la discrepancia entre las dos capturas de pantalla está más allá de un porcentaje umbral, el valor controlado falla. La supervisión visual es compatible en canaries que ejecutan syn-puppeteer-node-3.2 y versiones posteriores. Actualmente no es compatible con canaries que ejecutan Python y Selenium.

El esquema de supervisión visual incluye la siguiente línea de código en el script de valor controlado de esquema predeterminado, que permite la supervisión visual.

syntheticsConfiguration.withVisualCompareWithBaseRun(true);

La primera vez que el valor controlado se ejecuta correctamente después de agregar esta línea al script, utiliza las capturas de pantalla que se toman durante esa ejecución como línea de base para la comparación. Después de la primera ejecución del valor controlado, se puede usar la consola de CloudWatch para editar el valor controlado para realizar cualquiera de las siguientes acciones:

  • Establecer la siguiente ejecución del valor controlado como la nueva línea de base.

  • Establecer límites en la captura de pantalla de línea de base actual para designar áreas de la captura de pantalla que se ignorarán durante las comparaciones visuales.

  • Eliminar una captura de pantalla de ser utilizada para la supervisión visual.

Para obtener más información sobre cómo usar la consola de CloudWatch para editar un valor controlado, consulte Edición o eliminación de un valor controlado.

También puede cambiar la ejecución del valor controlado que se utiliza como línea de base mediante los parámetros nextrun o lastrun o mediante la especificación de un ID de ejecución de valor controlado en la API UpdateCanary.

Cuando utilice el proyecto de supervisión visual, ingrese la dirección URL donde desea que se tome la captura de pantalla y especifique un umbral de diferencia como porcentaje. Después de la ejecución de la línea de base, las futuras ejecuciones del valor controlado que detectan una diferencia visual mayor que ese umbral desencadenan un fallo del valor controlado. Después de la ejecución de la línea de base, también puede editar el valor controlado para “dibujar” límites en la captura de pantalla de línea de base que desea omitir durante la supervisión visual.

La característica de supervisión visual está impulsada por el conjunto de herramientas de software de código abierto ImageMagick. Para obtener más información, consulte ImageMagick.

Registrador de valores controlados

Con el esquema del registrador de valores controlados, puede utilizar CloudWatch Synthetics Recorder para registrar las acciones de cliqueo y tipeo en un sitio web y generar automáticamente un script Node.js que se puede utilizar para crear un valor controlado que siga los mismos pasos. Recorder CloudWatch Synthetics es una extensión de Amazon para Google Chrome.

Créditos: (Créditos): el registrador CloudWatch Synthetics se basa en el Headless recorder (Registrador sin procesador).

Para obtener más información, consulte Uso del registrador de CloudWatch Synthetics para Google Chrome.

Generador de flujo de trabajo de la GUI

El proyecto del generador de flujo de trabajo de la GUI verifica que se pueden realizar acciones en la página web. Por ejemplo, si tiene una página web con un formulario de inicio de sesión, el valor controlado puede rellenar los campos de usuario y contraseña y enviar el formulario para verificar que la página web funciona correctamente.

Cuando utiliza un esquema para crear este tipo de valor controlado, especifique las acciones que desea que el valor controlado realice en la página web. Las acciones que puede utilizar son las siguientes:

  • Clic: selecciona el elemento especificado y simula un usuario al hacer clic o al elegir el elemento.

    Para especificar el elemento en un script Node.js, utilice [id=] o a[class=].

    Para especificar el elemento en un script Python, utilice xpath //*[@id=] o //*[@class=].

  • Verificación del selector: verifica que el elemento especificado existe en la página web. Esta prueba es útil para comprobar que una acción anterior hace que los elementos correctos rellenen la página.

    Para especificar el elemento que se va a verificar en un script Node.js, utilice [id=] o a[class=].

    Para especificar el elemento que se va a verificar en un script Python, utilice xpath //*[@id=] o //*[class=].

  • Verificación de texto: verifica que la cadena especificada está contenida en el elemento de destino. Esta prueba es útil para verificar que una acción anterior ha causado que se muestre el texto correcto.

    Para especificar el elemento en un script Node.js, utilice un formato como div[@id=]//h1, ya que esta acción utiliza la función waitForXPath en Puppeteer.

    Para especificar el elemento en un script Python, utilice el formato xpath como //*[@id=] o //* [@class =] porque esta acción utiliza la función implicitly_wait en Selenium.

  • Ingresar texto: ingresa el texto especificado en el elemento de destino.

    Para especificar el elemento que se va a verificar en un script Node.js, utilice [id=] o a[class=].

    Para especificar el elemento que se va a verificar en un script Python, utilice xpath //*[@id=] o //*[@class=].

  • Clic con navegación: espera a que toda la página se cargue después de elegir el elemento especificado. Esto es más útil cuando necesita volver a cargar la página.

    Para especificar el elemento en un script Node.js, utilice [id=] o a[class=].

    Para especificar el elemento en un script Python, utilice xpath //*[@id=] o //*[@class=].

Por ejemplo, el siguiente blueprint utiliza Node.js. Hace clic en firstButton en la URL especificada, comprueba que aparece el selector esperado con el texto esperado, ingresa el nombre Test_Customer en el campo Name (Nombre), hace clic en el botón Login (Inicio de sesión) y, luego, comprueba que el inicio de sesión sea complete correctamente mediante la verificación del texto Welcome (Bienvenida) en la página siguiente.

La página de creación de valor controlado en la consola, con campos completados para el esquema de flujo de trabajo de la GUI.

Los valores controlados de flujo de trabajo de la GUI que utilizan los siguientes tiempos de ejecución también proporcionan un resumen de los pasos ejecutados para cada ejecución de un valor controlado. Puede utilizar las capturas de pantalla y el mensaje de error asociados con cada paso para encontrar la causa raíz del error.

  • syn-nodejs-2.0 o posterior.

  • syn-python-selenium-1.0 o posterior.