旧学派
某天,我的一位同事问我,关于对面向服务的体系结构(Services Oriented Architecture,SOA)解决方案的性能测试有什么建议。这让我陷入了沉思……性能测试是一门具有必须遵循的基本原则的科学,但从性能测试的角度而言,是否存在尚未针对SOA进行的任何特定事项?
首先让我们了解一下基础知识。
了解要测试的对象
对于任何性能测试,首先都要标识和编写有效的用例。标识用例的两个最好方法是:
分析运行站点的访问日志,了解所出现的实际用例。
让业务分析人员提供其预期应用程序将处理的用例。
无论采用哪种方法,由于性能测试的价值取决于所测试的用例,这里的主要目标是不要忽略任何用例。未测试的用例将最终导致在生产中出现问题。
例如,对于典型的电子商务站点,有四个(至少)基本用例:
访问主页:始终会有针对访问站点的每个用户的登录页。
浏览目录:访问登录页的有些用户将浏览目录,并查看目录中不同的物品。
购物:浏览目录的有些用户会将一个或多个物品放入购物车。其中有些用户还会从其购物车删除物品。
结帐:在购物车中放入物品的有些用户将购买这些物品。
用例百分比组合
标识了用例之后,接下来需要了解每个用例的频率。在电子商务示例中,您可能已经了解到:
100% 的电子商务网站用户将访问登录页。
其中,约 80-85% 将浏览目录。
25% 将在购物车中添加或删除物品。
2-3% 将结帐,购买其购物车中的物品。
必须在测试中表示对应的用例混合。
通过使用IBM® Rational® Performance Tester之类的负载测试工具,测试团队将获取所标识的用例,并构建用于测试每个用例的测试脚本。请记住,测试用例的有效性取决于作为其基础的用例。例如,由于您知道有些购物者将从其购物车删除物品,因此需要一个用例来测试在购物车中添加和删除物品的重要功能以及其对应用程序的影响。
负载测试和压力测试