最近时间比较充裕,所以抽空学了was的基本使用,几天下来积累了些东西,却是不知道应该从哪些角度去总结我所学到的东西,如何验证!同时,我也试着抓几个方面来分析:was的适用对象、was如何模拟对网站进行压力测试?即如何去设置、分析测试过程中生成的report,哪几个方面比较重要等。
was的适用对象:
利用was对web网站进行性能预估,测试web服务器的性能现状是否满足需求。网站的测试可大略分成三个主要的类别:网站性能测试(performance testing)、压力测试下的网站稳定性(stability or stress testing)、网站承受能力评估(capacity planning)。
was模拟多用户并发:
1.并发连接数
a.设置并发用户(settings面板-->Concurrent Connections):stress levels(thread)以及stress multiplier(sockets per thread)二者决定了访问web服务器的并发连接数。一般情况下,当并发数要求超过100时,调整stress multiplier值提高并发数量,stress level值建议不要超过100(为什么?)。
访问服务器的并发值=(stress level)*(stress multiplier)。Stress level是全部客户端所产生的线程总数。每个线程能产生多个socket而每个socket就是一个并发的请求。例如测试网站登陆的情况下,Stress level (threads)可理解为登陆线程数,而Stress multiplier (sockets per thread)相当于每一登陆线程中的并发用户数量。
b.也可利用多个Clients来提高并发连接数。双击【Clients】结点进入主页面,添加客户机(添加客户机的IP地址),本机WAS将通过DCOM与其他客户机协调。
c.在设置Concurrent Connections的同时,【Users】中的数量要大于并发连接数(即=(stress level)*(stress multiplier))。如果网站提供个性化服务,要进行身份验证或使用Cookies,我们还要为WAS提供一个用户目录,WAS中的用户存储了发送给服务器的密码以及服务器发送给客户端的Cookies。
2.设置网络带宽
带宽限制功能够为测试环境模拟出Modem(14K,28.8K,56K),ISDN(64K,128K)以及T1(1.154M)的速度。使用带宽限制可以精确地预测出客户通过拨号网络或其他外部连接访问web服务器所感受的性能。
3.测试运行持续时间设置
was允许设置warmup时间,一般可设置为1分钟。在warmup期间was开始执行脚本,但不收集统计数据。warmup时间可对测试环境进行预热。
4.设置Test Run Time
设置测试的持续时间,测试压力测试状态下的运行是否稳定?
分析测试report,【View-->Reports】:查看测试结果
1.先查看Result Codes.404错误:需要查看脚本列表中是否有出现错误的页面请求;500错误:可能web服务器负载过重,导致页面请求无法响应而报错。需要根据具体code具体分析。
2.overview:
========================================================
Number of test clients: 1
Number of hits: 22357 ------每秒点击率
Requests per Second: 372.66 ------每秒客户端的请求次数(这个值大小越高越好)
=============================================================
=============================================================
Socket Connects: 22359 Total
Bytes Sent (in KB): 7095.35
Bytes Sent Rate (in KB/s): 118.27
Total Bytes Recv (in KB): 81532.56
Bytes Recv Rate (in KB/s): 1359.02
=============================================================
3.分析具体页面的数据(PageData)
接收到第一个字节的平均时间(TTFB),接收到最后一个字节的平均时间(TTLB),以及测试脚本中各个页面的命中次数。TTFB和TTLB这两个值对于计算客户端所看到的服务器性能具有重要意义。TTFB反映了从发出页面请求到接收到应答数据第一个字节的时间总和(以毫秒计),TTLB包含了TTFB,它是客户机接收到页面最后一个字节所需要的累计时间。
Time to first byte (in milliseconds)
===================================================================
Average: 42.83 Min: 1.42
25th Percentile: 21.83
50th Percentile: 37.19
75th Percentile: 61.11
Max: 412.96
===================================================================
Time to last byte (in milliseconds)
===================================================================
Average: 42.93
Min: 1.46
25th Percentile: 21.91
50th Percentile: 37.34
75th Percentile: 61.23
Max: 412.97
===================================================================