python學習筆記(locust性能測試模塊)


  locust是基於python的性能測試工具、支持python2.7及其以上的版本、相對於主流的LR與Jmeter工具使用的方式不一樣、locust是通過編寫python代碼來完成性能測試的。

通過LR與Jmeter都是一個特定平台、我們只能在這個平台上使用、局限性很大。但是利用locust通過python可以進行性能測試的同時,也能掌握python語言的使用,且因為是開發語言,測試過程中可以編寫自己需要的功能內容。

  博主這里就簡單的整理下如何使用locust模塊,主要的三個類: HttpLocust, TaskSet, task

  TaskSet是任務類、定義待測試的任務代碼集如下的UserBehavior的類,task是子任務方法

 

# -*- coding: utf_8 -*-
# 文件名稱:main_pt.py
# locust基礎性能測試模板
# 時間:2017-10-19

from locust import HttpLocust, TaskSet, task
import subprocess
import json


# 性能測試任務類 TaskSet.
class UserBehavior(TaskSet):
    # 開始
    def on_start(self):
        pass

    # 任務
    @task(1)
    def getTagVals(self):
        u"""
        request_url:請求路徑
        request_params:請求頭參數
        request_json:請求json參數
        """
        request_url = "/xxx/tag/getTagVals" (待測試的路徑)
        request_params = {
            "nonce": "abcdefg",
            "_type": None,
            "target": "CLNJ01",
            "timestamp": 1507860000,
            "apiId": "EC",
            "apiSign": "D41D8CD98F00B204E9800998ECF8427E"
        }
        request_json = {
            "tagKey": 25
        }
        response = self.client.post(
            url=request_url,
            params=request_params,
            json=request_json
        )
        if response.status_code != 200:
            print u"返回異常"
            print u"請求返回狀態碼:", response.status_code
        elif response.status_code == 200:
            print u"返回正常"

        # 這里可以編寫自己需要校驗的返回內容
        # content = json.loads(response.content)["content"]
        # if content["tagKey"] == 25:
        #     print u"校驗成功"
        #     print json.dumps(content, encoding="UTF-8", ensure_ascii=False)


# 性能測試配置
class MobileUserLocust(HttpLocust):
    u"""
    min_wait :用戶執行任務之間等待時間的下界,單位:毫秒。
    max_wait :用戶執行任務之間等待時間的上界,單位:毫秒。
    """
    # weight = 3
    task_set = UserBehavior
    host = "http://xxx"  (待測試的ip或者域名)
    min_wait = 3000
    max_wait = 6000


if __name__ == "__main__":
    subprocess.Popen("locust -f main_pt.py", shell=True)

 

  最后HttpLocust類是用來設置性能測試的配置、如待測試的host、待測試的任務集task_set 

  如何運行:首先打開到文件路徑下、然后直接運行腳本  python main_pt.py

  運行成功后即可訪問 locust的 web UI界面  :http://localhost:8089

  

  提示輸入的內容是 模擬的用戶總數  和 每秒鍾並發的用戶數量、點擊開始按鈕即可

可以查看測試任務的性能結果 上圖圈出的 RPS是 每秒用戶數、FAILUSERS是 失敗率

可以 STOP 中止測試 也可以 Edit 重新編輯性能測試的場景、還可以查看后台的打印內容:


免責聲明!

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



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