虽然B/S结构愈来愈成为流行模式,但基于C/S结构的应用程序还广泛地应用于各种行业。对于某些应用软件,其承受大用户量并发访问的能力常常是应用者重点考虑的一个方面。最好的方法是用测试工具来模拟多个客户端同时访问服务器,并使用性能监测工具获得关于服务器、数据库等用户关心的性能指标。中国软件评测中心在多年的测试历程中,使用过多种性能测试工具,而对于C/S结构的应用程序,也总结了不少性能测试经验和方法。下面以中国软件评测中心经常用到的一种压力测试工具 QALoad为例,说明这类性能测试需要注意的地方。
1、首先分析压力测试中最容易出现瓶颈的地方,从而有目的地调整测试策略或测试环境,使压力测试结果真实地反映出软件的性能。例如,服务器的硬件限制、数据库的访问性能设置等常常会成为制约软件性能的重要因素,但这些因素显然不是用户最关心的,我们在测试之前就要通过一些设置把这些因素的影响调至最低。
2、测试脚本至关重要。对于某些应用,如ADO、ODBC等等,QALoad可以录制/回放脚本,这给测试工作带来极大的便利,但用这样采集来的脚本直接作为压力测试的脚本往往会导致错误的结果。我们需要对原始的脚本进行修改,根据应用程序的实际情况和用户可能的操作情况调整脚本的结构,从而使脚本更符合实际情况。比如,我们录制一个用户登录、操作和注销的过程,实际情况是多数用户只登录一次,然后进行多次操作,这时我们只需在脚本中把登录和注销部分转至循环(即脚本中的Transaction部分)外即可。
3、选用不同的加载策略可以反映不同状况下的性能。QALoad可采用的策略有:
(1)并发用户数和每个模拟用户运行的事务数都为固定值;
(2)并发用户按固定的时间间隔递增,每个模拟用户数运行的事务数不限;
(3)以类似于批处理的方式顺序运行不同并发数的模拟用户,每个模拟用户运行的事务数 固定;
(4)并发用户数固定,运行事务数不限,在一定的时间范围内持续运行脚本,然后手动停止;
(5)不同模拟用户运行不同的脚本,模拟真实的访问情况。 另外,QALoad还提供设置数据变量和数据池,设置操作之间的间歇时间等功能,我们在运行脚本时可以充分利用这些策略和功能。
4、寻求多种性能指标的获取方法。由QALoad本身提供的性能指标是每个“检查点”的响应时间,这些响应时间可以通过统计分析以获得更直观的结果,如平均响应时间、响应时间方差等等,但这些远远不能满足我们压力测试的需要。对于基于Windows系列平台的应用,QALoad可以添加Windows服务捕获的性能指标,前提是在服务器上安装QALoad的Agent组件并启动服务器上的SNMP等服务。对于如UNIX的其他平台,我们可以借助专用性能监测工具,如MAX、 ECOTool,以获取更有价值的性能数据。
大多数性能测试,特别是基于C/S结构的应用软件的性能测试只有借助于测试工具才能完 成,另一方面,也需要测试工程师灵活的运用才能让测试工具充分发挥作用