1. Base de desempeño
¿Qué son las pruebas de rendimiento--->esencia?
Simular la solicitud enviada por el usuario en base al protocolo (simulación de negocio), formando una determinada carga en el servidor . Enfoque: desempeño en el tiempo , el desempeño en el espacio no tiene nada que ver con la interfaz
Clasificación de las pruebas de rendimiento
-
Pruebas de rendimiento (sentido estricto)
El método de prueba de rendimiento es probar si el rendimiento del sistema cumple con los requisitos de rendimiento de producción mediante la simulación de la combinación de escenarios de uso y presión comercial en el entorno de producción. En términos sencillos, este método es para verificar el estado de capacidad del sistema en condiciones de funcionamiento específicas.
-
prueba de carga
Presionando continuamente el sistema bajo prueba hasta que el índice de rendimiento alcance el límite, como que el "tiempo de respuesta" exceda el índice predeterminado o que cierto recurso haya alcanzado la saturación.
-
Prueba de estrés (prueba de fuerza)
El método de prueba de estrés prueba la capacidad del sistema para manejar conversaciones en un cierto estado de saturación, como el uso de CPU y memoria, y si el sistema encontrará errores.
-
prueba de concurrencia
El método de prueba de concurrencia simula el acceso simultáneo de usuarios para probar si hay interbloqueos u otros problemas de rendimiento cuando varios usuarios acceden a la misma aplicación, el mismo módulo o registros de datos al mismo tiempo.
-
prueba de configuración
El método de prueba de configuración ajusta el entorno de software y hardware del sistema bajo prueba, comprende el grado de impacto de varias diferencias en el rendimiento del sistema y encuentra el principio de asignación óptimo de varios recursos del sistema.
-
prueba de fiabilidad
Bajo la condición de cargar cierta presión comercial en el sistema, deje que el sistema funcione durante un cierto período de tiempo para verificar si el sistema es estable.
Indicadores de prueba de rendimiento comunes
-
Número de usuarios Usuarios simultáneos
La cantidad de usuarios que envían solicitudes al servidor al mismo tiempo es diferente de la cantidad de solicitudes simultáneas por segundo. Asegúrese de confirmar si el propósito del requisito es la cantidad de usuarios simultáneos o la cantidad de solicitudes simultáneas.
-
Rendimiento
Descripción: El número de solicitudes de clientes procesadas por unidad de tiempo refleja directamente la capacidad de carga del rendimiento del sistema de software. Normalmente, el rendimiento se mide en "solicitudes/segundo" o "páginas/segundo".
Consejos: 1. Desde un punto de vista comercial, el rendimiento se puede medir por "número de negocios/hora", "número de visitantes/día", "número de negocios/día" y "número de visitas comerciales/día" . 2. Desde la perspectiva de la red, el tráfico de la red también se puede medir en "bytes/día" y "bytes/hora". 3. Las transacciones por segundo (TPS) y las consultas por segundo (QPS) pertenecen al rendimiento. La diferencia es que TPS\QPS describe las capacidades específicas de procesamiento de rendimiento del servidor.
-
número concurrente
Descripción: el número de usuarios para pruebas simultáneas
Extensión: Número de usuarios concurrentes: el número de usuarios que envían solicitudes al sistema al mismo tiempo en un momento físico determinado. Número de usuarios en línea: El número de usuarios que acceden al sistema dentro de un cierto período de tiempo.Estos usuarios no necesariamente envían solicitudes al sistema al mismo tiempo. Número de usuarios del sistema: total de datos de usuarios registrados en el sistema.
-
Tiempo de respuesta
Descripción: El tiempo empleado en todo el proceso desde que el usuario inicia una solicitud hasta que el cliente recibe el resultado devuelto por el servidor.
-
golpes
Descripción: Un indicador importante para medir el poder de procesamiento del servidor web.
Consejos: 1. La cantidad de visitas no es la cantidad de visitas que todos piensan al visitar una página. La cantidad de visitas es la cantidad de solicitudes enviadas al servidor web por los elementos contenidos en la página (como: imágenes, enlaces , etc.). 2. El indicador de visitas por segundo generalmente se usa para medir el poder de procesamiento del servidor web. Nota: Solo los proyectos web tienen métricas.
-
utilización de recursos
Descripción: Se refiere al uso de varios recursos en el sistema, tasa de uso = recursos usados / recursos totales x 100%
Indicadores comunes de utilización de recursos: CPU, no más del 80 % de memoria, no más del 80 % de disco, no más del 90 % de red, no más del 80 % Si la utilización de recursos es demasiado pequeña, también provocará el desperdicio de recursos
-
Tasa de error
Descripción: se refiere al uso de cada recurso en el sistema. Generalmente, "uso de recursos/disponibilidad total de recursos x 100 %" se usa para generar datos de uso de recursos.
Consejos: por lo general, si no hay un requisito especial 1. Los diferentes sistemas tienen diferentes requisitos para la tasa de error, pero generalmente no supera el 5/1000 --- (5/10000 según el proyecto real, etc.). 2. Para un sistema con mejor estabilidad, su tasa de error debe ser causada por tiempo de espera --- tasa de tiempo de espera.
-
TPS (Transacciones por segundo)
Descripción: Calcule el número de transacciones por segundo (el número de veces que el sistema procesa transacciones de solicitudes de clientes por unidad de tiempo) : tps=concurrencia/tiempo de respuesta promedio
Transacción: Un término general desde el punto de vista del código de la estación comercial, que puede entenderse como una o más piezas de código. Sugerencia: rendimiento atribuido de TPS
-
QPS (Consulta por segundo)
Descripción: Número de consultas por segundo (un indicador importante para medir el poder de procesamiento de un servidor web)
Aplicación: controle el servidor para procesar el número especificado de solicitudes por segundo (por ejemplo: controle el servidor para alcanzar 60 qps por segundo, si los indicadores de rendimiento del servidor son normales).
2. Proceso de prueba de rendimiento
diagrama de flujo
análisis de la demanda
-
Objeto de prueba
-
común
-
núcleo, importante
-
volumen de datos, concurrencia
-
ejemplo:
Regístrese, inicie sesión, busque, agregue al carrito, haga un pedido, pague
-
-
Determinar indicadores de desempeño
Ejemplo 1: Se requiere completar un monto de transacción de 200 millones por día, ¿cómo encontrar el número máximo de transacciones por segundo? Precio unitario del cliente: 200-500, calculado como 300 Calculado utilizando la ley 28, calculado como 24 horas Principio 2/8: el 80 % de las solicitudes de los usuarios se concentran en el 20 % de los datos calientes, o fórmula de cálculo del período de tiempo : (200000000/ 300 *0.8)/(24/0.2)/3600s=30.86 piezas/s
Ejemplo 2: El sistema paga a 5 millones de usuarios por 8 horas al día para visitar 1,5 millones en 8 horas, 5 millones/8*3600, generalmente no se usa, a menos que la carga del sistema sea relativamente estable/promedio 2. Primero analice la distribución del tráfico, y luego según 2/8 La ley estima el número de usuarios : 500*0.8=400w 20% del tiempo: 8*0.2=1.6h Se calcula que el servidor necesita soportar 694 veces/s --->500*0.8/(8*0.2 )/3600s carga promedio por hora*4 (estimado, no se recomienda este cálculo)
-
Rendimiento, la cantidad de solicitudes procesadas por el servidor TPS por segundo
-
Tiempo de respuesta
El tiempo de procesamiento requerido desde que el navegador envía la solicitud, el procesamiento del servidor, hasta recibir la respuesta
-
Número de usuario
-
utilización de recursos
-
ejemplo:
-
-
escenarios de prueba
-
sola escena
Acceso
registro
buscar
añadir a la cesta
hacer un pedido y pagar
-
escena mixta
Escenarios de uso del usuario
Escenarios de uso del sistema
-
Plan de prueba
-
objetivo de prueba
-
organización de probadores
-
Programa de prueba de presión
-
maquina de prensa
-
configuración
-
Requerir
-
cantidad
-
-
riesgo
Programa de prueba
-
herramientas de prueba
corredor de carga
jmetro
-
entorno de prueba
base de datos
servidor
diseño arquitectónico
Trate de ser coherente con el entorno de producción si es posible
-
Prueba Estrategia Escenario único Escenario mixto
-
herramienta de monitoreo
-
Linuxnmon rpc jvisualVM Spotlight
-
windows Spotlight perfmon.exe
-
diseño de caso de uso
-
Probar casos de uso basados en secuencias de comandos
-
Diseño de escenarios Casos de uso basados en escenarios
ejecución de pruebas
-
la escritura de guiones
-
Diseño de Monitoreo de Escenarios Diseño de Negocios
-
construcción de escena
Explicación: El principio importante del diseño de escenarios de prueba es mostrar el escenario de diseño de casos de uso en función de los casos de prueba.
Consejos: 1. El número de usuarios virtuales y la forma de iniciar usuarios virtuales 2. Configuración relacionada con la escena (como: punto de montaje) 3. Si el script tiene dependencias (como: inicio de sesión y registro)
-
-
Ejecutar la escena
Descripción: ejecutar el script es ejecutar la escena
1. La máquina de prueba de carga no puede ejecutar la cantidad establecida de usuarios virtuales 2. No hay un proceso de "calentamiento" 3. No hay un entorno real para simular usuarios 4. La cantidad de casos de prueba de rendimiento es demasiado pequeña
-
Escena de monitoreo
-
informe de prueba
problema de analisis de posicionamiento
-
extremo posterior
-
el código
-
Servidor de aplicaciones de base de datos de software (servicio)
-
hardware
-
-
Interfaz
-
Secuencia de problemas de posicionamiento de prueba de red : problema de hardware ---> problema de red ---> servidor de aplicaciones, problema de configuración del servidor de base de datos ---> código fuente, script de base de datos ---> problema de arquitectura del sistema
la optimización del rendimiento
Después de comparar los resultados de las pruebas, los probadores de rendimiento encuentran el cuello de botella del rendimiento del sistema.
Sugerencias: 1. Personal de ajuste: orientados al desarrollo, administradores de bases de datos, administradores de sistemas, administradores de redes y analistas de pruebas de rendimiento cooperan para ajustar los problemas de rendimiento 2. Verificación : la verificación de pruebas de rendimiento generalmente requiere muchas rondas, cada ronda La regresión requiere una comparación exhaustiva de todos indicadores de prueba
Ajuste del sistema de orden fácil a difícil:
-
problema de hardware
-
problema de Internet
-
Servidor de aplicaciones, problemas de configuración del servidor de base de datos
-
código fuente, script de base de datos
-
problemas de arquitectura del sistema
informe de prueba
-
Revisión de la fase general de pruebas de rendimiento (cubrir los requisitos, probar el progreso y los productos de las diferentes fases y analizar los resultados de las pruebas de rendimiento) ---> perspectiva técnica
-
Gestión de riesgos en la fase de prueba de rendimiento general ---> perspectiva de gestión
-
Resumen de los resultados de las pruebas de desempeño del proyecto (ya sea aprobado o no, experiencia, lecciones aprendidas)
3. Introducción y selección de herramientas
Corredor de carga
-
Una herramienta de prueba de rendimiento industrializada que puede admitir una gran cantidad de usuarios y proporcionar informes detallados para proporcionar la cantidad de análisis de prueba.
-
Muchos protocolos compatibles
-
escrito en lenguaje C
ventaja
1. Admite una gran cantidad de usuarios (en decenas de miles) 2. Proporciona informes precisos 3. Admite suplantación de IP
defecto
1. Tarifas 2. Tamaño grande 3. No se puede personalizar
Jmetro
jmeter es un software de prueba de rendimiento desarrollado por la organización Apache basado en java. Multiprotocolo (HTTP/HTTPS, JDBC, JAVA...etc)
ventaja
1. Código abierto y gratuito 2. Tamaño pequeño 3. Complementos completos de terceros
defecto
1. No es compatible con la suplantación de IP 2. La precisión del informe es peor que LR
¿Cómo elegir entre LoadRunner y Jmeter?
-
Prefiero elegir Jmeter
-
Jmeter puede resolverlo con Jmeter y Jmeter no puede resolverlo con LoadRunner
Cuarto, el uso de herramientas Jmeter
Introducción al directorio de archivos
1.1 directorio bin
Almacenar archivos ejecutables y de configuración
jmeter.bat: archivo de inicio de Windows jmeter.log: archivo de registro jmeter.sh: archivo de inicio de Linux jmeter-properties: archivo de configuración del sistema jmeter-server.bat: configuración del servidor para pruebas distribuidas de Windows jmeter-server: configuración del servidor Linux para pruebas distribuidas
1.2 directorio de documentos
docs: es el documento api de Jmeter, que se puede ver abriendo la página api/index.html
1.3 directorio printable_docs
El contenido del subdirectorio manual de usuario de printable_docs es el documento del manual de usuario de Jmeter. componente_referencia.html en manual de usuario es el documento de ayuda del componente central más utilizado.
Sugerencia: Hay algunos casos de secuencias de comandos de Jmeter de uso común en el subdirectorio de demostraciones de printable_docs, puede consultarlos.
1.4 directorio lib
Este directorio se utiliza para almacenar los paquetes jar de los que depende Jmeter y los paquetes jar de los que dependen las extensiones de usuario.
Configuracion basica
Configuraciones chinas
-
Modificación temporal:
opciones--->idioma--->elegir idioma--->chino
-
Modificación permanente:
-
Abra jmeter.properties
-
Modificar idioma=zh_CN
-
reiniciar jmeter
-
modificación del tema
Opciones ---> Temas ---> Seleccione el tema correspondiente, reinicie jmeter
operación básica
-
iniciar jmeter
-
Agregar grupo de hilos
-
Agregue una muestra para solicitudes http y configure
-
Agregar un oyente para el árbol de resultados de la consulta
-
Haga clic en "Inicio" para ejecutar jmeter y ver los resultados
componentes básicos
Grupo de subprocesos: se hace pasar por el usuario. Componentes de configuración: inicialice el entorno de prueba y los datos de prueba ---> como el preprocesador de configuración en los scripts de automatización: preprocesar las solicitudes que se enviarán ---> como los muestreadores parametrizados en los scripts de automatización: envíe solicitudes al servidor --- -> Por ejemplo, el posprocesador del código que envía la solicitud en el script de automatización: extrae los datos de la respuesta recibida del servidor ---> Por ejemplo, en el script de automatización para obtener la afirmación de declaración de campo específica en la respuesta: compare el resultado de la respuesta recibida con el resultado esperado ---> Por ejemplo, el detector de aserciones en el script de automatización: vea los resultados y registros después de que se ejecute el script de prueba ---> Por ejemplo, el temporizador del informe de prueba en el script de automatización: espere un período de tiempo ---> Por ejemplo, el fragmento de prueba de sueño en el script de automatización: encapsule los conceptos básicos La función, no se ejecuta sola, debe ejecutarse a través de llamadas de script ---> como encapsular funciones en scripts de automatización
alcance
Núcleo: determinado de acuerdo con los nodos padre-hijo de la estructura de árbol en el plan de prueba
en principio:
-
Los muestreadores no están incluidos en el alcance.
-
Controlador lógico: solo válido para todos los componentes bajo sus nodos secundarios.
-
otros componentes.
-
Si su nodo principal es un muestreador, solo es válido para el muestreador del nodo principal.
-
Si su nodo principal no es un muestreador, es válido para todos los nodos secundarios bajo el nodo principal y los nodos secundarios del nodo.
-
Orden de ejecución de los componentes
Orden: elemento de configuración ---> preprocesador ---> temporizador ---> muestreador ---> posprocesador ---> aserción ---> oyente
Aviso:
-
Los componentes de configuración, los preprocesadores y los posprocesadores deben depender de los muestreadores para ejecutarse.
-
Bajo el mismo ámbito, la secuencia de ejecución de elementos del mismo tipo se ejecuta secuencialmente de arriba a abajo
Tres componentes importantes de Jemter
grupo de hilos
Función: Simule usuarios configurando el número de subprocesos en el grupo de subprocesos. El número de subprocesos es el número de usuarios, y el grupo de subprocesos es el grupo de usuarios
Características:
-
simular múltiples usuarios
-
Los muestreadores y los controladores lógicos deben usarse en un grupo de subprocesos
-
Se pueden agregar múltiples grupos de subprocesos bajo un plan de prueba, que se puede ejecutar en paralelo o en serie
-
Paralelo: los grupos de subprocesos se ejecutan en paralelo de forma predeterminada
-
Serie: marque "Ejecutar cada grupo de subprocesos de forma independiente" en el plan de prueba
-
Clasificación de los grupos de hilos:
-
grupo de subprocesos de configuración: tiene operaciones de preprocesamiento previas a la prueba, que se ejecutan primero en todos los grupos de subprocesos
-
Grupo de subprocesos ordinarios: para ejecutar scripts de prueba empresarial
-
grupo de subprocesos de desmontaje: utilizado para operaciones de posprocesamiento (datos, entorno de recuperación) después de la prueba, ejecutado en último lugar en todos los grupos de subprocesos
Propiedades del grupo de hilos
Número de subprocesos: número de usuarios virtuales simulados
Ramp-up time: el tiempo requerido para que el usuario virtual comience
Ciclos:
-
Configure el número especificado de veces: controle el número de veces que se ejecuta y ejecuta el script
-
configurar bucle para siempre
-
Requiere la configuración del programador usando
-
tiempo de ejecución: la hora en que se ejecutó el script
-
Hora de inicio retrasada: el script espera una cantidad específica de tiempo antes de comenzar a ejecutarse
-
solicitud http
Protocolo http: se puede completar como HTTP o HTTPS, y el valor predeterminado no se completa como protocolo HTTP
http host name/ip: como: http://baidu.com 80
Puerto: Se puede llenar con cualquier valor. El valor predeterminado es el puerto 80 cuando no se completa
Método de envío de solicitudes: todos los métodos admitidos por el protocolo HTTP
Ruta: directorio + parámetros
Formato de codificación: se recomienda el estándar internacional IOS predeterminado, utf-8
ver árbol de resultados
Resultados de la muestra: información sobre la solicitud de estadísticas
Solicitud: detalles del encabezado de la solicitud y el cuerpo de la solicitud HTTP
Respuesta: detalles del encabezado de la respuesta y el cuerpo de la respuesta de la respuesta HTTP
Cuando aparecen caracteres ilegibles en la respuesta de jmeter:
-
Modifique el archivo jmeter.properties, sampleresult.default.encoding=utf-8
-
reiniciar jmeter
Forma común de parametrización de Jmeter
variable definida por el usuario
-
Método 1:
Agregar: grupo de subprocesos ---> elemento de configuración ---> configuración de variable definida por el usuario : nombre de parámetro + valor de parámetro uso: consulte la variable de definición en la muestra de la solicitud HTTP. $(nombre del parámetro)
-
Método 2:
Configure: para configurar variables definidas por el usuario en el plan de prueba. Use: haga referencia a las variables definidas en el muestreador de solicitudes HTTP. Escenario de aplicación $(nombre del parámetro) : cuando es necesario modificar los valores de los parámetros en una gran cantidad de scripts, es más conveniente modificar directamente el valor medio de la variable definida por el usuario
parámetros de usuario
Agregar: grupo de subprocesos ---> preprocesador ---> configuración de parámetros de usuario:
-
Parámetros: agregar variables
-
Valor del parámetro: agregar usuario ---> configurar diferentes valores de parámetro para cada usuario
Uso: haga referencia a la variable definida en la muestra de la solicitud HTTP. $(nombre del parámetro)
Escenario de aplicación: se pueden obtener diferentes valores de parámetros para diferentes usuarios
Configuración del conjunto de datos CSV
Agregar: grupo de subprocesos ---> elemento de configuración ---> configuración del archivo de datos CSV
Escribir archivo de datos CSV (.csv como sufijo):
-
Los parámetros múltiples se escriben como columnas múltiples, separados por comas
-
Para varios conjuntos de valores de parámetros, utilice varias líneas para establecer
Configuración:
-
camino
-
Codificación de archivos: UTF-8
-
Nombre de la variable: los datos leídos del archivo de datos CSV deben guardar el nombre de la variable. Separe múltiples variables con comas
-
Si ignorar la primera línea: si comenzar a leer desde la primera línea del archivo CSV
-
Delimitador: se requiere que sea coherente con el delimitador de varias columnas en el archivo de datos CSV
-
Si volver a repetir cuando se encuentre con el final del archivo: predeterminado VERDADERO
-
Si detener el subproceso al encontrar el final del archivo: el parámetro actual es FALSO, este parámetro es válido, generalmente establecido en VERDADERO
función
encimera:
-
VERDADERO: cada usuario usa un contador separado
-
FALSO: todos los usuarios usan contadores globales
Referencia: Use $(__counter(FALSE,)) en la muestra para referirse al valor correspondiente
Se recomienda que utilice el método de función
aserción Jmeter
Función: durante la ejecución automática del script, cuando es posible determinar automáticamente si el resultado de la ejecución cumple con los requisitos, se debe agregar una afirmación
afirmación de respuesta
Añadir: Grupo de subprocesos--->Solicitud HTTP--->Afirmación--->Afirmación de respuesta
Configuración:
-
Campo de prueba: el campo que debe verificarse
-
Reglas de coincidencia de patrones: qué reglas se deben usar para verificar
-
Modo de prueba: el valor que necesita ser verificado
afirmación json
Se aplica a las respuestas HTTP devueltas en formato JSON
Añadir: Grupo de subprocesos--->Solicitud HTTP--->Afirmación--->Afirmación JSON
Configuración:
-
RUTA JSON:$.weatherinfo.city
-
Marque "Valor de afirmación adicional"
-
Rellene el valor esperado en valor esperado
Duración de la afirmación:
Cuando corresponda a las pruebas de rendimiento, verifique si el tiempo de respuesta de las solicitudes HTTP excede el valor esperado
Añadir: Grupo de subprocesos--->Solicitud HTTP--->Afirmación--->Duración de la afirmación
Configuración: tiempo esperado
Asociaciones Jmeter (extractores, bases de datos, controladores lógicos, etc.)
Cuando existe una dependencia entre múltiples solicitudes y los parámetros de la última solicitud necesitan usar los datos de respuesta de la solicitud anterior, se requiere asociación.
Clasificación:
-
Extractor de expresiones regulares
-
extractor xpath
-
extractor json
extractor
extractor normal
Añadir: grupo de subprocesos--->Solicitud HTTP--->postprocesador--->extractor de expresiones regulares
Configuración:
-
Campos de respuesta para verificar: cuerpo predeterminado
-
Nombre de referencia: el nombre de la variable para almacenar los datos coincidentes
-
Expresión regular:
<p>(.*?)</p>,"()"里是要保存的数据
-
Plantilla: $1$
-
El dato 1 representa el número () en la expresión regular anterior
-
-
Números coincidentes: 0 para un valor aleatorio, 1 para el primer resultado, -1 para todos los resultados
-
Valor predeterminado: almacena el valor en una variable cuando no hay coincidencia
extractor xpath
Agregar: grupo de subprocesos--->Solicitud HTTP--->postprocesador--->xpath extractor
Configuración:
-
Nombre de referencia: el nombre de la variable para almacenar los datos coincidentes
-
ruta xpath: reglas de coincidencia xpath
-
Números coincidentes: 0 para un valor aleatorio, 1 para el primer resultado, -1 para todos los resultados
-
Valor predeterminado: almacena el valor en una variable cuando no hay coincidencia
extractor json
Agregar: grupo de subprocesos ---> solicitud HTTP ---> posprocesador ---> extractor json
Configuración:
-
Nombre de referencia: el nombre de la variable para almacenar los datos coincidentes
-
ruta json: ruta json. $.weatherinfo.city
Referencia: solo consulte el nombre de la variable directamente
base de datos
Preparación de la conexión:
-
Abra la base de datos y determine las tablas y los campos correspondientes de la base de datos.
-
Cargue el controlador jdbc de mysql
-
Método 1: agregue el controlador jdbc a través del plan de prueba y navegue
-
Método 2: coloque el paquete jar del controlador jdbc en el directorio lib\ext y reinicie jmeter
-
-
implementación configuración de conexión jdbc
-
nombre del grupo creado: Nombre el grupo de conexiones para referencias posteriores
-
URL de la base de datos: jdbc:mysql://127.0.0.1:3306/test
-
nombre de usuario
-
contraseña
-
Conectado directamente a la base de datos mediante:
-
Añadir solicitud JDBC: añadir bajo muestra
-
Configuración:
-
Si la declaración SQL devuelve múltiples parámetros, ingrese la misma cantidad de nombres de variables para guardar
-
Configurar el nombre del grupo de conexiones
-
Configurar sentencias SQL
-
El nombre de la variable guardada.
-
-
En la aserción HTTP, se puede hacer referencia a las variables para su juicio
controlador lógico
Secuencia de ejecución de los elementos de control
si controlador
Añadir: grupo de subprocesos--->controlador lógico--->si el controlador
Configuración:
-
Use la versión preliminar de JS: "${name}"=="baidu"
-
La forma de usar la función jmeter: ${__jexl3("${name}"=="baidu")}
-
Forma recomendada de usar las funciones
controlador de ciclo
Especifique la solicitud HTTP para ejecutar un número específico de veces
Agregar: Grupo de subprocesos ---> Controlador lógico ---> Controlador de bucle
Configuración: Horarios
La configuración del número de ciclo m en el controlador de bucle se compara con la configuración del número de ciclo n en el grupo de subprocesos:
-
Relación: si se configura al mismo tiempo, la cantidad de solicitudes HTTP realmente ejecutadas bajo el controlador de bucle debe ser n*m
-
Diferencia: el alcance de estos dos tiempos de bucle es diferente
Para cada controlador
Usado con variables definidas por el usuario o extractores de expresiones regulares, recorra los valores de las variables devueltas, una o más veces.
-
Trabajar con variables definidas por el usuario
Añadir: Grupo de subprocesos--->Controlador lógico--->Controlador ForEach
Configuración:
-
nombre de variable para citar la salida
-
prefijo variable: prefijo fijo configurado en variables definidas por el usuario
-
Número inicial: valor mínimo de números consecutivos - 1
-
Número final: el valor máximo de números consecutivos
-
Nombre de la variable de salida: lea el valor de la variable secuencialmente y guárdelo en el parámetro, y consúltelo mediante una solicitud HTTP
-
Nombre de variable: prefijo fijo + números consecutivos
-
variable definida por el usuario
-
Para cada controlador
-
Solicitud HTTP:
-
-
Funciona con expresiones regulares.
-
Primero use el extractor de expresiones regulares para extraer todos los datos que cumplan con las condiciones en la solicitud
-
Agregue un controlador ForEach y configúrelo para extraer todos los datos que cumplan con las condiciones y guárdelo como una variable
-
Debajo de su nodo secundario, agregue una solicitud HTTP y cite una variable para leer todos los datos coincidentes en la expresión regular en un bucle
-
Temporizador
temporizador síncrono
Cuando se requiere una gran cantidad de pruebas de simultaneidad de usuarios, para permitir que los usuarios ejecuten al mismo tiempo, agregue un "temporizador sincrónico" para bloquear el subproceso hasta que alcance el valor preestablecido antes de iniciar la operación de muestreo.
Configuración:
-
Concurrencia: a cuántos usuarios se llega al mismo tiempo antes de comenzar a enviar solicitudes
-
tiempo extra:
-
Debe configurarse: de lo contrario, cuando el número de usuarios virtuales no puede ser divisible por el número concurrente, algunos usuarios se bloquearán y no podrán ejecutar
-
La configuración no puede ser demasiado corta: debe ser más larga que el tiempo de carga concurrente. De lo contrario, no se puede cumplir con el requisito de número concurrente y los datos se divulgarán.
-
Temporizador de rendimiento constante
Se utiliza en la prueba de rendimiento para simular la presión comercial generada por el usuario y envía una solicitud de frecuencia fija al servidor a través de un QPS determinado.
Agregar: Grupo de subprocesos ---> Muestreador HTTP ---> Temporizador de rendimiento constante
Configuración: el valor del rendimiento QPS*60
repartido
principio:
-
Las pruebas distribuidas se dividen en una máquina de control y varias máquinas de agente
-
La máquina de control es la encargada de emitir tareas de prueba a los agentes
-
La máquina agente recibe la tarea y envía una solicitud al servidor, recibe la respuesta devuelta por el servidor y luego devuelve el resultado de la prueba a la máquina de control.
-
La máquina de control lleva a cabo estadísticas resumidas sobre los datos de resultados de la prueba.
Notas relacionadas distribuidas:
-
Todos los cortafuegos de las máquinas de prueba se han desactivado.
-
Todas las máquinas y servidores de prueba están en la misma red
-
La versión jmeter de todas las máquinas de prueba es exactamente la misma que la versión JDK
-
Apague el interruptor RMI SSL en jmeter
configuración distribuida
configuración
-
Apoderado
-
server_port: no repetido. Si usa varias máquinas como agentes, no necesita configurar
-
Deshabilitar RMI SSL
-
-
máquina de control
-
servidor_remoto: IP+puerto de todos los agentes, separados por comas cuando hay varios agentes
-
Deshabilitar RMI SSL
-
correr
-
Apoderado
-
ejecutar jmeter-server.bat
-
-
Máquina de control:
-
ejecutar jmeter.bat
-
Controle la máquina del agente para ejecutar el script, ejecute ---> inicio remoto todo
-
Explicación de los términos comunes en las pruebas de rendimiento
Pruebas de rendimiento, algunos términos técnicos, para facilitar la comprensión de todos, aquí hay una explicación en un lenguaje fácil de entender, si hay alguna inexactitud, gracias por corregir.
Concurrencia: número de subprocesos tps: número de personas que participan en la carrera en la pista Iteración: cuántas vueltas corre cada persona Bucle: en una iteración, uno de los scripts se ejecuta en un bucle, que consiste en ejecutar una de las pistas repetidamente Valor del parámetro: la parametrización de datos utilizada al enviar la solicitud Tiempo de reflexión: simular el tiempo de espera del usuario Asociación: el parámetro de entrada de la siguiente solicitud depende de un cierto valor de retorno en Punto de control: para juzgar si la solicitud es exitosa, generalmente solo se agregarán puntos de control a las solicitudes de consulta, es decir, puntos de recopilación de aserciones: espere a que todos los usuarios inicien solicitudes al mismo tiempo. El escenario principal de la aplicación es la transacción seckill en compras: generalmente define una o varias solicitudes bajo prueba juntas como una Transacción es una definición de prueba artificial, que puede ser todo el proceso de pedido, o una solicitud de carga en el pedido: la ocupación del servidor, si un servidor puede procesar 8 solicitudes en al mismo tiempo a la vez, si la cantidad de solicitudes es grande, las solicitudes posteriores se ponen en cola, cuantas más solicitudes en cola, mayor será la carga del servidor Tiempo de respuesta promedio (arte): tiempo de procesamiento de cada transacción, desde que se envía una solicitud hasta que se recibe una respuesta tps: cantidad de transacciones procesadas por segundo hit rate per second (number): la cantidad de solicitudes procesadas por segundo, no la cantidad de solicitudes enviadas por los usuarios por segundo
Ruta de aprendizaje de rendimiento: jmeter→conceptos básicos de java→beanshell→conocimiento de arquitectura→análisis y ajuste de linux→varias posiciones y ajustes de middleware
Pruebas de rendimiento, desde 0 hasta el combate real (incluidas las populares tecnologías principales docker, k8s, skywalking, full link, microservicios, ajuste de rendimiento, etc.)
Escasa fuerza [compartir recursos]
Finalmente, me gustaría agradecer a todos los que han leído mi artículo detenidamente. Al ver el crecimiento y la atención de los fanáticos en todo momento, siempre existe la necesidad de reciprocidad. Aunque no es algo muy valioso, puede quitárselo si lo desea. necesito:
El tutorial completo de aprendizaje en video de prueba de software a continuación ha subido el código QR certificado oficialmente por CSDN. Si lo necesita, puede obtenerlo gratis [garantizado 100% gratis]
Estos materiales deberían ser el almacén de preparación más amplio y completo para los amigos que quieren avanzar [pruebas automatizadas]. ¡Este almacén también me ha acompañado a través del viaje más difícil, y espero que pueda ayudarlos a ustedes también! Todo debe hacerse lo antes posible, especialmente en la industria técnica, debemos mejorar nuestras habilidades técnicas. Espero que sea útil para todos... Conocimientos básicos, conceptos básicos de Linux, Shell, principios de programas de Internet, base de datos Mysql, temas de herramientas de captura de paquetes, herramientas de prueba de interfaz, pruebas avanzadas: programación en Python, pruebas de automatización web, pruebas de automatización de aplicaciones, interfaz automatización Intercambio gratuito de recursos de aprendizaje de apoyo, como pruebas, pruebas, integración continua avanzada, desarrollo de marcos de pruebas, marco de pruebas, pruebas de rendimiento y pruebas de seguridad ~