#locust
#locust
Вопрос:
У меня есть следующий код, который отлично работает в locust 0.9. Теперь с 1.3 он выдает исключение, упомянутое в названии. Кто-нибудь может увидеть, что не так?
import time
import random
import datetime
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import logging
import json
import os
from random import randint, choice
from locust import HttpUser, TaskSet, task
from pyquery import PyQuery
requests.packages.urllib3.disable_warnings()
class FrontPage(TaskSet):
def on_start(self):
self.client.verify = False
@task(20)
def index(self):
self.client.get("/")
class DestinationPagesFixed(TaskSet):
de_paths = ["/belgien", "daenemark", "deutschland", "frankreich", "griechenland"
, "italien"
, "luxemburg"
]
def on_start(self):
self.client.verify = False
@task
def test_1(self):
paths = self.de_paths
path = choice(paths)
self.client.get(path, name="Static page")
class UserBehavior(TaskSet):
tasks = {FrontPage: 15, DestinationPagesFixed: 19}
class WebsiteUser(HttpUser):
task_set = UserBehavior
min_wait = 400
max_wait = 10000
Комментарии:
1. Ознакомьтесь с ответом cyberwiz. Когда я запускаю это на 1.3, самая первая строка, которую я вижу, это:
/locust/util/deprecation.py:17: DeprecationWarning: Usage of User.task_set is deprecated since version 1.0. Set the tasks attribute instead (tasks = [UserBehavior]) DeprecationWarning,
2. интересно.. Тогда это своего рода ошибка (как устаревшая, должно означать, что она все еще работает). Но, глядя на код, я не вижу, чтобы он прилагал какие-либо усилия для фактического ИСПОЛЬЗОВАНИЯ значения task_set . Не уверен, что я могу это исправить (вероятно, это действительно не сработало для всех версий 1.0), но, возможно, мы можем явно выбросить исключение.
Ответ №1:
Изменить
task_set = UserBehavior
Для
tasks = [UserBehavior]
Или (полностью пропуская класс UserBehaviour)
tasks = {FrontPage: 15, DestinationPagesFixed: 19}