Cuando generalmente pensamos en las pruebas de rendimiento, o cuando se utiliza el término pruebas de rendimiento, lo que normalmente viene a la mente son las pruebas de carga. Aún más, esos términos a veces se utilizan indistintamente. Sin embargo, hay una diferencia. Las pruebas de carga y esfuerzo son solo subconjuntos o tipos de las pruebas de rendimiento dentro de la familia de pruebas de rendimiento. Las pruebas de carga se pueden ejecutar en varios sistemas, sitios web, aplicaciones web, API y mucho más. Se aplica la carga simulada, normalmente comenzando en niveles más bajos, y aumentando lentamente la carga con el tiempo, con el fin de medir el rendimiento bajo carga y cómo responde el sistema general.
Dependiendo del tipo de agente de escucha que haya elegido, puede ver los resultados a medida que se ejecuta la prueba. Por ejemplo, si seleccionó Ver resultados en tabla, verá que los resultados se muestran a medida que se ejecuta cada ejecución o usuario. También se incluirán en los resultados métricas adicionales, como Tiempo (en milisegundos), Estado (muestra respuestas y errores válidos), Bytes y bytes enviados, Latenciay Tiempo de conexión. A partir de estos resultados puede ver dónde se produjo cualquier error o dónde puede haber tiempos de carga lentos.
Medir el tiempo de respuesta de Django
Aún más, a medida que más aplicaciones dependen del explorador en lugar del servidor para la funcionalidad y el rendimiento, también debe alejarse de las herramientas que solo pueden realizar pruebas de carga basadas en protocolos. En el sitio web de JMeter, se indica claramente que no puede ejecutar o representar JavaScript como lo hace un navegador, solo se incluyen los tiempos de respuesta. Poder probar cómo se representa la aplicación o la página bajo carga es una gran parte de la experiencia del usuario. No solo eso, sino que los usuarios no se encuentran en la misma región geográfica que su empresa. La herramienta de prueba de rendimiento adecuada también debe proporcionar una manera de llevar a cabo fácilmente pruebas distribuidas externas para obtener una mejor información sobre el rendimiento real en todas las regiones geográficas.
Después de configurar y guardar los detalles y la configuración de la prueba de carga, puede seleccionar el botón Ejecutar en la barra de herramientas y comenzará la prueba. Verá que los resultados de Sampler se cargan en la ventana y proporcionará los distintos detalles, datos y métricas, como latencia, códigos de respuesta, tiempo de conexión, etc., de la prueba de la API de REST. Pruebas de API SOAP Las API REST (Representational State Transfer) o RESTful Creating a SOAP (Simple Object Access Protocol) API test en JMeter son similares a los pasos para crear una prueba de carga de la API de REST. Sin embargo, SOAP es diferente de una API de REST, ya que es su propio protocolo, por lo que hay consideraciones que deben realizarse al probar la carga de las API soap, como la seguridad y el cumplimiento, el ancho de banda (las API soap normalmente necesitan más recursos) y la funcionalidad, como la lógica de reintentos, que las API de REST no tienen. Echemos un vistazo a los pasos implicados para crear una prueba de API SOAP en JMeter. Paso 1: Plan de prueba Hemos tocado esto en las secciones anteriores, pero JMeter proporciona una variedad de plantillas de plan de prueba. Se puede acceder a ellos a través del menú o el icono Plantillas ubicado en la barra de herramientas principal. Hay una opción denominada Creación de un plan de pruebas SOAP WebService. Al seleccionar esto, se creará y se abrirá el plan de prueba. Verá secciones adicionales, como Variables definidas por el usuario, Valores predeterminados de solicitud HTTP, Número de usuarios, etc. Y dado que se trata de una plantilla, también habrá valores de marcador de posición en algunos de los campos donde tendrá que introducir los datos e información adecuados.Paso 2: Grupo de subprocesos Al igual que cubrimos en la configuración de la API de REST, deberá agregar su número de usuarios, o subprocesos,período de aceleración y bucles,o probar iteraciones. Como subgrupo dentro del grupo de subprocesos principal, podrá acceder a la configuración de solicitud HTTP, como hemos cubierto para la configuración de la API de REST. Sin embargo, el aspecto de esta sección es un poco diferente, ya que de forma predeterminada mostrará el cuerpo de la solicitud de API soap. También se incluye las subsecciones Desaproteger de encabezado HTTP y Aserciones de respuesta. Y al igual que la configuración de la API de REST, también puede agregar elementos de configuración adicionales, como el Administrador de autorización HTTP,para los casos en los que necesite incluir los detalles específicos de la autorización.
Dentro de cada uno de los diferentes muestreadores JMeter, hay opciones de configuración específicas, incluyendo la configuración de varios parámetros de tiempo de espera, como tiempo de espera de conexión, tiempo de espera de lectura, tiempo de espera de respuesta, tiempos de espera de consulta, etc. Si sampler no admite tiempos de espera, se debe establecer el tiempo de espera suficiente para que no se agote el tiempo de espera durante una prueba de carga.
El módulo time es un módulo integrado que contiene muchas funciones relacionadas con el tiempo. Se pueden usar varios métodos dentro del módulo de tiempo para calcular el tiempo de ejecución de un programa en Python. Estos métodos se analizan a continuación.Calcular el tiempo transcurrido de una función con la función time() del módulo time en PythonLa función time() nos da la hora actual en segundos. Devuelve un valor flotante que contiene la hora actual en segundos. El siguiente ejemplo de código nos muestra cómo podemos calcular el tiempo de ejecución de una función con la función time() en Python.import timestart = time.time()print("The time used to execute this is given below")end = time.time()print(end - start)Producción:The time used to execute this is given below0.00011444091796875En el código anterior, primero inicializamos la variable start que contiene la hora de inicio usando la función time() y luego inicializamos la variable end después de la declaración print() usando la función time(). Luego calculamos el tiempo total de ejecución restando el start del end.Calcular el tiempo transcurrido de una función con la función perf_counter() del módulo time en PythonLa función perf_counter() proporciona la medida más precisa del tiempo del sistema. La función perf_counter() devuelve el tiempo de todo el sistema y tiene en cuenta el tiempo de reposo. La función perf_counter() también se puede utilizar para calcular el tiempo de ejecución de una función. El siguiente ejemplo de código nos muestra cómo podemos calcular el tiempo de ejecución de una función con la función perf_counter() en Python.import timestart = time.perf_counter()print("This time is being calculated")end = time.perf_counter()print(end - start)Producción:This time is being calculated0.00013678300001629395En el código anterior, primero inicializamos la variable start que contiene la hora de inicio usando la función perf_counter() y luego inicializamos la variable end después de la declaración print() usando la función perf_counter(). Luego calculamos el tiempo total de ejecución restando el start del end.Calcular el tiempo transcurrido de una función con la función process_time() del módulo time en PythonLa función perf_counter() se ve afectada por otros programas que se ejecutan en segundo plano en la máquina. También cuenta el tiempo de sueño. Por tanto, no es ideal para medir el tiempo de ejecución de un programa.La mejor práctica para usar la función perf_counter() es ejecutarla varias veces, y luego el tiempo promedio daría una estimación razonablemente precisa del tiempo de ejecución.Otro enfoque sería utilizar la función process_time(). La función process_time() está diseñada específicamente para estimar el tiempo de ejecución de un programa. No se ve afectado por otros programas que se ejecutan en segundo plano en la máquina. Tampoco cuenta el tiempo de reposo.La función process_time() devuelve un valor flotante que contiene la suma del sistema y el tiempo de CPU del usuario del programa. El siguiente ejemplo de código nos muestra cómo podemos calcular el tiempo de ejecución de una función con la función process_time() en Python.import timestart = time.process_time()print("This time is being calculated")end = time.process_time()print(end - start)Producción:This time is being calculated0.000991254000000108En el código anterior, primero inicializamos la variable start que contiene la hora de inicio usando la función process_time() y luego inicializamos la variable end después de la declaración print() usando la función process_time(). Luego calculamos el tiempo total de ejecución restando el start del end.Author: Muhammad Maisam AbbasMaisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
Phoenix es un marco de trabajo de desarrollo escrito en el lenguaje de programación Elixir. Utiliza un patrón MVC y se basa en la biblioteca Plug y el marco de trabajo Cowboy Erlang. Phoenix fue desarrollado para facilitar la creación de aplicaciones escalables y de alto rendimiento. Ofrece la funcionalidad de solicitud/respuesta desde el servidor Cowboy, junto con la comunicación del cliente externo en tiempo real a través de Websockets y canales agnósticos.
Muchas características afectan el rendimiento, incluida la latencia, el tamaño de la aplicación, la cantidad de nodos DOM, la cantidad de solicitudes de recursos realizadas, el rendimiento de JavaScript, la carga de la CPU y más. Es importante minimizar los tiempos de carga y respuesta, y agregar funciones adicionales para ocultar la latencia al hacer que la experiencia sea lo más accesible e interactiva posible, tan pronto como sea posible, mientras se carga de forma asíncrona en las partes más largas de la experiencia.
2ff7e9595c
Comentarios