利用Python Locust庫基於Robot Framework實現接口性能測試(二)

上一篇文章 中

我們分享瞭如何利用Locust庫結合Robot Framework實現接口的性能指標的持續性比較,已達到高效、持續性的性能測試的目的,針對同一接口的不同版本存在較大性能差異時,可以及時的發現,並進行更深入的性能測試。

這篇文章主要介紹圍繞著整體框架設計的具體實現,其中包含壓力生成關鍵字、負載控制(包含結果採集)關鍵字、結果分析器關鍵字、文件清除關鍵字四部分,接下來主要分享這四個關鍵字的具體實現。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

壓力生成關鍵字

壓力生成關鍵字實現利用性能測試用例模版根據不同的接口請求類型、檢查點、請求體等內容構建各個Locustfile文件(接口性能測試用例):

性能測試用例模板構建

對眾多接口性能測試用例進行分析,不難發現除了負載不同,基本大致相同,基於此可以抽取為如下接口性能用例模板,用以實現代碼與參數的解耦。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

locustfile_mode.txt

性能測試用例生成

通過傳參實現性能測試腳本的Locustfile的復刻,生成對應接口的性能測試Locustfile腳本,改腳本運行後刪除,不進行維護。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

壓力生成關鍵字核心源碼

通過locustfile_init()方法,即可生成各接口對應的Locustfile文件,如下:

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

locustfile_1535534575.py

負載控制關鍵字

負載控制關鍵字核心源碼如下,加載用戶輸入的負載模式,運行對應的Locustfile性能測試腳本,獲取性能測試結果,並實現結果入DB數據庫。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

負載控制關鍵字核心源碼

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

robot framework中負載控制關鍵字運行結果

運行每一個Locustfile性能測試腳本,都會生成兩個性能測試結果文件,如下。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

通過對兩個文件進行解析,將數據存儲至Sqlite數據庫中。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

Sqlite數據庫中的性能測試結果

結果分析關鍵字

獲取數據庫中相同接口相同負載的性能測試結果,然後根據閾值校驗項,檢測各項結果是否超過歷史平均結果的閾值設定,如果異常則斷言失敗。

可以根據實際情況設定閾值,同時可以選擇需要關注的性能指標進行比對。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

結果分析關鍵字核心源碼

文件清除關鍵字

刪除臨時文件,包含Locustfile文件、執行結果文件。由於整體架構不需要對Locustfile文件進行維護,只需要維護接口及相關參數,負載設定即可,因此刪除Locustfile文件。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

文件清除關鍵字核心源碼

應用效果

場景一 單接口性能測試,無參數化。

我們可以看到通過幾行簡單的配置,就可完成接口的性能測試用例開發。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

場景二 單接口性能測試,參數化。

參數化數據存放在parameterfile.txt中。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

參數化文件 parameterfile.txt

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

測試結果

一般情況,此次測試結果不超過歷史均值的設定閥值,則視為通過,否則異常。

利用Python Locust庫基於Robot Framework實現接口性能測試(二)

若對你有所幫助,歡迎大家評論、留言。


分享到:


相關文章: