locust性能測試腳本模板

locust性能測試腳本模板python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time

from locust import HttpLocust, TaskSet, task, seq_task


class BlogDemo(TaskSet):

    def get_parameters(self):
        # 定義獲取參數
        pass

    def regx(self):
        # 定義正則表達式
        pass

    @seq_task(2)  # 第二個執行
    @task(1)
    def open_blog(self):
        # 定義requests的請求頭和url
        url = "/111testing"
        header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"}

        r = self.client.get(url,  headers=header, name="進入個人博客")
        print(r.status_code)
        assert r.status_code == 200

    @seq_task(1)  # 第一個執行
    @task(1)
    # @task(1) 和 @task(2) 運行的請求數量是1:2
    def open_blog_firstPage(self):
        url = "/"
        header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"}

        self.client.get(url,  headers=header, name="進入博客園首頁")


class websitUser(HttpLocust):
    task_set = BlogDemo
    # 等待的區域時間不寫的話,默認是1秒
    min_wait = 3000  # 單位毫秒
    max_wait = 6000  # 單位毫秒
    host = "https://www.cnblogs.com"


if __name__ == "__main__":
    import os

    # 若是上面寫了host,那麼os.system這裏就不用再寫host了
    os.system("locust -f demo.py")

    # 若是上面沒有寫host,那麼os.system這裏就須要寫host
    # os.system("locust -f demo.py --host=https://www.cnblogs.com")

    # 本機爲主測試機時運行下面命令,單獨的主測試機運行起來也沒有用(沒法跑併發請求的),必須結合子測試機使用
    # os.system("locust -f demo.py --master")

    # 本機爲子測試機時運行下面命令,運行子測試機的前提是必須已經運行了主測試機
    # os.system("locust -f demo.py --slave")

    # 本機爲子測試機時,且主測試機在另一臺機器時運行下面命令
    # os.system("locust -f demo.py --slave --master-host=192.168.xx.xxx")

    # 通常主測試機多放在windows系統運行,子測試機多放在Linux系統運行,由於windows運行locust性能不好
    # 運行一次請求機型調試:locust -f demo.py --no_web -c 1 -n 1

 

locust集合點設置web

有時測試須要讓全部併發用戶完成初始化後再進行壓力測試,這就須要相似於LoadRunner中的集合點的概念,因爲框架自己沒有直接封裝,可藉助python的gevent庫來實現正則表達式

相關文章
相關標籤/搜索