В этой статье в основном объясняется использование класса 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 , пожалуйста, проверьте его при необходимости.