Locust性能-零基礎入門系列(17)-簡化Locust測試流程

之前在運行Locust測試時,一般步驟是這樣的:

  • 創建好Locust腳本(locust file),模擬好場景

  • 在命令行運行Locust腳本,如下:
locust -f locust_file.py
  • 然後打開web UI,在UI上設置測試參數,比如用戶數,ramp up rate等。
    如上你會發現,整體步驟還是有些繁瑣的。其實Locust提供了比上述方式更簡潔的方式,可以將性能測試相關的配置,運行等都集中在腳本中去實現。具體,可以參考如下腳本(Locust 版本1.1.1):
import gevent
from locust import HttpUser,task,between
from locust.env import Environment
from locust.stats import stats_printer
from locust.log import setup_logging

setup_logging("INFO",None)

class WebUser(HttpUser):
    wait_time = between(1,5)
    host = 'https://blog.51cto.com'
    @task
    def open_blog1(self):
        with self.client.get('/13734261/2538770',catch_response=True) as res:
            if res.status_code == 200:
                res.success()

    @task
    def open_blog2(self):
        with self.client.get('/13734261/2538745',catch_response=True) as res:
            if res.status_code == 200:
                res.success()

#創建環境和runner
env = Environment(user_classes=[WebUser,])
env.create_local_runner()

#start a WebUI instance
env.create_web_ui("127.0.0.1",8001)

#開啓了協程,會定期打印runner狀態
gevent.spawn(stats_printer(env.stats))

#開啓測試,開啓用戶數爲1
env.runner.start(1,hatch_rate=10)

# 設置100秒後,然後停止測試
gevent.spawn_later(100,lambda: env.runner.quit())
#等待greenlet結束
env.runner.greenlet.join()
#結束locust webUI
env.web_ui.stop()

測試輸出結果如下,測試過程中,也會定期輸出這樣的測試結果表格,一般是隔幾秒輸出一次吧。

Name                                                          # reqs      # fails     Avg     Min     Max  |  Median   req/s failures/s
--------------------------------------------------------------------------------------------------------------------------------------------
 GET /13734261/2538745                                             13     0(0.00%)     300     183     542  |     280    0.10    0.00
 GET /13734261/2538770                                             17     0(0.00%)     376     199     931  |     270    0.20    0.00
--------------------------------------------------------------------------------------------------------------------------------------------
 Aggregated                                                        30     0(0.00%)     343     183     931  |     270    0.30    0.00

這樣的測試步驟改進,可以省略如下步驟:

  • 在命令行運行測試腳本

  • 在瀏覽器中webUI上設置測試參數並監控測試運行過程。

Locust性能-零基礎入門系列(17)-簡化Locust測試流程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章