1. 背景
在业务开发完成,并且功能测试也正常,接下来就需要接口性能进行测试,也叫压力测试,即对接口进行极限施压,找到接口瓶颈。对于一般接口,需保证请求的耗时在300ms
左右最后,但一些接口涉及的业务逻辑复杂,导致耗时严重,并且用户请求量也大,因此需要对该接口进行测试,对照测试的结果修改代码进行优化,比如加缓存等等。所以,如何去测试接口性能的好坏呢?接下来就使用python
来搭建一个简单的压测脚本。
2. 环境搭建
环境包括:Python 3.11
,Locust
包
其中Python可以去官网下载安装:Python3.11,具体的安装步骤可以百度。
当Python
安装好之后,需安装Locust
包。以下是官网对于Locust
的介绍。
简要地讲,Locust非常好用的压测工具。官网链接
输入如下命令,安装Locust
安装好Locust
后,编写压测的python
脚本
3. 脚本文件
- 导入包
from locust import HttpUser, task
- 建立类对象,填入压测的接口
from locust import HttpUser, task
class LocustTest(HttpUser):
host = "http://localhost:8084" # host
def on_start(self):
print("start working")
@task(1)
def locust_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")
public class LocustTestController {
@PostMapping("/print-log")
public void locustTest(){
log.info("locustTest...."); // 接口访问后,打印一条日志。
}
}
- 启动脚本
- 浏览器输入地址:http://localhost:8089进入压测的监控界面
- 在界面填入,用户的总量、每秒增加的用户数,点
start swarming
即可进入监控界面
- 在界面填入,用户的总量、每秒增加的用户数,点
- 监控界面展示
- 目前共有
30
个并发,请求量每秒达到10447
- 目前共有
- 后台服务日志打印
-
其他的监控数据
-
压测数据下载
文章来源:https://www.toymoban.com/news/detail-643893.html
5. 结尾
以上就是利用Python
中Locust
的包实现了接口的压力测试。搭建非常的方便,并发数量方便可控制、各项数据展示非常清晰。如果有时间,可以本地搭建,测试本机能承受的最高压力喔。文章来源地址https://www.toymoban.com/news/detail-643893.html
到了这里,关于手把手搭建一个压测脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!