Locust1.x使用記錄

參考:
官方:https://docs.locust.io/en/latest/what-is-locust.html
https://www.cnblogs.com/imyalost/p/9758189.html
https://www.cnblogs.com/shmily2018/p/12498792.html

一、環(huán)境

pip install  locust
pip install pyzmq

二、demo.py

from locust import HttpUser, TaskSet,task

class TaskDemo(TaskSet):

    @task
# @task是執(zhí)行的任務(wù),一般單接口
    def getList(self):
        self.client.get("/list")


class WebsitUser(HttpUser):
    tasks = [TaskDemo]
    min_wait = 3000
    max_wait = 5000
運行腳本:

locust -f locustfile.py --host=http://10.209.139.164

三、加上參數(shù)化、斷言完整腳本

from locust import HttpLocust,HttpUser, TaskSet,task
import queue

def file_to_list(filename):
    '''
    處理參數(shù)化文件,到list中 
    :param filename: 
    :return: 
    '''
    data = []
    with open(filename,'r',encoding='UTF-8') as f:
        for line in f:
            data.append(line.strip('\n').split(',')[0])
    return data

class TaskDemo(TaskSet):

    @task
    def getMlist(self):
        # 取出隊列中的數(shù)據(jù)
        data = self.user.user_data_queue.get()
        # 斷言需要在請求中把catch_response 設(shè)置為True
        with self.client.get(data['params'],catch_response = True) as response:
            if '"errno":0' in response.text:
                response.success()
            else:
                response.failure('Failed')

class WebsitUser(HttpUser):
    tasks = [TaskDemo]
    # 實例化queue對象
    user_data_queue = queue.Queue()
    file = 'E:\\project\\tempScript\\match_log\\data\\deal_log.txt'
    params_list = file_to_list(file)
    for params in params_list:
        data = {
            "params": "%s" % params
        }
        # 放入隊列中
        user_data_queue.put_nowait(data)
    min_wait = 3000
    max_wait = 5000

無ui命令:

locust -f locustfile.py --host=http://10.209.139.164 -u 2 -r 2 -t 50 --headless --csv ldtest --logfile test.log -L debug &
-u:總并發(fā)數(shù)
-r:每秒并發(fā)數(shù)
-t:運行時長
--headless:無界面模式,和-u,-r,-t一起使用
-csv:csv數(shù)據(jù)存儲文件名前綴
--logfile:日志文件
-L:日志等級,默認info

問題記錄:

1、本地有ui界面跑是OK的,但是容器部署后報錯OSError: [Errno 97] Address family not supported by protocol
解決方式參考:https://testerhome.com/topics/18332
最終命令為:locust -f locustfile.py --host=http://10.209.139.164 --web-host=0.0.0.0

擴展:

待實現(xiàn):https://testerhome.com/topics/24873

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容