基於python的性能負載測試Locust-5-腳本編寫之發送HTTP請求

發送HTTP請求

目前爲止,咱們只是掌握了Locust用戶的任務執行。爲了真正的對一個系統進行負載測試咱們須要發送HTTP請求。這時候就用到了HttpLocust類,這個類中的每一個實例都有一個client屬性(也就是HttpSession的實例),能夠進行HTTP請求。python

class  HttpLocust

表示一個孵化出的HTTP 「user」 用於襲擊被負載的系統對象。服務器

這個用戶的行爲由task_set屬性來定義,這個屬性指向TaskSet類。cookie

這個類建立了一個client屬性,它支持在requests之間保持user的session。session

client= None測試

經過對Locust的實例化建立了HttpSession的實例,client支持cookies,所以能夠在HTTP請求間保持session。spa

繼承HttpLocust類以後,咱們能夠使用它的client屬性對服務器發送HTTP請求。下面的locust文件能夠經過/and/about/這兩個URLs對站點進行負載測試:code

from locust import HttpLocust, TaskSet, task class MyTaskSet(TaskSet): @task(2) def index(self): self.client.get("/") @task(1) def about(self): self.client.get("/about/") class MyLocust(HttpLocust): task_set = MyTaskSet min_wait = 5000 max_wait = 15000 

經過上面的Locust類,每一個虛擬用戶在發送請求時會有5到15秒的間隔,/被請求的機率是/about/的兩倍。對象

細心的讀者會發現一個奇怪的地方,咱們能夠經過TaskSet裏的self.client來引用HttpSession實例,而不是self.locust.client。之因此這樣是由於TaskSet類中有個名爲client的屬性,它的返回值爲self.locust.client繼承

相關文章
相關標籤/搜索