Python實現(xiàn)性能自動化測試竟然如此簡單
一、思考❓❔
1.什么是性能自動化測試?
性能系統(tǒng)負載能力超負荷運行下的穩(wěn)定性系統(tǒng)瓶頸自動化測試使用程序代替手工提升測試效率性能自動化使用代碼模擬大批量用戶讓用戶并發(fā)請求多頁面多用戶并發(fā)請求采集參數(shù),統(tǒng)計系統(tǒng)負載能力生成報告
2.Python中的性能自動化測試庫?
locust庫
使用Python使用代碼來創(chuàng)建批量用戶分布式可以在多臺服務器上,進行分布式性能測試可伸縮性強穩(wěn)定、應用廣泛經(jīng)得住各種場景下的考驗基于web ui界面展示測試詳情能測任何系統(tǒng)
二、基礎(chǔ)操作🔨🔨
1.安裝locust
使用官方pypi源來安裝
pip install locustio
使用豆瓣pypi源來安裝(推薦)
pip install -i https://pypi.douban.com/simple locustio
安裝成功之后,在cmd控制臺將會新增一條命令,可輸入如下命令查看:
locust --help
2.基本用法
在項目根目錄下創(chuàng)建locustfile.py文件
from locust import Locust, TaskSet, task class MyTasks(TaskSet): """ 創(chuàng)建測試任務類,需要繼承TaskSet 可以添加多個測試任務 """ # 每個測試任務,往往會以實例方法的形式來呈現(xiàn) # 同時需要使用task裝飾器來裝飾測試任務 @task def one_task(self): print("執(zhí)行一個偉大的測試任務!") class RunTasks(Locust): """ 創(chuàng)建運行測試類,需要繼承Locust父類 """ task_set = MyTasks # 指定測試任務類,使用task_set覆蓋父類的類屬性 min_wait = 2000 # 指定啟動任務間隔的時間范圍(單位毫秒):2~5秒之間 max_wait = 5000 # 使用min_wait、max_wait覆蓋父類的類屬性
執(zhí)行性能測試
# 打開Pycharm Terminal控制臺
# 運行如下命令:locust
運行之后,控制臺會在本地監(jiān)聽一個端口
a. 程序文件要命名為 locustfile.py才行
b. 假如命名為one_example.py,則需要這樣運行
locust -f one_example.py
在瀏覽器打開UI設置界面
默認使用localhost:8089打開
三、綜合案例演練🔨🔨
1.編寫自動化測試腳本在項目根目錄下創(chuàng)建test_load.py文件
from locust import HttpLocust, TaskSet, task class AdminLoadTest(TaskSet): """ 創(chuàng)建后臺管理站點壓測類,需要繼承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調(diào)度執(zhí)行之前, on_start實例方法會被調(diào)用 先登錄 :return: """ self.login() def on_stop(self): """ 當任何一個task調(diào)度執(zhí)行之后, on_stop實例方法會被調(diào)用 后登出 :return: """ self.logout() @task def admin_index(self): """ 對后臺主頁進行壓測 :return: """ self.client.get("http://localhost:8088/admin/") class RunLoadTests(HttpLocust): """ 創(chuàng)建運行壓測類 """ task_set = AdminLoadTest
2.使用命令行運行打開Pycharm Terminal控制臺,運行如下命令:
注意:--host參數(shù)指定http主機地址,-f參數(shù)指定壓測程序文件名
3.打開web ui界面進行配置
設置并發(fā)用戶數(shù)為10,每5秒創(chuàng)建一個用戶
壓測過程截圖
美輪美奐的壓測報告
壓測失敗詳情
下載壓測統(tǒng)計數(shù)據(jù)
下載的壓測統(tǒng)計數(shù)據(jù)csv文件
六、總結(jié)💡💡
locust做壓測功能極其強大支持分布式部署提供的接口簡單壓測代碼非常容易編寫提供UI界面來配置美觀、詳細的圖表統(tǒng)計
總結(jié)
以上所述是小編給大家介紹的Python實現(xiàn)性能自動化測試竟然如此簡單,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
python數(shù)據(jù)持久存儲 pickle模塊的基本使用方法解析
這篇文章主要介紹了python數(shù)據(jù)持久存儲 pickle模塊的基本使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08python常用模塊(math itertools functools sys
這篇文章主要介紹了python常用模塊之math itertools functools sys shutil的使用示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06python 實現(xiàn)rolling和apply函數(shù)的向下取值操作
這篇文章主要介紹了python 實現(xiàn)rolling和apply函數(shù)的向下取值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python中的遠程調(diào)試與性能優(yōu)化技巧分享
Python 是一種簡單易學、功能強大的編程語言,廣泛應用于各種領(lǐng)域,包括網(wǎng)絡編程、數(shù)據(jù)分析、人工智能等,在開發(fā)過程中,我們經(jīng)常會遇到需要遠程調(diào)試和性能優(yōu)化的情況,本文將介紹如何利用遠程調(diào)試工具和性能優(yōu)化技巧來提高 Python 應用程序的效率和性能2024-05-05使用matplotlib庫實現(xiàn)圖形局部數(shù)據(jù)放大顯示的實踐
本文主要介紹了使用matplotlib庫實現(xiàn)圖形局部數(shù)據(jù)放大顯示的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02