Locust.io, yeni bir koşuyu başlattığımda / durdurduğumda sistem hatası yapmadan locust.io'da farklı kullanıcıları nasıl kullanabilirim?

Aug 19 2020

Locust.io konuşlandırılmış bir sunucuda ilk çalıştırmada iyi çalışan bu koda sahibim, ancak yeni bir çalıştırmayı başlatıp / durdurduğumda listeyle ilgili olarak birden çok hata alıyorum. Döndürmem için bana yardım edebilir misin?

from locust import HttpUser, task, between, SequentialTaskSet, events
import uuid
import json
import csv
import logging, sys, random, os

with open('somecsv.csv', 'r') as f:
    reader = csv.reader(f)
    user= list(reader)
    #print(user)

class somethingclass(SequentialTaskSet):

    def on_start(self):
        if len(user) > 0:
            self.id= str(user.pop()).strip("][''")

    @task
    def someting(self):
        do something with self.id request
  
    @task
    def someting2(self):
        do something with self.id request
                        


class Main(HttpUser):
    
    wait_time = between(5, 10)
    tasks = [somethingclass]
    
    def _init_(self, *args, **kwargs):
        super(Main, self)._init_(*args, **kwargs)

hatalar:

[2020-08-18 23: 06: 50,899] PC / ERROR / locust.user.task: 'somethingclass' nesnesinin 'id' niteliği yok Traceback (en son çağrı son): Dosya "c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py ", satır 284, run self.execute_next_task () Dosya" c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py ", satır 309, execute_next_task self içinde .execute_task (self._task_queue.pop (0)) Dosya "c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py", satır 321, execute_task task (self) Dosyasında "C: \ Users \ user \ Desktop \ Work \ Chipico Chip Transfer \ chiptransfer_load.py ", satır 44," uuid "olarak: '% s'% self.id, AttributeError: 'somethingclass' nesnesinin 'id' niteliği yok

Yanıtlar

1 Solowalker Aug 19 2020 at 03:57

Sen kullanabilirsiniz test_start ve test_stop olayları sizin sıfırlamak için userverileri.

from locust import User, task, constant, TaskSet, events
from logging import getLogger
import uuid

logger = getLogger("test")
user = []

@events.test_start.add_listener
def start_something(**kwargs):
    logger.info("Starting test...")
    user.append(uuid.uuid4())

class somethingclass(TaskSet):
    @task
    def do_something(self):
        logger.info(f"User: {user}")

class Main(User):
    wait_time = constant(2)
    tasks = [somethingclass]

Bu bana, testlerin birden çok durdurulması ve başlatılmasıyla birlikte aşağıdaki çıktıyı veriyor.

[2020-08-18 16:14:12,549] INFO/locust.main: Starting web interface at http://:8089
[2020-08-18 16:14:12,557] INFO/locust.main: Starting Locust 1.1.1
[2020-08-18 16:14:15,759] INFO/test: Starting test...
[2020-08-18 16:14:15,759] INFO/locust.runners: Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-08-18 16:14:15,759] INFO/locust.runners: All users hatched: Main: 1 (0 already running)
[2020-08-18 16:14:15,760] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd')]
[2020-08-18 16:14:17,764] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd')]
[2020-08-18 16:14:19,765] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd')]
[2020-08-18 16:14:21,767] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd')]
[2020-08-18 16:14:28,674] INFO/test: Starting test...
[2020-08-18 16:14:28,675] INFO/locust.runners: Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-08-18 16:14:28,675] INFO/locust.runners: All users hatched: Main: 1 (0 already running)
[2020-08-18 16:14:28,675] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd'), UUID('c061117e-f585-4da6-8188-59a0e1ff8acb')]
[2020-08-18 16:14:30,679] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd'), UUID('c061117e-f585-4da6-8188-59a0e1ff8acb')]
[2020-08-18 16:14:32,682] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd'), UUID('c061117e-f585-4da6-8188-59a0e1ff8acb')]
[2020-08-18 16:14:34,688] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd'), UUID('c061117e-f585-4da6-8188-59a0e1ff8acb')]
[2020-08-18 16:14:38,426] INFO/test: Starting test...
[2020-08-18 16:14:38,427] INFO/locust.runners: Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-08-18 16:14:38,427] INFO/locust.runners: All users hatched: Main: 1 (0 already running)
[2020-08-18 16:14:38,428] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd'), UUID('c061117e-f585-4da6-8188-59a0e1ff8acb'), UUID('cfd2a456-87d4-4cb2-b7d2-939bb1dfc560')]
[2020-08-18 16:14:40,433] INFO/test: User: [UUID('f4e9d580-af4a-4fb7-804a-372faa8fcacd'), UUID('c061117e-f585-4da6-8188-59a0e1ff8acb'), UUID('cfd2a456-87d4-4cb2-b7d2-939bb1dfc560')]
RazvanRistea Aug 19 2020 at 14:55

çekirge ithalatından Kullanıcı, görev, sabit, TaskSet, günlüğe kaydetme olayları içe aktar getLogger import uuid

logger = getLogger ("test") user = []

@ events.test_start.add_listener def start_something (** kwargs): logger.info ("Test başlatılıyor ...") user.append (uuid.uuid4 ())

class somethingclass (TaskSet): @task def do_something (self): logger.info (f "User: {user}")

sınıf Ana (Kullanıcı): bekleme_süresi = sabit (2) görevler = [bir şey sınıfı]

doğru cevap