Problema
Por motivos de seguridad, es posible que su aplicación no esté expuesta a internet o que se encuentre protegida por Web Application Firewall (WAF) de Alibaba Cloud. En estos casos, un gran volumen de tráfico de pruebas de estrés puede activar medidas de seguridad como intercepción, bloqueo y limpieza, lo que provoca que WAF bloquee el tráfico proveniente de Performance Testing Service (PTS).
Soluciones
Solución 1: Configurar una lista de permitidos de encabezados en WAF
Si la aplicación bajo prueba utiliza WAF, configure una regla de lista de permitidos del sitio web mediante un encabezado de solicitud para permitir el paso del tráfico de pruebas de estrés de PTS. Siga estos pasos:
Inicie sesión en la consola de Web Application Firewall 3.0. En la barra de menú superior, seleccione el resource group y la región (Chinese Mainland o Outside Chinese Mainland) correspondientes a la instancia de WAF.
En el panel de navegación izquierdo, vaya a Protection Configuration > Core Web Protection.
Haga clic en el icono
situado a la izquierda de la lista de permitidos y, a continuación, haga clic en New Rule en la columna Actions. En el cuadro de diálogo que aparece, cree una nueva regla de lista de permitidos del sitio web y establezca la condición de coincidencia en Header x-pts-testexists.
Las solicitudes HTTP enviadas por PTS contienen el encabezado x-pts-test, por lo que debe crear una nueva regla de lista de permitidos del sitio web y configurar su condición de coincidencia para detectar la presencia del encabezado x-pts-test. Para obtener más información sobre la configuración de listas de permitidos del sitio web, consulte Configure a website whitelist.
Solución 2: Configurar una lista de permitidos de IP
También puede agregar las direcciones IP de los generadores de carga a una lista de permitidos de IP en su directiva de seguridad. Tenga en cuenta que las direcciones IP de las pruebas de estrés no son fijas. Esta solución requiere reconfigurar la lista de permitidos de IP para cada prueba, por lo que se recomienda utilizar la Solución 1. A continuación se describen los pasos para obtener las direcciones IP de los generadores de carga:
Inicie la prueba de rendimiento directamente y obtenga la dirección IP del generador de carga una vez que comience la prueba. Si ya cuenta con un escenario, en el panel de navegación izquierdo de la consola, seleccione . Luego, en la página Scenarios, haga clic en Start en la columna Actions del escenario deseado para iniciar la prueba de rendimiento.
Una vez iniciada la prueba de rendimiento, en la página In Progress, haga clic en la pestaña Load Generator Monitor y consulte la dirección IP del generador de carga en el menú desplegable machineId.
Si utiliza un pool de recursos compartido, no podrá obtener las direcciones IP de los generadores de carga antes de que inicie la prueba. Para disponer de tiempo suficiente y configurar la lista de permitidos antes de que se genere tráfico, agregue un tiempo de espera de inicio a su escenario. Establezca este tiempo según la duración que necesite para configurar la lista de permitidos. Este periodo de espera consume VUM. Los siguientes pasos describen cómo establecer el tiempo de espera de inicio en pruebas de PTS y JMeter:
-
Establecer un tiempo de espera de inicio en una prueba de PTS
Agregue una instrucción de retraso de versión a cada sesión de negocio. Configure la duración del retraso según el tiempo que necesite para configurar la lista de permitidos. Para obtener más información sobre cómo agregar una instrucción de retraso de versión, consulte Use a delay release instruction.
-
Establecer un tiempo de espera de inicio en una prueba de JMeter
En su plan de pruebas de JMeter, haga clic derecho y seleccione Test Plan > Add > Threads (Users) > setUp Thread Group.
-
En el panel setUp Thread Group, configure las siguientes propiedades del hilo:
Number of Threads (users): 1
Ramp-up period (seconds): 1
Loop Count: 1
Seleccione Specify Thread lifetime.
Duration (seconds): 1
Startup delay (seconds): Establezca este valor según el tiempo que necesite para configurar la lista de permitidos. Por ejemplo, 20.