整体性能测试剖析

发表于:2008-09-03来源:作者:点击数: 标签:性能测试剖析
【摘要】性能测试不只是 测试人员 的事情,只有通过不同阶段不同参与人的通力合作才能把性能测试做好。 【关键词】性能测试性能优化 DBA 随着项目越来越大,性能问题层出不穷。如何做好性能测试成为测试人员经常讨论的话题。很多时候,大家都在疑惑性能测试如
【摘要】性能测试不只是测试人员的事情,只有通过不同阶段不同参与人的通力合作才能把性能测试做好。

  【关键词】性能测试性能优化 DBA

  随着项目越来越大,性能问题层出不穷。如何做好性能测试成为测试人员经常讨论的话题。很多时候,大家都在疑惑性能测试如何来做,性能标准从那里来,有没有通用的标准,性能测试由谁来做,如何规划。首先我们了解一下,什么是性能测试。性能测试的目的:通过性能测试了解系统的性能有没有满足需求,对于不满足需求的模块则通过测试发现可能的性能瓶颈,并进行相应的性能调优,从而达到最终用户的要求。由于项目巨大,所以性能测试不仅仅是测试人员的事情,可能需要整个项目组的参与,而测试人员则更需要清晰的了解到性能测试分几个阶段,每个阶段如何来做,需要协调那些资源?

  在性能测试的每一个阶段,性能测试的参与人是不一样的,下面的图就是不同阶段的人员参与表。

  

  性能测试人员图

  从上图中可以看出,其实性能测试不是一个人可以搞定的事情,在需求阶段,制定性能初步的标准则需要需求人员的协助,了解那些场景是重要的,大约有多少人用,有多大数据量;而在设计场景时不仅要从需求中设计出必需要测试的场景,有时候需要通过功能测试人员了解,他们在测试过程中那些场景运行的比较慢。而运行脚本时,则需要SA(System Administrator系统管理员,编者注),程序员帮你增加分析所需要的性能指标,而DBA(DataBase Administrator数据库管理员,编者注)则增加数据库监控的参数。在分析结果的阶段则需要三者相互灵活的配合,当发现性能问题时,可能会根据程序员或DBA的要求,不断的调整监控的参数,以便更精确的定位问题。而在优化阶段,则是找出性能的瓶颈并优化,更需要多方的配合,不仅仅是测试。

  在性能测试前期,也就是上图的前三个阶段,重点需要了解,系统有那一些重要的功能模块,大约的用户是多少,用户的行为是如何分布的,每个模块的使用频度,大约的数据量,使用什么样的硬件,系统稳定性的要求等等。当然需求人员不是专业的测试人员,这时专业性能测试人员就是跟据需求人员大致的描述或是文档,提取出这些重要信息,建立系统模型。下面的一份表就是某个大型系统邮件模块的数据模型:

  序号 分类 项目 数据 单位

  1 统计数据及经验数据 A:总用户数 5,000,000 个

  2 B:激活用户比例,每天访问用户数点总用户数的比例 60%

  3 C:每个激活用户邮件数 50 封

  4 D:每个用户每天收到信数 8 封

  5 E:每个用户每天发送信数 6 封

  6 F:系统高峰时间(小时) 4 小时

  7 G:高峰时间内收发的邮件数占一天总邮件数 50%

  8 H:每个用户每天收发件次数 6 次

  9 J:每封邮件大小平均为(K) 30 Kbyte

  10 K1:据统计,使用WEBMAIL的用户数百分比: 70%

  11 K2:使用邮件客户端软件的用户数百分比: 28%

  12 K3:使用IMAP用户数百分比: 2%

  13 L:平均每通过web访问一封信,大约要访问页面数为: 4 个

  14 M:假定每个页面大小约为 30 Kbyte

  15 N:通过本系统向外转送百分比 75%

  16 O:发送给本系统的邮件百比分 25%

  17 Q:系统峰值时CPU利用率 60%

  18

  19 处理能力计算 POP的处理能力=A*K2*B*D*G/(F*3600) 52.78 封/秒

  20 POP流出系统量=(POP的处理能力*J) 1.58 Mbyte/s

  21 HTTP的收信件处理能力=A*K1*B*D*G/(F*3600) 83 封/秒

  22 HTTP的发信件处理能力=A*K1*B*D*G/(F*3600) 62.5 封/秒

  23 HTTP流出系统量(平均页面大小*页面数* HTTP处理能力) 9.96 Mbyte/s

  24 HTTP流入系统量(HTTP发信数*J) 1.88 Mbyte/s

  25 SMTPIN(从其它系统收到邮件)=A*K2*B*D*G/(F*3600) 52.78 封/秒

  26 SMTPCLIENT(客户端发送系统)=A*B*E*G/(F*3600) 104.17 封/秒

  27 SMTPOUT(发送到其它系统)=A*B*E*G*N/(F*3600) 78 封/秒

  28 SMTP平均发信(SMTPIN+SMTPCLIENT+SMTPOUT) 134 封/秒

  29 SMTP流入量=(SMTPIN+SMTPCLIENT)*J 4.68 Mbyte/s

  30 SMTP流出量=(SMTPOUT*J) 2.03 Mbyte/s

  31 高峰时期邮件平均流入量 6.56 Mbyte/s

  32 高峰时期邮件平均流出量 13.57 Mbyte/s

  33 高峰时期邮件平均总流量 20.13 Mbyte/s

  34 系统带宽要求(流量×8(含协议数据)) 160 Mbit/s

  35

  36 并发数计算 POP高峰并发数目=A*K2 * B*H*G/(F*3600) 次/秒 39.58 次/秒

  37 SMTP高峰并发数目=A*B*(D+E)*G/(F*3600) 次/秒 183.06 次/秒

  38 HTTP高峰并发数目=A*B* (D+E)*K*L*G*O/(F*3600)次/秒 145 次/秒

  39 IMAP高峰并发数目=A*D*K3*B*I*G/(F*3600)次/秒 0.35 次/秒

  某模块数据模型图

  

原文转自:http://www.ltesting.net