2.8.4 确定性能测试类型
我倾向于在性能测试中采用以下格式的架构,不过理想的执行顺序可能需要根据您自己的需求进行调整。
每个事务的基准测试
在任何一次负载测试开始之前,我想为每个事务都建立一套性能数据基准,这说明您可能会从代表任何操作的事务中获得最好的性能。您应该运行这类测试一段时间或者若干次循环,在同一时间内,不应该有任何其他应用程序的操作在运行,否则测试结果会有误差。
每个事务的负载测试
确定每个事务需要的最大并发用户数或吞吐量;然后针对每个事务运行一个单独的测试,直到达到您设定的极限。这将提供一个良好的迹象,指示在每个事务基础上是否有任何与并发相关的问题。根据并发用户的数量,您可能想要使用连续逐步增长或降低负载生成策略。我倾向于使用逐步递增的做法,因为这可以对在一定程度的并发数或吞吐量情况下可能出现的问题进行精确的分析。
单个事务的隔离测试
如果出现问题,则启动隔离测试,一直到问题解决。
混合事务负载测试
一旦您在隔离的状况下对每个事务进行了测试,下一步通常就是将所有事务组合到一起进行负载测试。这种测试是为了发现硬件能力或可能的冲突,比如数据库锁等资源的竞争。同样地,您还是要使用逐步递增或递减的负载生成策略。
混合事务隔离测试
与单事务性能测试一样,您发现的任何问题可能需要运行隔离测试以确认诊断结果和解决方案。
混合事务渗透测试
在一段时间内重复单事务与/或混合事务的性能测试。这种测试可能发现一些只有在进行了一定次数的应用程序操作时才会出现的问题。
混合事务压力测试
在一段时间内重复单事务与/或混合事务的性能测试,但减少暂停时间和步进时间,创建比在负载测试中更大的吞吐量。这可以让您查明应用程序容量的上限,并且确定在突然的业务高峰期系统的响应如何。
非性能方面的测试
最后,执行一些和负载、压力不太相关的测试。这可能包括测试不同方式的负载均衡,或者可能是通过停掉应用程序的一个或多个服务来测试系统的容错行为。