Séries d'entrée à base zéro de performance acridienne (11) - utilisation des hooks d'événement

Locust est né avec de nombreux hooks d'événement (hooks d'événement) pouvant être utilisés. En plus de l'article précédent mentionné, il y en a que nous pouvons utiliser. Normalement, ces événements se trouvent dans l'instance d'environnement Locust (Environnement), mais comme vous le savez, lorsque le fichier Locust vient d'être chargé, l'instance d'environnement n'a pas encore été créée. Ensuite, dans le fichier locust, les objets de ces événements sont également directement accessibles, il suffit d'importer la variable locust.events. Lorsque l'événement est déclenché, la méthode hook de l'événement sera appelée, vous pouvez la comprendre comme une méthode de rappel. Il est expliqué en combinaison avec des cas spécifiques.

from locust import events,HttpUser,between,task
@events.request_success.add_listener
def process_success_requests(request_type,name,response_time,response_length,**kwargs):
    print('success Type: {}, Name: {}, ResposeTime: {}, Length: {}'.format(request_type,name,response_time,response_length))

class MyUser(HttpUser):
    wait_time = between(2,5)

    @task
    def open_index_page(self):
        self.client.get("http://www.myweb.com:8000/admin/login/?next=/admin/")

Dans le cas ci-dessus, par souci de simplicité, seul le hook d'événement permettant de traiter correctement la requête est implémenté. Lorsque la requête aboutit, le type de requête sera imprimé, tel que GET, POST, etc., l'URL demandée, le temps de réponse de la requête et la taille de retour de la requête. La sortie de la console après l'exécution du fichier locust est:

Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-11-27 08:59:30,215] jasondeMacBook-Pro.local/INFO/locust.runners: All users hatched: MyUser: 1 (0 already running)
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 127.31385231018066, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 108.82806777954102, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 103.49106788635254, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 119.99106407165527, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 98.76322746276855, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 104.08234596252441, Length: 94929
success Type: GET, Name: /admin/login/?next=/admin/, ResposeTime: 115.71598052978516, Length: 94929

Deuxièmement, les hooks de temps ci-dessus peuvent également être implémentés de la manière suivante (c'est-à-dire qu'au lieu d'utiliser des balises, utilisez des affectations de variables)
Séries d'entrée à base zéro de performance acridienne (11) - utilisation des hooks d'événement

Je suppose que tu aimes

Origine blog.51cto.com/13734261/2571560
conseillé
Classement