Базовая серия с нулевой эффективностью саранчи (7)

В этой статье в основном объясняется использование класса TaskSet для управления сценариями тестирования. Особенно, когда в область тестирования включается все больше и больше функциональных точек, более необходимо учитывать контент, связанный с управлением тестированием. Сделайте тестирование производительности более организованным и эффективным.
Используйте следующие официальные примеры, чтобы объяснить использование TaskSet и некоторые подробности при выполнении теста.

from locust import User, TaskSet, between,task,constant

class ForumSection(TaskSet):
    wait_time = constant(1)
    @task(10)
    def view_thread(self):
        print("This is task viewThread")

    @task(1)
    def create_thread(self):
        print("This is task create thread")

    @task(1)
    def stop(self):
        self.interrupt()

class LoggedInUser(User):
    wait_time = between(5,10)
    tasks = {ForumSection:2}

    @task
    def index_page(self):
        print("this is a index page.")

Как и выше, класс ForumSection наследует класс TaskSet, который определяет 3 задачи, 1 и 2 являются более обычными задачами, где вес view_thread равен 10, а вес create_thread равен 1. Кроме того, есть специальная задача-> "stop" , Вес этой задачи равен 1. Если поток задачи выбирает этот метод, он завершит выполнение потока в этом наборе задач (TaskSet) и вернется к своему родительскому узлу (родительский TaskSet).

Вот несколько ключевых моментов использования этого режима для управления тестированием производительности.

  • Пользовательский подкласс TaskSet должен наследовать класс TaskSet

  • Если класс TaskSet устанавливает параметры времени выполнения теста, такие как wait_time, то настройки класса TaskSet имеют преимущественную силу.Если в классе TaskSet нет параметров, будут использоваться настройки в классе User.

  • Если поток (пользователь) выполняет задачу остановки в классе TaskSet, тогда поток вернется к родительскому узлу, в этом случае вернется к пользовательскому классу LoggedInUser, затем на следующем шаге поток может выполнить задачу «Index_page», также возможно выполнение задачи «ForumSection». И так далее.

  • Когда класс TaskSet выполняет задачу, все подходящие задачи в классе TaskSet используются в качестве области действия, а задачи вне класса TaskSet не находятся в пределах диапазона расчета веса.

Кроме того, у меня есть базовый курс по саранче https://edu.51cto.com/sd/ddd95 в Академии 51CTO , пожалуйста, проверьте его при необходимости.

рекомендация

отblog.51cto.com/13734261/2551636