首页 > 系统相关 >locust 压力测试工具windows平台从零开始安装使用

locust 压力测试工具windows平台从零开始安装使用

时间:2024-12-14 20:42:09浏览次数:5  
标签:status nginx windows locust 接口 python 测试工具 安装

locust是一个用python写的接口压力测试应用,我们只需要编写简单的代码才能运行测试,前期安装需要一点python基础。

用以测试的接口需要一个一个通过代码添加,如下:

 

这就是一个测试的接口了,很简单,只需要接口的路径和参数,接口的主机地址会在web端输入:

 

locust需要python版本大于等于3.9。

好,我们开始安装:

我们使用conda创建一个虚拟环境:

conda create locust-test(虚拟环境名称,可自定义) python=3.10 -y

再切换到这个虚拟环境:

conda activate locust-test

安装locust,注意需要使用管理员模式,不然可能安装过程会报错(我自己就遇到了):

pip3 install locust -i https://pypi.mirrors.ustc.edu.cn/simple/

安装好后,我这里使用pycharm新建一个python项目,main.py:

from locust import HttpUser, task, between

class MyUser(HttpUser):
  wait_time = between(5, 9)

  @task
  def my_task(self):
    self.client.post("/push-goods/list", json={
      "pager": {
      "page": 1,
      "size": 10
    }
  })

上面这个接口是一个post请求,接口路径为/push-goods/list,post参数为:

{
  "pager": {
  "page": 1,
  "size": 10
}

接下来,我们在项目根目录输入命令:

 

这样就启动了locust的web端界面,我们打开 http://localhost:8090

界面是这样的:

 

我们输入请求的总次数和并发以及接口主机,如下配置:

 

10000次请求,并发数为100(1000我电脑都网断了,所以我改成了100),我们点击START,开始测试:

 

我的后端是GO写的,可以看到CPU占用20%左右,服务器配置:

 

加到300并发看一下:

 

上图是开启了nginx的nginx_status 模块,可以查看nginx的连接数,方法:

server {
  listen 127.0.0.1:8080;
  location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
  }
}

加到nginx的配置中:

 

这样执行命令:

watch -n 1 'curl http://127.0.0.1:8080/nginx_status 2>/dev/null | grep "Active"'

就可以查看nginx的连接数,且每秒刷新一次

如果locust的并发开的很高,我家里的带宽不够,家里的手机等设备都不能上网了,然后浏览器也打不开,所以还得分布式压测效果才好。

这篇分享文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

我的微信公众号:【xdub】,欢迎大家订阅,我会同步文章到公众号上。

标签:status,nginx,windows,locust,接口,python,测试工具,安装
From: https://www.cnblogs.com/shuinanxun/p/18607161

相关文章

  • Nlog在windows运行正常,部署到Linux提示ystem.NullReferenceException: Object referen
    1.问题.net9webapplication,在Programe.cs文件中的NLog.LogManager.Configuration.Variables["configDir"]=env.ContentRootPath这句在Windows运行正常,部署到Ubuntu24.04就提示System.NullReferenceException:Objectreferencenotsettoaninstanceofanobject.......
  • WIDECHAR 是 Windows 操作系统中用于表示和处理 Unicode 字符的一个概念,通常涉及到支
    WIDECHAR是WindowsAPI中用于处理宽字符(widecharacter)的一种类型,通常表示使用Unicode字符编码的字符。在Windows操作系统中,字符可以分为两种类型:ASCII字符:即单字节字符,每个字符用一个字节(8位)表示,能表示128个字符(包括标准英语字符、数字和一些符号)。宽字符:即宽字节字......
  • windows set alias
    ItisrathereasytosetuppermanentaliasesintheWindowscommandpromptusingthe @DOSKEY commandand HKCU\Software\Microsoft\CommandProcessor Autorunoption.Quickstep-by-stepguide:Createanewbatchfile,callit Alias.bat.Copy/pastethetex......
  • Windows环境使用conda安装paddleOCR并测试
    1,安装Anaconda打开清华镜像源https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D选择对应的版本的Anaconda下载并安装,按照提示一步步安装即可。2,使用AnacondaNavigatorGUI创建conda环境在AnacondaNavigator中,选择Environments选项卡,然后单击Create按钮。这将......
  • macOS / Windows / Linux:FlyEnv (PhpWebStudy) —— 一站式 Web 服务器和开发环境管理
    FlyEnv是什么?FlyEnv是一款集成了Web服务器、数据库服务器和开发环境管理的GUI应用程序。它提供了一整套完整的运行环境,帮助用户开发和调试Laravel、WordPress、Yii2、ThinkPHP、FastAdmin、NestJS、SpringBoot、Gin、Beego、Django、Flask等PHP、NodeJS、Java、Go......
  • Windows安装MySQL8.0
    一、下载MySQL安装包MySQL直接去官网下载就行,选择community版本(免费)下载,链接:https://dev.mysql.com/downloads/mysql/。在“MySQLCommunityServer”页面,根据您的Windows系统版本(32位或64位)选择合适的安装包进行下载。一般来说,现在大多数电脑都是64位系统,我们以6......
  • Windows 支持 DirectX 和 OpenGL,为什么大多数 PC 游戏还是 DirectX 开发?
    在Windows平台上,大多数PC游戏选择DirectX而不是OpenGL作为开发工具的主要原因,主要与历史发展、技术优势、生态系统支持以及平台优化有关。以下是详细的分析:1.历史和生态的原因1.1微软的推动和市场垄断DirectX是微软主导的图形API:DirectX是由微软专门为......
  • Ungoogled Chromium127编译指南 Windows篇 - 链接工具修复(十三)
    1.引言在完成Rust编译器包装器的修复后,我们遇到了编译过程最后阶段的链接问题。在Windows环境下,链接器无法正确找到llvm-pdbutil.exe和undname.exe这两个重要工具。本文将详细介绍如何解决这个问题。2.问题分析2.1错误表现链接阶段报错找不到必要的工具:llvm-pdbutil.e......
  • 在CodeBolcks+Windows API下的C++编程教程——给你的项目中添加头文件和菜单
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”:学习编程......
  • 在CodeBolcks+Windows API下的C++编程教程——给你的项目中添加资源文件和图标
    0.前言我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”:学习编程......