在过去的几十年里,用于性能测试的自动化工具发生了巨大的改变,从胖客户端到Web架构,以及随着移动互联的激进的发展,越来越的应用以移动互联的方式来提供服务。
相应的性能测试相关的自动化工具所需提供的功能也越来越面向Web和移动开发,而不再是支持传统的二层架构中常用的技术了。
尤其是,这是年开源社区的大力贡献,在开源领域我们有了更多的优秀的开源性能测试工具,例如:
这里就列出我们大家用到或容易接触到的工具,其他工具就不罗列了。
似乎我们看着这些工具都不错,但我们在实践中还是会有顾虑的:如果你的一些性能测试场景涉及非Web场景,那么可选的工具就会大大减少。
尽管经过这么多年,各类工具已经大有发展,但对于非web类场景的开源工具依旧像魔咒一样困扰着很多测试人员。
从性能测试执行和分析来看,非web场景的性能测试与web场景没多大不同,关键的难点在于其通信协议不同,报文抓取、分析工具可能不一样,以及对于测试场景脚本的开发。 对于有些应用了加密、压缩等技术的,在性能测试时,会进一步提升测试脚本的开发难度。
当然了,对于web应用的性能测试有时也是会有一些挑战的,例如流媒体的压测,使用了客户端证书等安全机制的,针对这些应用了特定技术的场景,大家就会发现现有的性能测试工具就无法满足需求了。
所以在进行性能测试之前,我们应该充分:考虑工具的实际功能和压测需求。
尽管在性能测试实施之际,有着各种挑战,但测试工具还是我们的必需选择---因为不使用工具,我们将无法开展有效的性能测试。
所以我们要开展有效的性能测试,就必须使用自动化技术。
下面我们就市面上常见的商业工具和开源工具进行一个大的总结,看看一般通用的性能测试工具有哪些共同点:
通过上述回顾性能测试的发展及工具的共性,我们该如何有效的选择我们的性能测试工具呢?
可能有人就会讲了,这有什么好选择的,不是jmeter、locust、就是loadrunner这些常见的工具罗。
但本文的目的不是在于告诉你直接从现在市面上大家共知的工具,而是通过文章把我如何去选择一个合适的工具的经验告诉大家。
在很多时候,由于前期对工具、技术、团队、资源等评估不够,很多性能测试项目在编写脚本、性能分析阶段陷入问题的泥潭。下面是笔者如何选择工具的一些建议。
基于上述几个方面的意见,我们要根据现有团队的情况,来决定是引入合适的工具、还是解决方案还是基于开源工具进行二次开发又或是外包。
不管是哪种方式,我们要充分考虑投入产出比。现在开始有些第三方是性能测试saas服务商,甚至还提供基于其saas服务提供完整的测试实施和过程咨询服务。
具体采用哪种方式,需要大家根据投入成本、团队现状、未来团队发展等等因素来统筹考虑。