Jmeter 性能-并发量计算

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-优快云博客文章浏览阅读2k次,点赞85次,收藏11次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……https://blog.youkuaiyun.com/AI_Green/article/details/134931243?spm=1001.2014.3001.5501并发概念:指网站在同一时间访问的人数,人数越大瞬间带宽要求更高。

服务器并发量分为:

业务并发用户数;
最大并发访问数;
系统用户数;
同时在线用户数;

估算业务并发量的公式:​​​​​​​

C=nL/T 
C^=C+3×(C的平方根)

说明:C是平均的业务并发用户数、n是login session的数量、L是login session的平均长度、T是指考察的时间段长度、C^是指业务并发用户数的峰值。

例子分析:

假设OA系统有1000用户,每天400个用户发访问。每个登录到退出平均时间2小时,在1天时间内用户只在8小时内使用该系统。

则平均并发量和最大并发量如下:​​​​​​​

C=400×2/8=100 
C^=100+3×(100的平方根)=100+3×10=130

此外,如果知道平均每个用户发出的请求数u,则系统吞吐量可以估算为u×C。

想建设一个能承受500万PV/每天的网站? 500万PV是什么概念?

服务器每秒要处理多少个请求才能应对?如果计算呢? 

PV是什么:

PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。 

计算模型:

每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 。

其中关键的参数是80%、40%,表示一天中有80%的请求发生在一天的40%的时间内。

24小时的40%是9.6小时,有80%的请求发生一天的9.6个小时当中(很适合互联网的应用,白天请求多,晚上请求少)。

简单计算的结果:​​​​​​​

((80%*500万)/(24小时*60分*60秒*40%))/1 = 115.7个请求/秒 
((80%*100万)/(24小时*60分*60秒*40%))/1 = 23.1个请求/秒

初步结论:现在我们在做压力测试时,就有了标准,如果服务器一秒能处理115.7个请求,就可以承受500万PV/每天。

如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。

留足余量:

以上请求数量是均匀的分布在白天的9.6个小时中,但实际情况并不会这么均匀的分布,会有高峰有低谷。

为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。​​​​​​​

115.7个请求/秒 *2倍=231.4个请求/秒
115.7个请求/秒 *3倍=347.1个请求/秒
23.1个请求/秒 *2倍=46.2个请求/秒
23.1个请求/秒 *3倍=69.3个请求/秒

最终结论:

如果你的服务器一秒能处理231.4--347.1个请求/秒,就可以应对平均500万PV/每天。

如果你的服务器一秒能处理46.2--69.3个请求,就可以应对平均100万PV/每天。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

### 配置并发用户负载 为了在JMeter中配置并发用户负载以执行性能测试,需理解并利用线程组(Thread Group)功能。线程组定义了虚拟用户的数量以及这些用户的行为模式。通过调整线程数、Ramp-Up Period和循环数等参数可以精确控制并发量。 #### 设置线程组属性 - **线程数(Threads)**: 表示模拟的用户总数。增加此数值可提升并发度。 - **预处理时间(Ramp-Up Period,)**: 定义所有线程启动所需的时间间隔。合理设置该值有助于平稳加载流量而非瞬间爆发[^1]。 ```xml <elementProp name="ThreadGroup.main_controller" elementType="LoopController"> <boolProp name="LoopController.continue_forever">false</boolProp> <stringProp name="LoopController.loops">${__P(loops,1)}</stringProp> </elementProp> <stringProp name="ThreadGroup.num_threads">${__P(users,10)}</stringProp> <stringProp name="ThreadGroup.ramp_time">${__P(rampup,60)}</stringProp> ``` 上述XML片段展示了如何动态设定线程数目(`users`)、ramp-up周期(`rampup`)及迭代数(`loops`)[^2]。 #### 使用定时器实现更真实的访问行为 仅靠线程组无法完全模仿真实场景下的用户活动规律。为此,在测试计划(Test Plan)里加入合适的定时器(Timer),比如高斯随机定时器(Gaussian Random Timer)或定距定时器(Constant Throughput Timer),能够使请求分布更加贴近实际情况[^3]。 ```java // 添加GaussianRandomTimer实例到HTTP请求之前 GaussianRandomTimer timer = new GaussianRandomTimer(); timer.setDeviation((long)(mean * deviationFactor)); timer.setName("gaussian_random_timer"); sampler.addTestElement(timer); ``` #### 调整服务器资源分配 当目标是在内网环境中部署JMeter进行大规模并发测试时,还需考虑宿主机硬件条件和服务端口开放情况等因素。确保有足够的计算能力支撑预期的工作负荷,并适当优化操作系统层面的相关配置项,如文件描述符限制(file descriptor limit)等[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值