本文主要內容爲怎麼批量處理類似的請求。在實際的項目中,很多時候我們需要模擬一些類似的請求。特別是,在相同的場景下去運行不同的數據。其目的主要是爲了檢驗在不同的數據環境下,性能的表現是否一致。通常來說,如果性能的表現隨着數據的不同而不同,那麼是有性能問題的。可以去查看是否不同的測試數據導致後端的測試處理集合不一致,有兩種情況。
1)如果後端處理數據集合一致,那很可能是後端邏輯代碼的性能穩定性差,需要關注代碼執行的穩定性和效率性。對於這種情況,可以獲取多次測試結果進行統計分析,首先要先確認剛纔的論斷,然後再分析代碼的性能穩定性。
2)如何後端處理數據集合不一致。首先需要確認實際情況是不是真的處理數據集合不一致。如果就應該不一致,那麼就應該考慮涉及代碼的可擴展性,特別是性能的響應相差太多的情況。比如一個處理時間爲1秒,一個處理時間爲5秒,這樣的性能相差就算大的了。
說了那麼多相似請求的背景,下面以一個案例來講解,案例是以瀏覽博客園文章爲例子,以瀏覽多個博客園文章爲測試場景,那查看多個瀏覽請求的性能表現是怎樣的。
from locust import HttpUser, task, between
#simulate search from baidu.com
class MyUserBlogs(HttpUser):
wait_time = between(5,10)
def open_index(self):
self.client.get("/")
#https://www.cnblogs.com/ittranslator/p/13561431.html
@task
def search_from_blog(self):
key_words = [13561431,13462874,13215081]
for i in key_words:
self.client.get("/ittranslator/p/%i.html" % i)
#host : https://www.cnblogs.com
執行測試命令如下:
locust --host=https://www.cnblogs.com -f locustfile.py
Locust web頁面截圖如下: