Locust 任務巢狀
在上一章的簡介及使用中,介紹了一個locust用例的組成及配置。本章在上一個用例的基礎上會增加任務巢狀的情況
我們知道,locust的第一個特點是,可以用普通的python進行指令碼的編寫(拿上一章的例子),這就可以有多種實現方式,隨之任務巢狀也會有多種形式:
一、指令碼任務的多樣性
demo_1.py
from locust import Locust, TaskSet, task, between
from time import time
#使用@task來宣告任務,執行的時候,my_task_3不執行
class MyTaskSet(TaskSet):
# TaskSet相當於下面所有task的大腦
@task(1) # 宣告任務
def task1(self):
print("執行task1")
@task(5)
def task2(self):
print("執行task2")
def my_task_3(self):
print("執行task3")
class WebUser(Locust):
task_set = MyTaskSet
weight = 5
wait_time = between(5, 15)
host = "" # 域名host
demo_2.py
from locust import Locust, TaskSet, between
class MyTask(TaskSet):
def task1(self):
print('task1')
def task2(self):
print('task2')
# 下面tasks三種選擇一種
tasks = [task1, task2] # 以列表形式,預設權重為1:1
tasks = {task1: 1, task2: 5} # 以字典形式,帶權重
tasks = [(task1,1),(task2,5)] #以列表形式,元組格式(callable,int)
# 以列表和字典的形式進行執行時,隨機選擇每個任務執行
class User(Locust):
task_set = MyTask
wait_time = between(1, 4)
demo3.py
from locust import Locust, TaskSet, between
# 將 任務也可以放在外面,統一以列表的形式傳入
def task1(obj):
print('task1')
def task2(obj):
print('task2')
class MyTask(TaskSet):
#以下三種選擇一種
tasks = [task1, task2] # 以列表形式,預設權重為1:1
tasks = {task1: 1, task2: 5} # 以字典形式,帶權重
tasks = [(task1,1),(task2,5)]
# 以列表和字典的形式進行執行時,隨機選擇每個任務執行
class User(Locust):
task_set = MyTask
wait_time = between(1, 4)
可以看出,上面三個demo.py基本等同,我們的locust指令碼可以用python的類和函式隨意定義任務,減輕了我們進行指令碼編寫的時間,為我們進行效能測試工作提供了很大的便利。
二、指令碼任務的巢狀
巢狀發生在什麼情況下呢?
舉個例子,開啟淘寶app,有的使用者會停留在首頁,購物車,個人中心,而使用者在首頁,購物車,個人中心又會進行不同的動作。
為了模仿使用者的行為,按照分層的邏輯就產生了下面的結構:
- 使用者行為
- 首頁
- 瀏覽
- 點選到活動頁
- 購物車
- 結算頁
- 停留
- 個人中心
- 訂單列表頁
- 個人資料
- 首頁
相關文章
- java定時任務巢狀Java巢狀
- Locust 任務指令碼初探指令碼
- sql server中巢狀事務*SQLServer巢狀
- golang的巢狀事務管理Golang巢狀
- 碰到巢狀事務-筆記巢狀筆記
- Oracle 巢狀事務 VS 自治事務Oracle巢狀
- 關於 MySQL 的巢狀事務MySql巢狀
- Laravel 之巢狀事務 transactions 實現Laravel巢狀
- 儲存過程中巢狀事務儲存過程巢狀
- hibernate能否實現巢狀事務巢狀
- less巢狀巢狀
- Datalist巢狀巢狀
- SQL Server中存在真正的“事務巢狀”SQLServer巢狀
- 集合框架-集合的巢狀遍歷(HashMap巢狀HashMap)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(HashMap巢狀ArrayList)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(ArrayList巢狀HashMap)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(多層巢狀)框架巢狀
- javaEE支援巢狀事務嗎,Spring支援嗎Java巢狀Spring
- vue路由巢狀Vue路由巢狀
- angular 巢狀路由Angular巢狀路由
- 迴圈_巢狀巢狀
- 集合的巢狀巢狀
- 盒子的巢狀巢狀
- oracle巢狀表Oracle巢狀
- Oracle 巢狀表Oracle巢狀
- 列表巢狀操作巢狀
- 文生影片: 任務、挑戰及現狀
- 宣告式事務能否和程式設計式事務巢狀使用?程式設計巢狀
- Oracle 巢狀表(轉)Oracle巢狀
- 巢狀子查詢巢狀
- vue(19)巢狀路由Vue巢狀路由
- SCSS 巢狀屬性CSS巢狀
- SCSS 巢狀規則CSS巢狀
- Blazor巢狀傳遞Blazor巢狀
- 巢狀動畫如何使用巢狀動畫
- java介面巢狀【Z】Java巢狀
- iterate的巢狀使用巢狀
- 巢狀使用 datalist (轉)巢狀