この記事では、主に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クラスは3つのタスクを定義するTaskSetクラスを継承します。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クラス外のタスクは重みの計算範囲内にありません。
また、51CTOアカデミーにイナゴの基礎コースhttps://edu.51cto.com/sd/ddd95がありますので、必要に応じて確認してください。