后端的负载/性能测试工具或方法

软件测试 Python 负载测试
2022-01-29 17:46:20

我在一个基本上都是后端的团队工作。功能和单元测试是通过 python 或 perl 脚本或者有时是 bash 脚本来实现的。但是如果我们需要加载或性能测试我们的应用程序,我们目前有一些脚本可以产生线性负载,我们编写一些脚本可以打印一些内容到控制台,例如,一个脚本会生成 1000 封排队等待某个守护进程的电子邮件和一个几个脚本会将进程快照(ps)、内存使用情况等输出到控制台,我们会对其进行监控。显然,我们可以为每个负载测试编写一个特定的多线程脚本,以及一些可以监控结果的脚本,但这将是一种非常具体的方法,并且需要我们为每个测试都这样做。基本上是使用可以针对特定用途定制的通用工具的原因。

我正在寻找但目前无法找到的是一个后端工具,它可以帮助我们生成多线程负载,并可用于收集控制台输出并随着时间的推移将其聚合以生成表格或图形结果进行分析。有很多工具可用于 Web 测试,但我正在为后端寻找类似的工具。

我们使用 Perl 和 Python,所以这是一个关键部分。我们主要在 linux 或 mac 上工作。同样优选的是开源解决方案。

2个回答

鉴于您是初级 Linux 并且更喜欢 OSS,您是否尝试过诸如 soap/loadUI 或 JMeter 之类的解决方案。我知道soapUI 的某些功能需要专业许可证,但是对于大多数公司来说这是合理的。我认为非常适合您的功能之一是能够从命令行调用特定的测试/套件。为此,您实际上不需要修改工具背后的代码,而是设置脚本并调用它们。

我还偶然发现了 SO 的这个答案,其中列出了一些我听说过但从未尝试过的 python 解决方案。

如果您需要监控服务器的统计信息,是否有您正在使用的特定操作系统?您是否已经有任何可能在生产服务器上运行的工具来执行此操作,并且您也可以在非生产服务器上使用这些工具?

Visual Studio 的负载测试可以满足您的要求。它需要 Visual Studio Ultimate 的许可证。即使它面向 Web 测试,它实际上也可以执行任何单元测试。

它的工作方式是创建一个 LoadTest,LoadTest 可以执行任意数量的场景,每个场景都可以执行任意数量的测试。在场景级别,您可以指定要使用多少线程来执行测试以及您希望如何执行测试(随机选择它们,按顺序运行它们,指定百分比 - 即 Test1 运行 5% 的时间,Test2 运行95%)。

如果您需要生成大量负载(比从单个客户端生成的负载更多),您可以设置一个控制器和多个代理以将测试分散到多个客户端。

运行结束后,它还会生成漂亮的图形、图表和摘要,并允许您导出到 Excel,如果您愿意,可以在其中创建额外的数据透视表和图表。如果服务器是 Windows 服务器,您还可以非常轻松地在它们上监控性能计数器。