Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
En el estudio anterior, utilizamos JMeter para completar la prueba de interfaz a nivel de protocolo para el sistema Agileone. También sabemos que el núcleo de la tecnología de prueba de rendimiento es utilizar tecnología de subprocesos múltiples para enviar solicitudes de protocolo para completar la simulación de que una gran cantidad de usuarios acceden al sistema. La intención de diseño original de JMeter es en realidad probar el rendimiento. Por ejemplo, el primer paso cuando creamos un plan de prueba es crear un grupo de subprocesos. Este experimento explicará cómo usar JMeter para completar la prueba de rendimiento del inicio de sesión y publicación de Phpwind.
Objetivo
(1) Dominar el uso de la búsqueda de asociaciones en JMeter.
(2) Dominar el diseño y uso de subprocesos en JMeter.
(3) Dominar el uso de informes de prueba en JMeter.
proceso de experimento
Hemos creado un total de 100 usuarios para Phpwind desde testuser_1 hasta testuser_100, por lo que durante el proceso de prueba de rendimiento, debemos implementar el inicio de sesión aleatorio de los usuarios para simular mejor escenarios reales.
(1) Cree una muestra de "solicitud HTTP", asígnele el nombre "DoLogin" y complete los parámetros de solicitud POST de inicio de sesión correspondientes.
(2) Cree una "aserción de respuesta" y un "árbol de resultados de vista" para la muestra, y lo mismo se aplica a las solicitudes posteriores.
(3) Cree un "preprocesador" para el muestreador e implemente un número aleatorio del 1 al 100.
(4) La solicitud de prueba final implementada es la siguiente:
Dado que al publicar en Phpwind, se debe especificar un campo "verificar", cuyo valor es un número aleatorio, debemos usar expresiones regulares para asociar el valor correspondiente en la respuesta. Esta parte se ha dominado en el proceso de implementación de las pruebas de interfaz. Aquí veremos principalmente cómo implementarla en JMeter:
(1) Agregue una muestra de "solicitud HTTP" y envíe una solicitud GET a "/phpwind/post.php?fid=2" para obtener la respuesta.
(2) Agregue un posprocesador al muestreador, configúrelo en "Extractor de expresiones regulares" y realice las siguientes configuraciones:
(3) Una breve explicación de los campos de entrada anteriores:
a) Nombre de referencia: el nombre del parámetro al que se hará referencia en la siguiente solicitud. Si completa el código de verificación, puede usar ${verifycode} para hacer referencia a él.
b) Expresión regular: Los paréntesis contienen el contenido a extraer, que es lo que somos expertos en aplicar.
c) Plantilla: citada con $-$ Si la expresión regular que configuramos encuentra varios valores, el número de secuencia indica qué valor procesar.
d) Números coincidentes: 0 representa un valor aleatorio, 1 representa todos los valores, generalmente solo complete 0.
e) Valor por defecto: Si el parámetro no obtiene un valor, entonces se le da un valor por defecto para que lo obtenga.
(1) Establezca un parámetro de usuario para la muestra y use el asistente de funciones para generar un número aleatorio para el título y el contenido de la publicación.
(2) Utilice el código de verificación obtenido en el paso anterior como valor del campo de verificación en el cuerpo de la solicitud POST.
(3) La solicitud de prueba final generada es la siguiente:
De forma predeterminada, JMeter, al igual que la prueba de interfaz, solo es responsable de descargar la página solicitada actualmente y no descargará otros recursos adicionales de la página. Esto obviamente no es consistente con la situación real. Entonces necesitamos descargar todos los recursos de la página. En la pestaña "Avanzado" en la muestra HTTP, marque "Obtener todos los recursos incluidos de archivos HTML".
Para esta ejecución, seguimos el mismo diseño de escenario que el script Java anterior: 50 usuarios, 5 usuarios simultáneos cada 10 segundos y cada usuario se ejecuta 100 veces. Las configuraciones específicas son las siguientes:
Establecer el parámetro "Período de aceleración (en segundos)" en la configuración anterior en 100 segundos significa agregar un hilo cada dos segundos. Aunque la frecuencia no se puede definir arbitrariamente como un hilo personalizado, dicha configuración es consistente con cada 10 segundos. No existe una diferencia esencial en el efecto de 5 usuarios simultáneos.
Además de configurar el número de ejecuciones, también podemos configurar el tiempo total de ejecución del proceso de prueba de rendimiento. En la parte inferior de la imagen de arriba, marque "Programador" y establezca la duración. Si necesitamos ejecutarlo continuamente durante una hora, solo necesitamos establecer su valor en 3600 segundos.
El tiempo de reflexión es un ajuste necesario para simular escenarios de usuario reales. El componente "temporizador" proporcionado por JMeter se utiliza para simular el tiempo de pensamiento del usuario. JMeter viene con muchos tipos de temporizadores. Usamos el "temporizador aleatorio gaussiano" más comúnmente utilizado. Podemos seguir los siguientes pasos para crear un temporizador. Una muestra establece el tiempo de reflexión:
(1) Haga clic derecho en una muestra, por ejemplo, hacemos clic en "DoLogin" para crear un nuevo "temporizador aleatorio gaussiano".
(2) Establezca el desplazamiento en 2000 milisegundos y el retardo fijo en 4000 milisegundos. Su función es generar un número aleatorio dentro del rango de 4 segundos más o menos 2 segundos, es decir, el tiempo de pausa aleatoria es de entre 2 segundos y 6 segundos.
Más sobre el uso del temporizador JMeter
El concepto de punto de encuentro fue propuesto por primera vez por la herramienta de prueba de rendimiento LoadRunner. Su función es que después de que un grupo de subprocesos envía una solicitud, todos se reúnen hasta que todos los subprocesos se sincronizan en un momento determinado y luego envían la solicitud juntos. Se utiliza para simular pruebas de concurrencia más estrictas. Aunque el uso de puntos de encuentro no es consistente con escenarios reales, puede ejercer una mayor presión instantánea sobre el servidor.
En JMeter, podemos utilizar el temporizador "Sincronizar temporizador" para completar el procesamiento de los puntos de encuentro. Por ejemplo, la siguiente figura nos muestra cómo implementar una estrategia de prueba concurrente para el muestreador "DoPost":
(1) Número de usuarios simulados para agrupar: este valor corresponde al número de subprocesos en el punto de recopilación. Aquí lo configuramos en 50, lo que significa que una colección debe esperar 50 subprocesos antes de enviar la siguiente solicitud en conjunto. Si se establece en 0 aquí, significa utilizar la colección de todos los subprocesos establecidos por el grupo de subprocesos.
(2) Tiempo de espera en milisegundos: establezca aquí en 10000, lo que significa que el tiempo de espera del punto de encuentro es de 10 segundos, es decir, si todos los subprocesos no han esperado 10 segundos, ya no esperarán. El hilo que ha completado la recopilación envía directamente la siguiente solicitud.
De hecho, en el desarrollo de subprocesos nativos de Java, también podemos utilizar los dos métodos de sincronización "wait()" y "notifyAll()" para completar la simulación del punto de encuentro.
JMeter también tiene muchos componentes integrados para ver informes de prueba, pero el más utilizado es el "informe agregado" creado para un determinado grupo de subprocesos. Por ejemplo, los resultados de la prueba de rendimiento actual de Phpwind se muestran a continuación:
Podemos ver en la figura anterior el número de ejecuciones de cada muestra, varias estadísticas matemáticas del tiempo de respuesta (promedio, mediana, valor del 90%, valor mínimo, valor máximo), tasa de error de transacción, ancho de banda de la red, rendimiento, tamaño total de respuesta, total. tamaño de la solicitud y otros datos. Además de monitorear los indicadores de rendimiento del lado del servidor, estos indicadores son básicamente suficientes para que podamos analizar datos básicos para una prueba de rendimiento.
ejercicio de pensamiento
(1) Familiarícese con el uso de otros componentes en JMeter.
(2) Utilice JMeter para completar la prueba de rendimiento de un proyecto y resolver los problemas encontrados uno por uno.
(3) Compare la prueba de rendimiento en JMeter con la prueba de rendimiento que desarrollamos nosotros mismos utilizando Java nativo para ver las similitudes y diferencias.
Finalmente, me gustaría agradecer a todos los que leyeron mi artículo con atención. Mirando el aumento de fans y atención, siempre hay algo de cortesía. Aunque no es algo muy valioso, si puedes usarlo, ¡puedes tomarlo directamente!
Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista son los materiales de entrevista más recientes de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y algunos jefes de Byte han dado respuestas autorizadas después de terminar este conjunto. Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.