开发者社区> 建帅小伙儿> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

locust结合Prometheus和grafana(一)

简介: locust结合Prometheus和grafana
+关注继续查看

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>

一、Locust介绍

一个开源性能测试工具,使用 Python 代码来定义用户行为。用它可以模拟百万计的并发用户访问你的系统,方便、高效、可分布式等

二、工具安装

环境python3
pip install locust
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn locust

三、locust类库介绍

Locust官方文档

Httpuser类:就是用户行为的操作
Client方法:发送请求
Task类:任务控制的类,权重,跳过等
Taskset类:测试集类
On_start方法:类似于自动化中的setup,每个虚拟用户执行前都会执行这个方法
On_stop方法:类似于自动化中的teardown,每个虚拟用户执行结束后执行这个方法
@task装饰器,如果task后面带有数字,则代表的是测试集中的权重。参数越大每次被虚拟用户执行的概率越高。如果不设置默认为1
Between方法中的是休眠时间:会取between数值中间的随机数


Locust中还有其他很多类,我暂时没用到,有兴趣可以下去了解下,非常不错的一款性能工具

四、locust使用

Windows

我这里使用的是云服务器2c4g, 带宽:8Mbps

代码:以登录vsite网站来压吧 100并发

# coding=utf-8
"""
    @Project :pachong-master 
    @File    :test001.py
    @Author  :gaojs
    @Date    :2022/5/19 21:47
    @Blogs   : https://www.gaojs.com.cn
"""
from locust import HttpUser, between, task, TaskSet, tag
import os
# 强制去掉控制台InsecureRequestWarning
import urllib3
# 随机产生UA类库
from faker import Factory
urllib3.disable_warnings()


class TaskTest(TaskSet):

    def on_start(self):
        """
        description:每个用户执行压测之前都会获取随机数和数字签名
        :return:
        """
        # 每个用户执行压测之前都会获取随机数和数字签名
        # print('====================清理log结束,压测开始, 获取随机数和数字签名!!!========================')
        pass

    # 压测任务,也可以是@task(10)啥的,这个数字是代表权重,数值越大,执行的频率就越高
    @task
    def stress_get(self):
        """
        登录虚拟站点
        :return:
        """
        url = '/prx/000/http/localh/login'
        data = {
            "Content-Type": "application/x-www-form-urlencoded, charset=UTF-8",
            'Connection': 'close',
            "method": "method1",
            "uname": "t",
            "pwd1": None,
            "pwd2": None,
            "pwd": "t",
            "submitbutton": "Sign In"
        }
        randon_ua = Factory.create()
        ua = randon_ua.user_agent()
        headers = {
            'User-Agent': ua
        }
        rsp = self.client.post(url=url, headers=headers, data=data, verify=False, allow_redirects=False, name='loginVsite压测')
        # print(rsp.status_code)
        print(rsp.text)
        assert rsp.status_code == 302

    # 执行并发测试后执行的动作,比如保存log等操作,查看报告http://localhost:8089/
    def on_stop(self):
        pass


class UserBehavior(HttpUser):
    host = '192.168.120.209'
    # 每次请求停顿时间
    wait_time = between(3, 10)
    tasks = [TaskTest]


if __name__ == "__main__":
    os.system("locust -f test004.py --host=https://192.168.120.209 --web-host=127.0.0.1")

执行

十秒起100个虚拟用户

image.png

报告

image.png

charts

image.png

image.png

RPS

image.png

分析结果:

平均相应时间:
吞吐量:1000以内
最小相应时间:
最大响应时间:
网络是否有波动:
带宽是否影响:


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Nexus 私服 Prometheus+Grafana
Nexus 私服 Prometheus+Grafana
43 0
基于 Prometheus + Grafana 实现 Nexus 监控观测
前言 Nexus 是开源的 Maven 私服仓库,同时 Nexus 还支持 Npm 、 .Net、Golang 、Python 等开发语言的包管理。Nexus 也是我们重度使用的一个应用,Nexus 保存着 Tap 各开发组的代码构建产物。Nexus 出现问题会导致项目 CI 、CD 流程阻断。本文旨在通过 Prometheus + Grafana 实现 Nexus 运行时监控观测,帮助运维人员更加了解 Nexus ,轻松从容应对线上各种疑难杂症。
114 0
Prometheus+grafana搭建jenkins监控
为了便于监控Jenkins搭建后的执行情况呢,我们搭建一个完整的监控体系,使用的Prometheus监控报警 ,展示用的是grafana。
174 0
prometheus+grafana监控linux
prometheus+grafana监控linux
119 0
prometheus+grafana监控nginx
prometheus+grafana监控nginx
141 0
基于Prometheus+Grafana的应用监控系统建设(一)
- 主流监控方案比较 - Prometheus + Grafana 优缺点 - 智能运维 - 自动化部署 - 样例
2199 0
Prometheus 与 Grafana 集成
Grafana 是一个可视化仪表盘,它拥有美观的图标和布局展示,功能齐全的仪表盘和图形编辑器,默认支持 CloudWatch、Graphite、Elasticsearch、InfluxDB、Mysql、PostgreSQL、Prometheus、OpenTSDB 等作为数据源。
1127 0
Prometheus-部署Grafana
??Grafana是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化,我们这里用它来做Kubernetes集群监控数据的可视化。
2044 0
grafana+ prometheus+php 监控系统实践
版权声明:作者:汤青松 https://blog.csdn.net/u013431141/article/details/81389460 背景 团队在开发流媒体服务,需要实现一个监控在线人数的功能,可以看到历史有多少人在线,当前有多少人在线的功能。
2071 0
Grafana+Prometheus系统监控之MySql
架构 grafana和prometheus之前安装配置过,见:Grafana+Prometheus打造全方位立体监控系统 MySql安装 MySql的地位和重要性就不言而喻了,作为开源产品深受广大中小企业以及互联网企业喜爱,所以这里我们也有必要对其进行相应的监控。
9929 0
+关注
建帅小伙儿
博客:https://www.gaojs.com.cn CSDN:https://blog.csdn.net/qq_41332844 gitee:https://gitee.com/Bigdata_2013_admin B站:https://space.bilibili.com/487498386
130
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载
http://www.vxiaotou.com