Serie Locust Performance-Zero Foundation Entry (5)

Uno: Otra forma de escribir el atributo de tareas:


Primero cargue el código de muestra del script

from locust import User, constante 

def task_1 (l): 
    print ("Esta es la tarea 1") 

def task_2 (l): 
    print ("esto es task_2") 

class MyUser (Usuario): 
    tasks = {task_1: 1, task_2: 2}  
    tiempo_espera = constante (1)


Interpretación del código:

Las líneas 1-7 se han introducido antes, así que omítalas aquí.

La línea 9 define una clase de usuario.

La décima línea es la definición del valor del atributo de tareas. El valor del atributo aquí no es el mismo que en el artículo Locust Performance-Introduction to Zero Foundation (4) -El uso del valor de  atributo de tareas introducido en el atributo de tarea es diferente. El formulario de diccionario se usa aquí, excepto para definir tareas Fuera del alcance de, también se establece el peso de cada tarea. Por ejemplo, el peso de task_1 es 1 y el peso de task_2 es ​​2, de modo que un tercio del tráfico ejecutará task_1 y el tráfico restante ejecutará task_2. Este modelo es más simple y más fácil de entender. De hecho, a través del experimento del autor, existe una forma de escribir el atributo de tareas con pesos que es más fácil de entender. detalles como sigue:

tasks = [task_1, task_2, task_2]

El atributo de tareas todavía se asigna en forma de lista, pero en la lista, encontrará que task_2 aparece dos veces, lo que indirectamente logra el propósito de establecer el peso. Es solo que este método es un poco torpe, pero en realidad es más fácil de entender.


Dos: pantalla de creación de instancias de usuario

Sabemos que Locust debe heredar la clase User para simular usuarios virtuales, o sus subclases, como la clase HttpUser. Entonces, en la compleja simulación de escenas, cuando aparecen diferentes clases de usuarios, ¿cómo ubicar o identificar la identidad del usuario virtual actual? Locust proporciona una forma de obtener la identidad de un usuario virtual, el código específico es el siguiente:

from locust import Usuario, tarea, 

clase constante MyUser (Usuario): 
    wait_time = constant (1) 
    @task 
    def my_task (self): 
        print ("Instancia de usuario (% r) ejecutando my_task"% self)

Como se muestra en la séptima línea del código anterior, donde% r es un marcador de posición, puede obtener la información de contexto de la instancia de Usuario. Tenga en cuenta que debe ser% r. Después de que se ejecute el script, obtendremos la información del usuario arriba y abajo de la siguiente manera: Podemos ver claramente que hay dos usuarios virtuales, y estos dos usuarios virtuales heredan la clase de usuario MyUser.

Todos los usuarios eclosionaron: MyUser: 2 (0 ya en ejecución) 
Instancia de usuario (<file6.MyUser objeto en 0x10a61b2e8>) ejecutando my_task 
User instance (<file6.MyUser objeto en 0x10a688748>) ejecutando my_task 
User instancia (<file6.MyUser objeto en 0x10a61b2e8 >) ejecutando my_task 
User instance (<file6.MyUser objeto en 0x10a688748>) ejecutando my_task 
User instancia (<file6.MyUser objeto en 0x10a61b2e8>) ejecutando my_task 
User instancia (<file6.MyUser objeto en 0x10a688748>) ejecutando my_task 
User instancia (< file6.MyUser objeto en 0x10a61b2e8>) ejecutando my_task 
...


Supongo que te gusta

Origin blog.51cto.com/13734261/2543011
Recomendado
Clasificación