Locust.io, yeni bir koşuyu başlattığımda / durdurduğumda sistem hatası yapmadan locust.io'da farklı kullanıcıları nasıl kullanabilirim?
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
Sen kullanabilirsiniz test_start ve test_stop olayları sizin sıfırlamak için user
verileri.
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')]
ç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