Ich habe diesen Code, der für den ersten Lauf auf einem von locust.io bereitgestellten Server gut funktioniert, aber wenn ich einen neuen Lauf starte / stoppe, erhalte ich mehrere Fehler in Bezug auf die Liste. Könntest du mir helfen, es radeln zu können?
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)
Fehler sind:
[2020-08-18 23: 06: 50,899] PC / ERROR / locust.user.task: Das Objekt 'Somethingclass' hat kein Attribut 'id'. Traceback (letzter Aufruf zuletzt): Datei "c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py ", Zeile 284, in run self.execute_next_task () Datei" c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py ", Zeile 309, in execute_next_task self .execute_task (self._task_queue.pop (0)) Datei "c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py", Zeile 321, in der Datei execute_task task (self) "C: \ Users \ Benutzer \ Desktop \ Arbeit \ Chipico Chip Transfer \ chiptransfer_load.py ", Zeile 44, in etwas" uuid ": '% s'% self.id, AttributeError: 'Somethingclass'-Objekt hat kein Attribut' id '
2 Antworten
Sie können test_start- und test_stop-Ereignisse, um Ihre user
-Daten zurückzusetzen.
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]
Dies gibt mir die folgende Ausgabe mit mehrfachem Stoppen und Starten von Tests.
[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')]
From locust import Benutzer, Task, Konstante, TaskSet, Ereignisse aus der Protokollierung import getLogger import uuid
Logger = getLogger ("test") user = []
@ events.test_start.add_listener def start_something (** kwargs): logger.info ("Test starten ...") user.append (uuid.uuid4 ())
Klasse Somethingclass (TaskSet): @task def do_something (self): logger.info (f "Benutzer: {Benutzer}")
Klasse Main (Benutzer): wait_time = Konstante (2) Aufgaben = [etwas Klasse]
Ist die richtige Antwort
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.