如果您要花费时间和精力进行性能测试,则很可能会在意从中获得的结果。您将依靠这些结果,因此您将不得不依靠该工具。因此,必须确保该工具是您可以信任的工具。据说开源工具不是很值得信赖。我和我的同事花费了大量时间来分析和对比从不同工具获得的结果。如今,在进行一些挖掘之后,我们最信任的两个负载测试是JMeter和Gatling。为了比较不同条件下的结果,我们甚至对两者进行了相同的测试。在那些测试中,我们还比较了不同的指标,以查看它们是否正确相关。例如,服务器接收的字节数和工具报告中显示的字节数或连接数等。
对此进行思考的另一种方式是,开源解决方案比任何商用软件都能看到更多的代码审查。优秀的软件工程师会审查开放源代码,以便开始做出贡献,了解其工作方式并进行自己的扩展。在这样做的同时,他们也要认真思考,并以不同的质量和安全性改进为该项目做出贡献。他们之所以这样做,是因为他们知道该怎么做,并且因为他们在乎(因为他们也会使用该软件)。所涉及的过程以及我所看到的产品和结果使我考虑到,即使与传统测试解决方案相比,我一直在使用的开源性能测试工具也非常成熟。
15年前,当我刚开始进行性能测试时,我记得我的内部规则是:如果协议是开放的,我们可以使用JMeter,如果它是专有协议,那么我们应该使用Rational Performance Tester或HP Loadrunner。如今,JMeter拥有许多支持不同协议的插件,这些插件不仅是开源的,而且还包含一些商业的。
除此之外,增加了很多功能非常好,例如漂亮的HTML报告,更好的记录(具有更多的自动化功能)和可追溯性,这使得调试脚本变得更加容易。
如果您缺少关键功能,JMeter允许您在脚本中包含Groovy代码,当您无法使用其本机功能解决某些问题时,这非常有用。有了这种可能性,您实际上可以执行脚本中需要执行的任何操作。这也适用于Gatling,其中脚本是Scala解决方案的一部分,因此您可以针对需要在脚本中执行的任何特定操作包括自己的库。
同样,这取决于您正在考虑的工具,但是通常还有其他工具可以为最流行的开源测试工具提供集成或扩展。例如,在测试自动化中,您可以看到Selenium是标准的,可以与任何东西集成。它还具有对大多数流行编程语言的绑定以及与任何CI / CD引擎的连接。
对于性能测试工具,我敢说JMeter是标准。诸如BlazeMeter之类的平台使您能够在云中扩展性能脚本,并始终基于JMeter文件在多个位置并与许多并发用户一起运行。另外,借助Taurus,将JMeter脚本与Jenkins或Automic CDD之类的任何CI / CD平台集成起来非常容易,并在将代码推送到存储库后立即获得测试结果。
还值得注意的是,可以根据您自己的特定需求量身定制开源工具。这可能需要一些努力,特别是如果您不熟悉该解决方案。就我而言,我的团队长期以来一直在为JMeter开发扩展。有一个学习曲线,但是例如现在可以更轻松地开发对新协议的支持。为此,您应该检查可用资源以及该工具的代码存储库。查看文档的内容,确认是否有一节阐明如何自定义和扩展它。
我听说开源工具总是很难使用。由程序员为程序员制作的。在这种情况下,是的,在大多数情况下,性能测试将由程序员和性能工程师来驱动。以我的经验,这些工具的可用性和用户体验很棒。重要的是要提到甚至有多个品种。如果您喜欢代码,则可以使用Gatling或Taurus;如果您喜欢图形用户界面,则可以使用JMeter,其中脚本由带有不同元素的树表示。
我认为区分好可用性和“漂亮”很重要。重要的是它的易用性,用户友好性以及使用效率。想象一下,您收到一个错误,并且不知道如何解决它。在这种情况下,您将需要大量时间才能达到准备性能测试的目标。这将显示不良的可用性。这些开源工具(例如JMeter和Gatling)不是这种情况,因为有不同的元素可以帮助您完全了解要发送到服务器的内容,所接收的内容,并且可以轻松尝试其他方法。
明智地选择开源性能测试工具非常重要,请注意该工具背后的采用水平和社区支持。在决定使用哪种工具之前,先做些功课,查看其Github存储库,可用的文档,课程和教程,为他们提供专业服务的公司等。此外,如果需要,请查看Linkedin以查看是否有在该工具上有经验的人聘请。这样,您可以计划所需的支持。
例如,就性能测试工具而言,JMeter拥有最大的社区。此外,许多开源工具背后都有一家公司提供支持,例如Gatling,后者以开源工具作为其商业版本的基础。
只需在Web上进行一次搜索即可了解您期望从开源工具获得多少支持。对于JMeter,如果您需要帮助或支持,您会发现很多论坛,小组和渠道来提问。您还可以检查问题的解答时间。
如果您已经在使用商业测试工具,则迁移到开源替代方案似乎非常昂贵。为了在不损失任何迁移的情况下从一个解决方案过渡到另一个解决方案,您需要进行大量投资,然后在此过程中开始节省成本(这可能是一开始的最初动机之一)。
从我在测试世界中所看到的,您可以在线找到多种语言的开放源代码工具培训,这无休止。只需在YouTube上搜索“性能测试依据”并添加您最喜欢的开源性能测试工具的名称,您就会得到很多结果。此外,您会在Udemy,Coursera等平台上找到许多其他高质量的选择。
在经历了所有这些神话之后,我还要指出一个主要的神话,那就是开源只是降低成本的一种廉价方法。事实是,有很多不错的选择可供选择,开源绝不意味着质量低于商业。通过关注开源工具背后的社区以及其他公司对其的采用,您可以决定哪些工具具有竞争力,并且可以最好地解决您所面临的挑战。