locust学习总结6 - 使用更快的http客户端:FastHttpUser

1、概念

  Locust 的默认 HTTP 客户端使用的是 python-requests 库。如果我们需要运行非常高的吞吐量测试,去判断吞吐量是否达到预期值,并且运行 Locust 的电脑CPU满了,可以使用 FastHttpUser 客户端,它使用 geventhttpclient 代替。它跟 requests 库的API很相似,并且使用的 CPU 时间要少得多,可以让运行 locust 时候,电脑 CPU 的每个核最大请求数增加 5 到 6 倍。
  使用 FastHttpUsers 的测试每个核心每秒可以处理接近 5000 个请求,而不是 HttpUser 大约 850 个请求(在 2018 年 MacBook Pro i7 上测试) 2.6GHz)。只要CPU没过载,FastHttpUser 的响应时间应该与 HttpUser 的响应时间几乎相同。

2、估算电脑允许的最大并发数

在这里插入图片描述
查看单个 Intel® Core™ i5-10500 型号的CPU 的线程数是12,
在这里插入图片描述
结论就是:我电脑总共12个内核,可同时处理24个线程,设置12个节点,开始执行并发测试:

  • FastHttpUsers 单核每秒可以处理接近 5000 个请求,每秒可以处理接近 6万个请求,实际按5万算吧
  • HttpUser 单核每秒可以处理接近 850个请求(在 2018 年 MacBook Pro i7 上测试) 2.6GHz),12个内核,使用 httpuser 后,每秒可以处理接近9000 个请求

所以,自己电脑12个节点全开的情况下,
(1)12节点全开,电脑CPU不过载,9000并发以下的时候使用httpuser
(2)12节点全开,电脑CPU过载了,9000并发以上了,考虑使用FastHttpUsers
(3)12节点全开,电脑CPU过载了,并发超过6万了,拓展节点机器继续分布式压测,比如这里同事电脑的CPU总共12核,就可以开启12个节点,最大化利用CPU资源,增加电脑发给服务器的每秒的请求数。

注意:很容易因为理解不深刻,导致电脑每秒发给服务的请求数不够,比如在自己电脑20万并发,实际每秒只发送了9000个请求,服务器每秒接收到的并不是20万并发的请求数,通过分布式执行来确保20万确实是并发上去了。

在Windows上使用Locust进行性能测试时,可以通过以下步骤来计算电脑支持的最大并发数:

  • 确定硬件配置:首先,需要了解你的电脑的硬件配置,包括CPU型号、核心数、内存大小、硬盘类型和可用空间等。这些信息将有助于确定你的电脑能够支持的最大并发用户数。
  • 了解Locust的并发限制:Locust本身有一个并发用户数的限制。你可以通过查看Locust的文档或官方网站来了解这个限制。一般来说,Locust的并发用户数限制取决于可用的系统资源。
  • 考虑其他因素:除了硬件配置和Locust的并发限制外,还需要考虑其他因素,如网络带宽、系统负载等。这些因素可能会影响你的电脑支持的最大并发数。
  • 进行测试:在进行性能测试时,可以逐步增加并发用户数,并观察系统的响应时间和资源利用率等指标。当系统的响应时间开始变慢或资源利用率达到峰值时,可以认为你电脑支持的最大并发数已经达到。【增大并发数的同时,查看windows是否达到带宽峰值、CPU峰值、内存峰值等资源使用率峰值,任何一个达到了就说明当前是本机windows支持的最大并发数】
  • 记录结果:记录测试过程中的最大并发数、响应时间、资源利用率等数据,以便后续分析和优化。

3、fasthttpuser的使用

from locust import task, FastHttpUser

class MyUser(FastHttpUser):
    @task
    def index(self):
        response = self.client.get("/")
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_焦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值