Locust.io bagaimana saya bisa menggunakan pengguna yang berbeda di locust.io tanpa gangguan sistem ketika saya memulai / berhenti untuk menjalankan baru
Saya memiliki kode ini yang berfungsi dengan baik untuk dijalankan pertama kali pada server yang diterapkan locust.io, tetapi ketika saya memulai / berhenti untuk menjalankan proses baru saya mendapatkan beberapa kesalahan, sehubungan dengan daftar. Bisakah Anda guyz membantu saya untuk dapat mengendarainya?
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)
kesalahannya adalah:
[2020-08-18 23: 06: 50.899] PC / ERROR / locust.user.task: objek 'sesuatu kelas' tidak memiliki atribut 'id' Traceback (panggilan terakhir terakhir): File "c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py ", baris 284, di jalankan self.execute_next_task () File" c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py ", baris 309, di execute_next_task self .execute_task (self._task_queue.pop (0)) File "c: \ windows \ system32 \ src \ locust \ locust \ user \ task.py", baris 321, di tugas execute_task (self) File "C: \ Users \ user \ Desktop \ Work \ Chipico Chip Transfer \ chiptransfer_load.py ", baris 44, di beberapa" uuid ": '% s'% self.id, AttributeError: objek 'sesuatu kelas' tidak memiliki atribut 'id'
Jawaban
Anda dapat menggunakan peristiwa test_start dan test_stop untuk menyetel ulang user
data Anda .
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]
Ini memberi saya keluaran berikut dengan beberapa penghentian dan permulaan tes.
[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')]
dari belalang impor Pengguna, tugas, konstanta, TaskSet, peristiwa dari logging impor getLogger import uuid
logger = getLogger ("test") pengguna = []
@ events.test_start.add_listener def start_something (** kwargs): logger.info ("Memulai pengujian ...") user.append (uuid.uuid4 ())
kelas sesuatu kelas (TaskSet): @task def do_something (mandiri): logger.info (f "Pengguna: {pengguna}")
kelas Utama (Pengguna): waktu tunggu = konstan (2) tugas = [kelas sesuatu]
adalah jawaban yang benar