Mucha gente sabe que jmeter puede realizar pruebas de rendimiento. ¿Sabía que jmeter puede especificar la cantidad de subprocesos y el tiempo de ejecución cuando comienza a ejecutarse y personalizar escenarios de rendimiento?
Prueba de rendimiento de jmeter, escenarios de rendimiento establecidos dinámicamente
Por lo general, cuando usamos jmeter para pruebas de rendimiento, usamos grupos de subprocesos ordinarios y los parámetros de la escena, como la cantidad de usuarios simultáneos y el tiempo de ejecución, son fijos y están codificados. Al ejecutar el script, se ejecuta de acuerdo con el escenario codificado en el script.
Si desea aprender sobre pruebas automatizadas, aquí le recomiendo un conjunto de videos. Se puede decir que este video es el primer tutorial de prueba de automatización de interfaz en toda la red en la estación B. Al mismo tiempo, la cantidad de usuarios en línea ha aumentado. Llegó a 1000 y hay notas para cobrar y varios Intercambio técnico de Lu Dashen: 798478386
Creo que la mayoría de ellos usan jmeter para pruebas de rendimiento y diseño de escenarios de rendimiento, que son similares a la imagen de arriba, incluida la cantidad de subprocesos muertos, el tiempo de aceleración y el tiempo de ejecución continua.
Esto es excelente y se puede usar directamente, pero cuando usamos el modo CLI para realizar pruebas de carga, esperamos poder cambiar la cantidad de subprocesos, el tiempo de aceleración y el tiempo de ejecución continua en cualquier momento. ¿hazlo tu?
Utilice la interfaz gráfica de usuario de jmeter para modificar estos valores de parámetros en la escena, luego guárdelos y ejecútelos nuevamente, o edite directamente el archivo script jmx, guárdelos y ejecútelos nuevamente.
Ambos métodos están bien, pero ¿crees que es más problemático? ¿Existe una forma más concisa de hacer esto?
En mi enseñanza, les dije que además de las variables, jmeter también tiene 'propiedades', que son las etiquetas de la herramienta jmeter y se pueden usar en cualquier parte de la herramienta jmeter.
jmeter no solo admite la configuración de propiedades estáticas en el archivo de propiedades, sino que también admite la generación dinámica de propiedades durante la ejecución del script y también admite la importación externa de propiedades dinámicas.
Podemos modificar la escena como se muestra en la figura:
Al obtener el atributo pthreads, especifique el número de subprocesos, obtenga el atributo pramp para especificar el tiempo de aceleración y obtenga el atributo pruntime para especificar el tiempo de ejecución continua.
¿Existen realmente estos atributos? ¿Qué significan los números después de eso?
En primer lugar, la función P, en jmeter, es una función de adquisición de atributos. Tiene dos parámetros. El primer parámetro es el nombre del atributo. Estos atributos pueden ser atributos estáticos definidos de antemano o atributos dinámicos generados dinámicamente, como se muestra en la figura Todos los atributos utilizados no están definidos de antemano y se definen dinámicamente en tiempo de ejecución, el segundo parámetro es el valor predeterminado del atributo, cuando el atributo no obtiene un valor, se utiliza este valor predeterminado.
¿Cuál es el significado?
Es decir, si está diseñado como se indica arriba, si lo ejecuta directamente sin pasar ningún valor de atributo, iniciará 30 usuarios simultáneos en 1 segundo y se ejecutará continuamente durante 60 segundos.
Ahora puede estar seguro de que incluso si no pasa estos valores de atributos, esta escena aún puede ejecutarse normalmente.
Entonces, ¿cómo deberíamos pasar estos valores de atributos al realizar pruebas de rendimiento en modo CLI?
En primer lugar, debemos saber que generalmente hay dos formas de usar el modo CLI para las pruebas de rendimiento: una es iniciar directamente el script local para ejecutarlo y la otra es usar distribuido y especificar la máquina de asistencia para ejecutar.
-
Utilice el comando CLI para especificar directamente el script local que se ejecutará
En el comando CLI, use -J[nombre_propiedad]=valor para pasar el valor de la propiedad
# 本地运行, 指定pthreads线程数属性参数值为50,pruntime持续运行时间属性参数值为70秒
jmeter.bat -n -t .\jkscript\demo_script.jmx -Jpthreads=50 -Jpruntime=70 \
-l test001.jtl -e -o .\jkscript\test001
Vea, en operación real, 50 subprocesos, ejecutándose durante 70 segundos.
-
Utilice el comando CLI para especificar la máquina de asistencia que se ejecutará
En el comando CLI, use -G[nombre_propiedad]=valor para pasar el valor de la propiedad
# 采用助攻机运行 指定pthreads线程数属性参数值为80,指定pruntime持续运行时长属性参数值为120秒
jmeter.bat -n -R 192.168.x.x:port -t .\jkscript\demo_script.jmx -Gpthreads=80 -Gpruntime=120 \
-l test002.jtl -e -o result002
Mire, en la operación real, de acuerdo con la configuración de los parámetros del comando, se están ejecutando 80 subprocesos y la ejecución dura 120 segundos.
Con esta tecnología, ya no necesitamos abrir el script para modificar la escena de rendimiento, solo necesitamos cambiar los parámetros del script al ejecutar el comando. Sin embargo, debemos recordar claramente que cuando se ejecuta localmente, use 'J' antes del nombre del parámetro de atributo, y cuando se ejecuta de manera distribuida, use 'G' antes del nombre del parámetro de atributo.