[Básico] Pruebas de rendimiento, desde 0 hasta combate real (enseñanza práctica, muy práctica)

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

  1. 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

  2. Gestión de riesgos en la fase de prueba de rendimiento general ---> perspectiva de gestión

  3. 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

  1. 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.

  2. Muchos protocolos compatibles

  3. 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?

  1. Prefiero elegir Jmeter

  2. 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:

    1. Abra jmeter.properties

    2. Modificar idioma=zh_CN

    3. reiniciar jmeter

modificación del tema

Opciones ---> Temas ---> Seleccione el tema correspondiente, reinicie jmeter

operación básica

  1. iniciar jmeter

  2. Agregar grupo de hilos

  3. Agregue una muestra para solicitudes http y configure

  4. Agregar un oyente para el árbol de resultados de la consulta

  5. 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:

  1. Modifique el archivo jmeter.properties, sampleresult.default.encoding=utf-8

  2. 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.

  1. 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:

  2. 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 ~

Supongo que te gusta

Origin blog.csdn.net/myh919/article/details/131380757
Recomendado
Clasificación