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

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
運行之後,控制檯會在本地監聽一個端口

  1. 程序文件要命名爲 locustfile.py才行
  2. 假如命名爲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界面來配置
美觀、詳細的圖表統計

原文地址https://www.cnblogs.com/keyou1/p/11268241.html

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