6.2  搭建测试环境
  在编写脚本的同时,执行场景之前需要完成测试环境的搭建工作,这里包括硬件和软件环境的搭建。根据性能测试计划中的测试环境规划,完成对整个测试环境的搭建(请协调开发人员及系统管理员等相关角色帮忙完成环境搭建的工作)。
  6.2.1  测试平台评估
   由于性能测试的特殊性,整个测试环境需要在严格的独立监控下管理,避免不受控的情况出现导致性能测试数据的偏差(类似于药品制造中的无菌室概念),而另 一方面,在实际应用中很难得到真实的系统环境来完成性能测试。很多时候不可能在研发阶段就在公司搭建出和用户上线时完全相同的测试平台,那么得出来的数据 就与真实数据有一定的差距,解决这个问题一般有以下两种解决方式(预估方式均有误差)。
  1.通过建模的方式实现低端硬件对高端硬件的模拟
  通过配置测试来计算不同配置下的硬件性能和系统处理能力的关系,从而推导出满足系统性能的真实配置情况,这种模拟需要精确的建模,模型的采样点越多,那么得到的结果越精确,从而将在低端配置下的性能指标通过该模型转化为高端配置下的最终预估性能指标。
   例如,搭建一个低端环境,首先对这个环境的CPU或内存进行单独的性能基准测试。例如,使用EVEREST工具计算一下这个CPU的得分,再通过性能负 载工具得到当前系统的TPS及响应时间。然后超频或者更换CPU,再次计算相关分数,逐渐明确各种硬件资源对负载结果的影响关系,最后可以得到表6.9。
表6.9  硬件性能建模表
  通过这个表,可以简单认为每900基准分数约等于1个TPS,而如果系统的最终需求是能够满足20个TPS的话,也就是说硬件配置的CPU至少需要达到18000分,反过来就可以知道服务器应该需要使用什么样的CPU。
  2.通过群集的方式计算
   对于较大的系统来说,单台服务器的处理能力是有限的,通常都会采用群集的方式来进行负载均衡,完成对海量请求的处理。虽然无法获得整个群集的测试环境, 但是可以对群集上的一个节点进行性能测试,得出该节点的处理能力,再计算每增加一个节点的性能损失,同样也可以通过建模的方式得到大型负载均衡情况下的预 估性能指标。
  例如,首先在单台服务器上获得具体的性能指标,每台服务器能够承受2000人在线、平均TPS 为80、响应时间为2秒。接着,添加负载均衡策略,再次测试负载策略下的数据损耗。得出数据后添加1台负载均衡服务器,测试在两台服务器下每台服务器的性 能指标,依此类推,可以得到如表6.10所示的数据。
表6.10  服务器负载性能建模表
  随着负载均衡服务器的添加,平均每台服务器的处理能力会逐渐稳定,从而了解在什么样的情况下需要多少台负载均衡服务器。
   受到资源限制,在这里搭建一个简易的测试环境,由一台配置较高的PC作为服务器,而另外一台笔记本作为负载生成来模拟用户行为,完成性能测试。除了搭建 硬件环境外,还需要对软件环境进行搭建,其中最重要的是环境的备份。在进行性能测试时,为了保证测试结果数据的客观公正,在每次测试前,都需要保证相同的 软件环境,所以对测试环境的备份工作是非常重要的。建议使用Ghost对测试环境进行镜像,每次测试后还原被测环境重启系统,避免由于磁盘碎片和前一次测 试的缓存影响测试结果。本次测试由于使用了VMWare作为虚拟环境,通过其自带的Snapshot快照功能实现测试环境的备份还原。
  对于整个测试环境的搭建,建议生成专门的文档进行管理,并进行配置管理,确保对测试环境做到基线控制。