将系统极限状态和大数据量结合起来,验证测试系统已经累积较大数据量时,一些实时产生较大数据量的模块能否稳定地工作成为很多软件测试从业者的一大日常工作难题。今天我们就来聊一聊海量并发性能测试的解决之道。

1)强行分散流量

就是将瞬时涌入页面的100万流量分散到5个页面上去,每个页面只需要承担20万的流量达到分流的目的。比如12306抢票要输入验证码,就是强行分散流量血淋淋的例子。再比如一些演唱会购票需要答题,都是一样的道理。

2)减少实时计算,减少图片等资源的实时获取;

a)减少实时计算,是指用户在进入某个页面的时候,直接从后台获取已经处理好或者直接录入的数据,不要进行二次计算,每一次计算会消耗系统资源,少个人系统感知还不太明显,几百万人就会严重影响系统的流畅程度和稳定性。 举个例子,以前12306春运抢票就是用户在购票的时候系统进行了实时计算,所以基本没到春运期间不够流畅甚至不可用。

b)减少图片等资源的实时获取,是指用户在进入某个页面的时候,最好不要从后台实时加载大的文件资源,一个高清图片可能要3-5M,一个小视频也得需要几兆,这些都会消耗系统的带宽资源以及性能,导致用户加载不出来数据。尤其是做信息流产品的,最好是能够做到提前加载,在活动开始前就加载到本地来,活动开始之后直接调用本地的资源。

以上都是进行海量并发测试的小窍门,如果在活动开始之前想进行海量并发的具体测试报告,可以借助国内专业商业化性能测试工具PerformanceRunner,PR可以实现快速部署分布式施压集群,瞬间达到10w级的海量并发虚拟用户,完成对各种操作系统、网络、数据库、中间件的监控和测试整个系统的承受能力。

PR给出的分析图可确定系统性能并提供有关事务及Vuser的信息;报表内容涉及虚拟用户,事务,web资源图,被测系统性能监控图,可通过这些报表详细了解到被测系统的性能全貌,同时可以实现错误捕获和定位,清晰直观,帮助快速了解测试结果,查找性能问题。