选择适当的负载测试工具
要实施此项测试策略,您需要能选择合适的负载测试工具。可用负载测试工具的完整评估已超出本文的讨论范围,但我们仍希望帮助您确定一些在选择适当的工具时的选项和注意事项。
第一个选项是考虑诸如 Windows Application Stress Tool (WAST) 这样的免费工具。另一方面,您还可以选用更为灵活的工具,例如 ACT 或 Empirix 的 e-TEST 套件。图 5显示的是 e-Load 的界面,它是 e-TEST 套件的负载生成部分。
这些工具之间有一些明显的功能差别。WAST 对于不太复杂的较小站点是不错的工具。您可以轻松地测试站点上的两三个关键页面,并很好地了解响应率是多少。但是,仅仅一个能测试多页面站点的隔离测试工具还是不够的。而且,WAST 中没有提供对于测试复杂站点必需的几个重要功能(以及本文中一些建议的实现)。要使用 WAST 获得复杂结果,需要您自定义应用程序,以便对其进行负载测试,这显然是您所不希望的。
要执行我们针对复杂站点所建议的测试,诸如 ACT 或 e-TEST 套件之类的更健壮的测试工具将更有效。如果您在 .NET 中进行开发,那么 ACT 将集成到整个开发周期中。但是,这需要 ACT 对象模型的编程技巧和知识,以生成强大的测试脚本。如果您决定使用诸如 e-TEST 之类的工具,则需要支付一笔许可费。
图 6ACT 结果界面
质量工具必须不仅仅能有效地测试站点,还能以有用的方式报告测试结果。ACT 和 e-TEST 均提供详细的报告环境,允许您在需要的时候将结果绘制成图像。ACT 结果界面显示在图 6 中。图 7提供了公共特性的摘要,以及必须提供的每种工具类型的描述。
如果您确定更健壮的工具的确有必要,请不要低估启动和运行必需耗费的时间。有些工具会宣称只需几个小时就能编写开始测试所必需的脚本。如果您先前就有使用该工具或类似的负载测试工具的经验,可能的确如此。但请做好耗费几天甚至几周进行准备工作的思想准备,所需的时间取决于站点的复杂程度。我们的第一个测试用例耗费了大约三周时间才启动和运行。您可能会发现,尽管学习了一遍样本教程,但仍有一些诀窍只能从实践中学到,而且要经常致电支持热线。耗费几个小时学习工具,其效果可能远胜于正规的训练或聘请有经验的顾问。而且,如果在开发阶段的晚期开始测试工作,您将承担不起浪费时间的损失,在这种情况下强烈建议使用以上两项资源中的一项或全部。
了解历史情况
您在一天之内甚至一周之内的测试数可能会变化。如果在调整 Web 服务器,则您可能决定运行一系列每小时一次的测试。如果您的目标在于测试应用程序的稳定性,则可能会整晚运行测试。不管是哪种方式,除非您保存一份文档历史记录,否则要跟踪从一个测试到下一个测试的变量和进度将会很难。有一点至关重要,即您能轻松地确定已进行了哪些测试、找到了什么以及接下来应测试什么。
至少应记录运行的开始和结束时间、测试中的虚拟用户量以及一份描述测试目标和更改内容的开始说明。以一份描述测试结果的结束说明完成运行。
小结
要成功部署复杂的 Web 应用程序,您必须首先采用超出系统测试范围的“无惊讶”测试方法。负载测试由可伸缩性测试、性能测试和稳定性测试组成,它是发现体系结构中主要内在问题的唯一方法。为了达到此目的,您需要一个单独的生产环境,环境中有类似的生产硬件、健壮的负载测试工具以及组织中若干人员的协作。
适当的度量标准可提供确定系统是否满足质量条的方法。当然,对于可伸缩性实验室团队而言,最有价值的是分布式日志记录系统捕获到的错误和性能数据,因为它能提供应用级的信息。
通过使用本文中讨论的建议并确保记录工作情况,可以很好地保证在计划的日期内顺利地进行部署。