性能测试之——网络环境分析
- 首先,我们需要了解宽带上网时的网络带宽环境概念:
这里指的是带宽网速的单位计算方式方法及关系。
在计算机网络、IDC机房中,其宽带速率的单位用bps(或b/s)表示;换算关系为:1Byte=8bit
1B=8b ---------- 1B/s=8b/s(或1Bps=8bps)
1KB=1024B ---------- 1KB/s=1024B/s
1MB=1024KB ---------- 1MB/s=1024KB/s
在实际上网应用中,下载软件时常常看到诸如下载速度显示为128KB(KB/s),103KB/s等等宽带速率大小字样,因为ISP提供的线路带宽使用的单位是比特,而一般下载软件显示的是字节(1字节=8比特),所以要通过换算,才能得实际值。然而我们可以按照换算公式换算一下:
128KB/s=128×8(Kb/s)=1024Kb/s=1Mb/s即:128KB/s=1Mb/s
理论上:2M(即2Mb/s)宽带理论速率是:256KB/s(即2048Kb/s),实际速率大约为80--200kB/s;(其原因是受用户计算机性能、网络设备质量、资源使用情况、网络高峰期、网站服务能力、线路衰耗,信号衰减等多因素的影响而造成的)。4M(即4Mb/s)的宽带理论速率是: 512KB/s,实际速率大约为200---440KB/s。
- 其次,我们需要知道自己所处的真实网络了环境特点:
1、电信带宽是按Bit计算的,电脑文件是按Byte计算的,1Byte=8Bit,接入光纤的带宽/8=实际使用带宽
2、浏览网页一次2K,网络游戏、视频是交互式的一般80K就搞定了,QQ或MSN等即时工具也是占10K左右
3、以20台电脑为例:
浏览网页 : 20台电脑*2K=40K
网络游戏+视频:20台电脑*80K*2=3200K
MSN、QQ : 20台电脑*10K=200K
40+3200+200=3440K Byte
3440*8=2M光纤
4、ADSL带宽是非对称的的,电话线路中0~4Khz用来传输电话音频,用26Khz~1.1Mhz频段传数据,并把它以4Khz的宽度划分为25个上行子通道和249个下行子通道,输入的数据经过TCM编码及QAM调制后,送往子信道,所以理论上上行速率可达1.5Mbps, 下行速率可达14.9Mbps,考虑到干扰等情况,实际上传输速率一般为上行640Kbps,下行8Mbps 。我们常用的2M ADSL实际速率下载约250Kbyte,上传约64Kbyte
5、光纤带宽是对称的,上传和下载均等
- 最后,我们需要结合实际被测系统服务器及自己测试客户端所处的网络环境,确定单个客户端所能分配的最大虚拟用户数:
这里举个例子说明一下:
1、首先是客户需求:
① 某网站首页的大小为2M,这里指将网页完全打开后,另存为html及其图片css元素的总和;
② 客户端电脑连接该web服务器的带宽为100M,同属于一个局域网内;
③ 客户要求测试网站1000人并发访问情况下,Web服务器的压力情况;
④ 客户期望网站首页访问的用户端响应时间小于3秒;
2、测试设计需要考虑的因素如下:
① 一个客户端最多能承载多少虚拟用户?
答:3秒下载2M的网页,粗略估计大致一秒需要700k下载量,按带宽的8倍原理,则单个用户在不并发的情况下需要5.6M的带宽来完成此项工作;所以一个客户端电脑按此标准只能承载20用户并发;(实际的客户端并发用户数还需要考虑客户端的CPU内存等信息,因为虚拟用户也是要耗物理计算资源的)
② 实际中,网页下载是使用最大带宽,即当只有一个虚拟用户打开网页时,它的下载速度是100/8=12.5M带宽,它可能0.2秒以内就下载完了2M的网页资源,剩下的实际只是js及css渲染和浏览器呈现的时间,这个时间大致我们的感觉是0.8秒到1秒;(因为要考虑服务器准备这些网页资源的时间和网络连接建立时间,数据传输时间等等)
③ 实际在家中访问互联网时,我们的带宽至少是1M的ADSL,所以在实际测试时,按照100/1=100的估算,我们每个客户端最大使用100个虚拟用户,这是为了给每个虚拟用户正常的带宽资源,避免带宽的争抢成为性能测试数据不准确或性能测试失败的原因。(实际中我们一般100M带宽,会加载150至200个虚拟用户,这是在客户不限制响应时间小于3秒的情况下,我们想得到服务器所能支撑的最大用户数)
④ 做性能测试,建议使用有线网络,当然无线网络也能做性能测试,只是信号的强弱变化及路由器的稳定性会急剧影响我们的性能测试结果。
⑤ 当你的上司问你需要多少客户端作为测试虚拟用户生成器时,你可以根据带宽原理的限制,来粗略的估计你的测试资源需求,而避免了抓瞎申请资源。