小结--性能测试步骤

以下是对自己性能测试过程的一个简单小节, 对于性能需求分析的方法没有过多描述.

1)待测系统采取什么通信协议 ?web还是C/S ?,如果是web方式,那么服务器使用的是apache还是别的?web服务器当前的配置.   

2)期望达到的性能指标?这个在项目组提交的性能测试需求文档里有说明,担通常描述不是很清晰,需要进一步确认(可参见步骤4).   

3)网络环境,待测的server端部署在什么网络环境 ?负载机所在的网络环境?  他们之间的接口带宽有多少?(曾碰到过待测server放在IDC的情况,这时压力测试发送的量就需要小心,不能影响其它业务的正常运行. 缺少独立的网络环境, 真的是性能测试之殇)  

4)估算开发提出的性能指标能否达到:      

     4.1)计算网络带宽是否会成为瓶颈,需要考虑服务器的网卡,带宽以及测试机所在环境的网络带宽: 如返回的是页面,可以通过httpwatch来查看返回的页面大小,假设为aK, 希望达到的并发数为b人,则占用带宽为:a*b*8  byte(乘以8是由于网络带宽是以bit为单位的)。   我们的OA网络带宽是100MkB,但是由全公司同事来分享,所以如果上面的值超过或太接近100M的话,在测试环境中该指标实际是无法达到的.     

     4.2)磁盘I/0是否会成为瓶颈,该情况多出现在需要向磁盘写入大数量的情况,如下载文件。通常我们的PC机磁盘I/0读写是2M,如果要求支持1000个并发,而从服务器端返回的速率是每秒100kB(服务器端对单个连接的下载速度不限速, 且下载文件已保存到cache),那么一台pc机最多支持的Vuser=2000/100,为20个虚拟用户(实际达不到20)。由此可知这么多的负载机几乎是不可能达到的.  需要重新考虑测试策略.

5)了解被测程序    通常我们测试的都是server,那么需要了解如下几个问题:     

      5.1)server端的cache机制,数据是不是在server启动时即被加载到内存? 内存有多大? 内存中的数据如何淘汰?     

      5.2)server端是以进程还是线程来处理客户端请求的,这个进程/线程数是否可配置?      

      5.3)咨询开发人员server程序对CPU,mem,I/0那个占用比较大 ?     

      5.4)server端是否用到了公司的其它通用组件,如XXX等,需要了解这些通用组件的性能指标是否成为制约条件.     

       5.5)在生产环境,server是集群还是单机环境?    

6)编写测试计划,确定负载机的数量,确定测试工具.   

7)开发测试脚本,调试成功后开始性能测试,每个测试场景重复执行2到3轮,压力过程中需监控服务器资源的使用情况.由于公司的限制,我们只能使用vmstat,top等linux自带命令来监控,  无法使用spolight等工具.

      每轮测试后,都重新启动server程序以尽量确保测试环境的一致(释放资源,清空cache).由于公司规定,重启server所在主机不被允许.  当三轮测试都执行完毕后, 统计监控到的server端资源使用数据, 相关指标取平均值。  

8)如达不到性能测试指标,可在开发的配合下,通过调整web服务器,server的配置(如:接入进程,处理进程数等)后,查看性能是否有变化. 注意,在调整配置时,最好是一次只调整一项.这样更有利于定位瓶颈.

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值