Python實現性能自動化測試竟然如此簡單


一、思考❓❔

1.什么是性能自動化測試?

  • 性能
    • 系統負載能力
    • 超負荷運行下的穩定性
    • 系統瓶頸
  • 自動化測試
    • 使用程序代替手工
    • 提升測試效率
  • 性能自動化
    • 使用代碼模擬大批量用戶
    • 讓用戶並發請求
    • 多頁面多用戶並發請求
    • 采集參數,統計系統負載能力
    • 生成報告

 

2.Python中的性能自動化測試庫?

locust庫

  • 使用Python
    • 使用代碼來創建批量用戶
  • 分布式
    • 可以在多台服務器上,進行分布式性能測試
    • 可伸縮性強
  • 穩定、應用廣泛
    • 經得住各種場景下的考驗
    • 基於web ui界面展示測試詳情
    • 能測任何系統



二、基礎操作🔨🔨

1.安裝locust

  • 使用官方pypi源來安裝
    • pip install locustio
  • 使用豆瓣pypi源來安裝(推薦)
    • pip install -i https://pypi.douban.com/simple locustio

安裝成功之后,在cmd控制台將會新增一條命令,可輸入如下命令查看:

locust --help

 

2.基本用法

  • 在項目根目錄下創建locustfile.py文件

    from locust import Locust, TaskSet, task class MyTasks(TaskSet): """ 創建測試任務類,需要繼承TaskSet 可以添加多個測試任務 """ # 每個測試任務,往往會以實例方法的形式來呈現 # 同時需要使用task裝飾器來裝飾測試任務  @task def one_task(self): print("執行一個偉大的測試任務!") class RunTasks(Locust): """ 創建運行測試類,需要繼承Locust父類 """ task_set = MyTasks # 指定測試任務類,使用task_set覆蓋父類的類屬性 min_wait = 2000 # 指定啟動任務間隔的時間范圍(單位毫秒):2~5秒之間 max_wait = 5000 # 使用min_wait、max_wait覆蓋父類的類屬性 
  • 執行性能測試

    # 打開Pycharm Terminal控制台
    # 運行如下命令:
    locust
    

    運行之后,控制台會在本地監聽一個端口

a. 程序文件要命名為 locustfile.py才行

b. 假如命名為one_example.py,則需要這樣運行

locust -f one_example.py

  • 在瀏覽器打開UI設置界面

    • 默認使用localhost:8089打開



三、綜合案例演練🔨🔨

1.編寫自動化測試腳本

  • 在項目根目錄下創建test_load.py文件
from locust import HttpLocust, TaskSet, task class AdminLoadTest(TaskSet): """ 創建后台管理站點壓測類,需要繼承TaskSet 可以添加多個測試任務 """ def login(self): """ 登錄實例方法 :return: """ self.client.post("http://localhost:8088/users/login/", {"user_account": "admin", "password": "123456"}) def logout(self): """ 登出實例方法 :return: """ self.client.get("http://localhost:8088/users/logout/") def on_start(self): """ 當任何一個task調度執行之前, on_start實例方法會被調用 先登錄 :return: """ self.login() def on_stop(self): """ 當任何一個task調度執行之后, on_stop實例方法會被調用 后登出 :return: """ self.logout()  @task def admin_index(self): """ 對后台主頁進行壓測 :return: """ self.client.get("http://localhost:8088/admin/") class RunLoadTests(HttpLocust): """ 創建運行壓測類 """ task_set = AdminLoadTest 

2.使用命令行運行

  • 打開Pycharm Terminal控制台,運行如下命令:

注意:--host參數指定http主機地址,-f參數指定壓測程序文件名

3.打開web ui界面進行配置

設置並發用戶數為10,每5秒創建一個用戶

壓測過程截圖

美輪美奐的壓測報告

壓測失敗詳情

下載壓測統計數據

下載的壓測統計數據csv文件



六、總結💡💡

    • locust做壓測功能極其強大
    • 支持分布式部署
    • 提供的接口簡單
    • 壓測代碼非常容易編寫
    • 提供UI界面來配置
    • 美觀、詳細的圖表統計


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM