IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 压测工具之Locust -> 正文阅读

[开发测试]压测工具之Locust

前言

??说起压测,我就用过Jmeter,而且仅是简单使用,好用性能强大,最近接触了一个python提供的压测框架Locust,翻译为蝗虫,蝗虫过之,寸草不生,哈哈哈,我感觉很贴切。
首先,我们分析一下市面上几种工具的特性。

\LoadRunnerJmeterLocust
授权方式商业收费开源免费开源免费
开发语言C/JavaJavaPython
测试脚本形式C/JavaGUIPython
并发机制进程/线程线程协程
单机并发能力
分布式压力支持支持支持
资源监控支持不支持不支持
报告与分析完善简单图表简单图表
支持二次开发不支持支持支持
并发方式线程线程协程

??我认为最适合程序员的当然是Locust,脚本语言快速开发,可玩性高,自由发挥,甚至可以用来干坏事,哈哈哈哈,不用记繁琐的页面操作,支持二次开发,最关键的是它使用的协程,这个减少了线程的资源耗费,适合我这种只有低端笔记本的选手。

Locust安装

Locust官网地址,具体安装步骤可以参考。
??我是搭建在一个阿里云服务器上,当然是需要python环境的,如果你的centos需要安装python环境可以参考我的另一篇帖子Centos安装Python3.8详细教程
接下来使用pip或者pip3安装locust

pip3 install locust

我已经装好了,因此显示已经存在如下图。实际安装情况也不慢。除此之外,还还可以直接去git上面下载zip包,那种方式没有尝试过,有兴趣的朋友可以去试试。在这里插入图片描述
使用命令查看安装是否成功,显示下图则表示已经安装成功。

locust -V

显示版本号2.6.0
在这里插入图片描述

测试脚本准备

??本来想自己写个jar包扔上去做测试,一看机器上面没有装jdk,我又懒了。。。。后来从网上找了个demo,访问百度的接口。脚本里面启动命令加了访问地址,这里不做赘述,都是很简单的命令,请求直接使用request类库,帖子能看到这一步的不会没有用过吧!!!

import time
from locust import HttpUser, task, between, events
import urllib3
from locust.contrib.fasthttp import FastHttpLocust
urllib3.disable_warnings()


@events.test_start.add_listener
def on_test_start(**kwargs):
    print('===测试最开始提示===')


@events.test_stop.add_listener
def on_test_stop(**kwargs):
    print('===测试结束了提示===')


class TestTask(HttpUser):
    wait_time = between(1, 5)
    # host = 'https://www.baidu.com'

    def on_start(self):
        print('这是SETUP,每次实例化User前都会执行!')

    @task(1)
    def getBaidu(self):
        self.client.get(url="/", verify=False)

    def on_stop(self):
        print('这是TEARDOWN,每次销毁User实例时都会执行!')

# class MyLocust(FastHttpLocust):
#     task_set = TestTask
#     min_wait = 1000
#     max_wait = 60000
if __name__ == "__main__":
    import os

    os.system("locust -f locustDemo1.py --host=https://www.baidu.com")

将脚本上传至服务器。然后运行。

python3 locustDemo1.py

启动效果如下图,并且已经给出了ui页面的访问方式,机器http://ip:8089/即可。
在这里插入图片描述
在这里插入图片描述

到这里,Locust脚本已经跑了起来。页面也很直观,要求输入并发用户数量,每秒产生用户数量,host(刚才已经指定)。然后点击start就开始了压测。

Locust压测指标简介

??进来默认展示的是压测报告
在这里插入图片描述

字段解释
Type请求类型
Name请求路径
requests当前请求的数量
fails当前请求失败的数量
Median中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值
Average所有请求的平均响应时间,毫秒
Min请求的最小的服务器响应时间,毫秒
Max请求的最大服务器响应时间,毫秒
Content Size单个请求的大小,单位字节
reqs/sec每秒钟请求的个数

切换至图表页面还能查看实时的折现图、包含请求趋势、响应时间、并发用户数等。
每秒请求数量

响应时间
并发用户数量

当然,还提供了查看失败请求的页面、下载请求统计数量的页面。这些对于程序员做一写简单的压力测试完全够用。爱了爱了。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:13:05  更:2022-01-28 12:13:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:42:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码