Locust1.x使用记录

作者: LeslieFind | 来源:发表于2021-01-11 20:11 被阅读0次

参考:
官方: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

一、环境

pip install  locust
pip install pyzmq

二、demo.py

from locust import HttpUser, TaskSet,task

class TaskDemo(TaskSet):

    @task
# @task是执行的任务,一般单接口
    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

三、加上参数化、断言完整脚本

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

def file_to_list(filename):
    '''
    处理参数化文件,到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):
        # 取出队列中的数据
        data = self.user.user_data_queue.get()
        # 断言需要在请求中把catch_response 设置为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:总并发数
-r:每秒并发数
-t:运行时长
--headless:无界面模式,和-u,-r,-t一起使用
-csv:csv数据存储文件名前缀
--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

扩展:

待实现:https://testerhome.com/topics/24873

相关文章

  • Locust1.x使用记录

    参考:官方:https://docs.locust.io/en/latest/what-is-locust.htm...

  • Locust1.x 的监控平台——boomer

    原文由sunapple发表于TesterHome社区网站,点击原文链接[https://testerhome.co...

  • mtrace-内存使用追踪(内存)

    1. 函数格式: mtrace 用于开启内存使用记录,muntrace用于取消内存使用记录。内存使用情况记录到一个...

  • 学习MySQL---ing

    @[toc] Mac MySQL使用教程 本文记录在我的GitHub 记录使用Homebrew安装Mysql全过...

  • 转场动画

    presentation使用记录

  • [tf]tensorboard的使用

    使用tf.summary.scalar记录标量数据,使用tf.summary.histogram直接记录变量var...

  • iOS下FMDB的多线程操作(二)

    上一篇记录不使用FMDatabaseQueue来使用多线程,这一篇记录一下使用FMDatabaseQueue的方式...

  • 后端ing

    spring-cache使用记录 spring-cache的使用记录,坑点记录以及采用的解决方案深入分析 java...

  • vim 插件使用记录

    vim 插件使用 @(linux 编程)[开发技能, 工具使用] 前面记录过一篇vim操作记录此处记录一些vim的...

  • 美柚产品体验报告

    1、你平时有使用软件记录或者管理经期吗? 平时会使用薄荷健康记录经期,因为有段时间使用薄荷健康记录每餐的热量,发现...

网友评论

    本文标题:Locust1.x使用记录

    本文链接:https://www.haomeiwen.com/subject/uwfjaktx.html