[TOC]
## 快速入門
下面是一個簡單的`locustfile.py`小示例:
注意:如果locust版本是1.2.2類繼承又會有變化
```
from locust import HttpLocust, TaskSet
def (l):
l.client.post("/login", {"username":"ellen_key", "password":"education"})
def index(l):
l.client.get("/")
def profile(l):
l.client.get("/profile")
class UserBehavior(TaskSet):
tasks = {index: 2, profile: 1}
def on_start(self):
login(self)
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 5000
max_wait = 9000
```
在這里,我們定義了許多`Locust`任務,它們是帶有一個參數(`Locust`類實例)的普通 Python 可調用對象。這些任務收集在 task 屬性中的`TaskSet`類下 。然后,我們有一個代表用戶的 類,其中定義了模擬用戶在執行任務之間應等待的時間,以及 應該定義用戶的“行為”的類。 類可以嵌套。`Http``Locust``TaskSetTaskSet`
在`HttpLocust`從類繼承`Locust`的類,并把它添加一個客戶端屬性,它是的一個實例`HttpSession`,可用于使`HTTP`請求。
默認情況下,我們不再尋找代理設置以提高性能。如果您確實希望測試請求通過 HTTP 代理,則可以從`HttpLocust`該類繼承,并將 trust\_env 字段設置為 True。有關更多詳細信息,請參閱請求文檔。
<br>
UserBehavior 類繼承 TaskSet 類,用于描述用戶行為。
baidu\_index() 方法表示一個用戶為行,訪問百度首頁。使用 @task 裝飾該方法為一個事務。client.get() 用于指請求的路徑“/”,因為是百度首頁,所以指定為根路徑。
WebsiteUser 類用于設置性能測試。
* task\_set :指向一個定義的用戶行為類。
* min\_wait :執行事務之間用戶等待時間的下界(單位:毫秒)。
* max\_wait :執行事務之間用戶等待時間的上界(單位:毫秒)。
<br>
<br>
## 啟動 Locust
要使用上述 Locust 文件運行 Locust,如果該文件名為`locustfile.py`且位于當前工作目錄中,則可以運行:
~~~
$ locust --host=http://example.com
~~~
如果 Locust 文件位于子目錄下和 / 或名稱不同于`locustfile.py`,請使用`-f`以下命令指定它:
~~~
$ locust -f locust_files/my_locust_file.py --host=http://example.com
~~~
要運行跨多個進程分布的 Locust,我們可以通過指定`--master`以下內容啟動主進程 :
~~~
$ locust -f locust_files/my_locust_file.py --master --host=http://example.com
~~~
然后我們將啟動任意數量的從屬進程:
~~~
$ locust -f locust_files/my_locust_file.py --slave --host=http://example.com
~~~
如果要在多臺計算機上運行 Locust 分布式服務器,則在啟動從屬服務器時也必須指定主服務器主機(在單臺計算機上運行 Locust 時不需要,因為主服務器主機默認為 127.0.0.1):
~~~
$ locust -f locust_files/my_locust_file.py --slave --master-host=192.168.0.100 --host=http://example.com
~~~
<br>
<br>
## 打開 Locust 的 Web 界面
使用上述命令行之一啟動 Locust 后,應該打開瀏覽器并輸入`http://127.0.0.1:8089`(如果在本地運行 Locust)。
然后,您應該會看到類似以下內容:

* 設置用戶總數10個,每秒啟動5個
| 頁面指標 | 解析 | 備注 |
| --- | --- | --- |
| type | 請求類型 | |
| Name | 請求名稱 | 這個可以自定義,傳name參數即可 |
| Requests | 當前已完成的請求數量 | |
| Fails | 失敗的請求數量 | |
| Requests | 當前已完成的請求數量 | |
| Median | 響應時間的中間值,即50%的響應時間在這個數值范圍內,單位為毫秒 | |
| 90%ile | 90%的響應時間在正態分布平均值下方,即小于這個值 | |
| Min | 最小響應時間,單位為毫秒 | |
| Max | 最大響應時間,單位為毫秒 | |
| average Size | 平均每個請求的數據量,單位為字節 | |
| current RPS | 每秒鐘處理請求的數量 |
