Python+selenium+JupyterECI容器压测

压测资源

压测流程图

压测执行过程

创建500个学生,并对对应的学生创建一笔订单

控制台输出完成,去数据库及系统查看数据已存在
用户表

订单表

按照student1@example.com:mulu492l格式放在txt文件中,供后续的接口调用

查看阿里云ECI容器已经开启

执行并行打开juypter容器并执行代码

根据用户模拟登录-open第一笔订单打开-进入juypter容器->打开juypter文件–>打开test.ipynb文件并运行全部代码

阿里云资源消耗情况

模拟websocket连接,触发页面错误

jmeter操作,使用WebSocket插件

阿里云资源消耗情况

计算对应页面的连接数【jupyter测算】

测算统计规则

ECS统计规则:ECS中同时连接数是指客户端与服务器建立连接后数据传输过程的连接数。当访问者访问网站时,此时至少占用一个连接。根据程序的不同,一个访问者也可能占用多个连接数,因而连接数不等于在线人数,与在线人数之间不支持换算。程序相同时,较多的连接数支持较多的在线人数。并且该连接不仅包含TCP连接,对于UDP和ICMP也会建立连接。
TCP连接统计规则:TCP连接数是采集了TCP_TOTAL(总连接数)、ESTABLISHED(正常连接状态)和NOT_ESTABLISHED(非连接的状态连接数,ESTABLISHED以外的所有状态)
和ss 命令获取的一致。

Juypter-统计图(ECS和TCP分析图代码)
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 500]
y = [251, 419, 410, 498, 448, 515, 576, 670, 796, 806, 1322, 1899, 2621, 4000, 3903, 3771, 4527, 4021, 4580, 8551]

# 绘制柱状图和折线图
fig, ax = plt.subplots()
ax.bar(x, y, color='b', alpha=0.5, width=3)
ax.plot(x, y, color='r', linewidth=2, marker='o', markersize=5)

# 设置图形属性
ax.set_xlabel('X轴', fontsize=14)
ax.set_ylabel('Y轴', fontsize=14)
ax.set_title('折线图和柱状图', fontsize=16)
ax.set_xlim(0, 510)
ax.set_ylim(0, 9000)
ax.tick_params(axis='both', which='major', labelsize=12)

plt.show()

测试标注
阿里云ECS统计间隔为1min/s、TCP统计间隔为15s/次。

1、根据不同的容器设置不同的Nginx设置,若过多设置Nginx是否会出现资源冗余的情况?
在nginx的配置中,worker_connections参数定义了每个worker进程可同时处理的最大连接数。这个参数并不是一开始就创建那么多链接,而是限制了每个worker进程在任意给定时刻可以同时处理的最大连接数。
当nginx启动时,它会创建一组worker进程,每个worker进程都可以处理客户端的连接请求。每当有新的连接请求到达时,nginx会分配一个worker进程来处理该请求。如果当前的连接数达到了worker_connections的限制,nginx将不再接受新的连接请求,直到有空闲的连接可用。
需要注意的是,worker_connections参数的实际值受到系统资源的限制。如果系统的文件描述符限制较低,即使在nginx配置中设置了很高的worker_connections值,也可能无法实际达到这个数量的并发连接。
总结起来,worker_connections参数是用于限制每个worker进程可以同时处理的最大连接数,并非一开始就创建那么多链接。

2、能否根据测算的连接数,得出系统资源配置及扩充/缩减资源配置?
确定系统资源配置和扩充资源配置需要结合多方面的因素,仅根据测算的连接数是不足以得出准确结论的。在进行系统资源配置和扩充资源配置时,需要考虑:
基本单机最低配置可承载用户数4c8g(绝大部分使用场景)
基本多机器(单机最低配置)可承载用户数
单机扩容2C4G可多扩容用户数
多机器扩容可承载用户数
如:仅针对长链接IO场景【可以用Java自带的监控工具jstatd】进行分析:
100webcsocket 20mb 100*20mb = 1G,广播cpu轮询0.5c cpu时间。

总结:使用Python+selenium进行页面元素定位和代码执行,通过task进行任务执行,从而执行对应的自动化脚本,针对于跨页面跨元素的压测有一定的帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值