0


手把手搭建一个压测脚本

1. 背景

    在业务开发完成,并且功能测试也正常,接下来就需要接口性能进行测试,也叫压力测试,即对接口进行极限施压,找到接口瓶颈。对于一般接口,需保证请求的耗时在
300ms

左右最后,但一些接口涉及的业务逻辑复杂,导致耗时严重,并且用户请求量也大,因此需要对该接口进行测试,对照测试的结果修改代码进行优化,比如加缓存等等。所以,如何去测试接口性能的好坏呢?接下来就使用

python

来搭建一个简单的压测脚本。

2. 环境搭建

    环境包括:
Python 3.11

Locust

    其中Python可以去官网下载安装:Python3.11,具体的安装步骤可以百度。

    当
Python

安装好之后,需安装

Locust

包。以下是官网对于

Locust

的介绍。

在这里插入图片描述

     简要地讲,Locust非常好用的压测工具。官网链接

    输入如下命令,安装
Locust

在这里插入图片描述

    安装好
Locust

后,编写压测的

python

脚本

3. 脚本文件

  • 导入包
from locust importHttpUser, task
  • 建立类对象,填入压测的接口
from locust import HttpUser, task

classLocustTest(HttpUser):

    host ="http://localhost:8084"# hostdefon_start(self):print("start working")@task(1)deflocust_test(self):
        header ={"Content-Type":"application/json"}
        data ={}print("正在请求!!!")
        self.client.post("/locust-test/print-log", data=data, headers=header)
  • 以上就是一个基本的压测脚本,在脚本中包括: - host:服务地址- header格式,data格式- url:"/locust-test/print-log"- on_start: 包里自带方法,在脚本启动时执行。- 最重要的一点,要在方法上加上@task注解,括号里面的数据是一个权重,权重搞,压测的请求就分配的愈多,在对多个接口测试时有用,单个不起重要,毕竟就一个接口。
  • 脚本运行的命令:locust -f *.py(脚本的名字)

4. 压力测试demo

  • 搭建后台服务,并启动
@Slf4j@RestController()@RequestMapping("/locust-test")publicclassLocustTestController{@PostMapping("/print-log")publicvoidlocustTest(){
        log.info("locustTest....");// 接口访问后,打印一条日志。}}
  • 启动脚本

在这里插入图片描述

在这里插入图片描述

  • 监控界面展示 - 目前共有30个并发,请求量每秒达到10447

在这里插入图片描述

  • 后台服务日志打印

在这里插入图片描述

  • 其他的监控数据在这里插入图片描述
  • 压测数据下载

在这里插入图片描述

5. 结尾

    以上就是利用
Python

Locust

的包实现了接口的压力测试。搭建非常的方便,并发数量方便可控制、各项数据展示非常清晰。如果有时间,可以本地搭建,测试本机能承受的最高压力喔。


本文转载自: https://blog.csdn.net/qq_31900497/article/details/129341096
版权归原作者 CodeJames 所有, 如有侵权,请联系我们删除。

“手把手搭建一个压测脚本”的评论:

还没有评论