我想通过快速连续调用数千次来对 Web 服务方法进行压力测试。该方法有一个字符串参数,我将在每次调用时有所不同。
我打算编写一个 Powershell 脚本来循环并多次调用此方法。
有一个更好的方法吗?
我想通过快速连续调用数千次来对 Web 服务方法进行压力测试。该方法有一个字符串参数,我将在每次调用时有所不同。
我打算编写一个 Powershell 脚本来循环并多次调用此方法。
有一个更好的方法吗?
如果您一个接一个地运行呼叫 - 它不会对您有太大帮助,因为它不会向您展示服务在许多同时连接的重负载下的行为方式。
使用一些多线程解决方案(我不知道powershell是否有这个)。
这里列出了一些开源测试工具。只需将您的 Web 服务设置为也接受 GET 请求,而不仅仅是 SOAP(默认),这样您就可以形成 url。
对于这些情况,我会使用JMeter。您需要先试用它,但它非常灵活,它会在不同的线程中运行请求,它会以图形方式显示结果,它还允许您编写作业脚本。
我还建议不要在与服务器相同的机器上启动它,如果可能的话,在不同的机器上启动两个或多个实例来模拟负载。
就个人而言,我会使用类似openSTA的东西。
这允许记录与网站的会话,然后通过相对简单的脚本语言进行回放。
您还可以轻松地测试 Web 服务并编写自己的脚本。
它允许您以任何您想要的方式将脚本放在测试中,并配置迭代次数、每次迭代中的用户数、引入每个新用户的加速时间以及每次迭代之间的延迟。将来也可以安排测试。
它是开源和免费的。
它会生成许多报告,这些报告可以保存到电子表格中。然后,我们使用数据透视表轻松分析和绘制结果。
这真的取决于是否有其他要求。例如日志记录、历史记录等。
如果您只需要快速和肮脏,那么您很好。
如果您需要更健壮的东西,那么您可以考虑使用您选择的语言自定义构建测试工具,或者使用 Mercury、MS Team Tester、nUnit 等。
对于那些偶然发现并且不想使用已经提到的第 3 方选项的人。正如公认的答案所提到的,多线程解决方案是最好的,这可以在 PowerShell 中实现:
ForEach -Parallel ($item in $collection) { }
https://docs.microsoft.com/en-us/powershell/module/psworkflow/about/about_foreach-parallel
虽然线程数可以限制为 5:powershell 的并行 foreach 是否最多使用 5 个线程?