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 '

-1
Razvan Ristea 18 Aug. 2020 im 23:01

2 Antworten

Beste Antwort

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')]
1
Solowalker 18 Aug. 2020 im 22:23

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

0
Razvan Ristea 19 Aug. 2020 im 07:55