logo SmartBear SoapUI Pro 系列教程 我也要发布文档

测试优化工具SoapUI Pro最佳实践:优化内存使用


SoapUI Pro拥有许多其他web服务测试工具所不具备的高级技术和功能。对于REST、SOAP以及其他流行的API和物联网协议,SoapUI Pro提供了业界最全面的功能测试功能。通过易用的图形界面和企业级功能,SoapUI Pro允许你快速创建和执行自动功能测试。在单一环境下,SoapUI Pro提供了完整的测试覆盖,支持所有的标准协议和技术。

点击下载SoapUI Pro正式版

ReadyAPI是API测试工具的集成套件,其中包括:SoapUI Pro (功能测试)、LoadUI Pro (性能测试)、ServiceV Pro (服务虚拟化)等产品。


ReadyAPI可能会占用大量内存。它取决于其设置和使用方式。如果运行大型功能测试或负载测试,则可能会遇到内存不足的情况。本文说明如何避免内存问题。

注意:从2.2版开始,ReadyAPI包含一个内置的系统性能监视器。

本文主要从这三个方面描述:

  • 测试用例内存使用情况
  • 调整内存设置
  • 禁用测试记录
测试用例内存使用情况

如果您的内存不足,很可能会运行大型测试用例,以发送数千个请求。默认情况下,ReadyAPI自动保存请求和响应,因此您可以双击它们以查看测试案例日志中的相应条目。当然,无论您分配了多少内存,随着时间的推移,都会填满内存。幸运的是,有一些方法可以丢弃不需要的旧结果。

修改测试用例选项

可以从测试用例工具栏访问测试用例选项:

测试优化工具SoapUI Pro最佳实践:优化内存使用

TestCase选项对话框中有两个设置会影响内存使用:

测试优化工具SoapUI Pro最佳实践:优化内存使用

  • 丢弃成功的结果——选择此选项可丢弃任何成功的测试步骤结果的内容。在这种情况下,您将无法通过双击测试用例日志中的相应结果来查看它。
  • 最大结果数——指定ReadyAPI在内存中保留多少测试步骤结果,无论其状态如何。如果指定0,ReadyAPI将所有测试步骤的结果保存在内存中,直到测试运行结束。

注意:如果指定0为“最大结果”值,则虚拟用户模拟结束时,负载测试将丢弃结果。为了将测试结果保存在内存中,请指定一个非常高的值。

如果ReadyAPI在日志中可见,则将丢弃的测试步骤结果保存在内存中。请参阅下面的内容,了解如何修改日志选项,以使测试用例日志不会保留结果。

修改测试案例日志选项

如果将测试结果显示在测试日志中,则ReadyAPI会将测试结果保留在内存中。您可以使用测试用例日志选项来自定义日志中可见的结果。

注意:如果从命令行运行测试,则没有日志,因此无需修改测试案例日志选项。

单击 > 结果日志选项

测试优化工具SoapUI Pro最佳实践:优化内存使用

这将打开“日志选项”对话框。

测试优化工具SoapUI Pro最佳实践:优化内存使用

这些选项控制日志中可见的内容。从日志中删除结果并不一定意味着它们已从内存中删除。请参阅上文以了解如何防止ReadyAPI将测试结果保存在内存中。

调整内存设置

如果测试消耗大量内存,则很可能应该对其进行优化。但是,如果您的测试包含大量请求、附件等,则必须增加ReadyAPI可以分配的最大内存大小。

要指定该值,您应该修改ReadyAPI传递给Java虚拟机的-Xmx参数。根据您的操作系统,其他正在运行的应用程序等的设置选择一个值。我们建议您分配大约一半的可用内存。例如,如果您的计算机上有16 Gb RAM,请指定8192 MB。默认情况下,ReadyAPI使用4 Gb RAM。

注意:如果您使用的是32位操作系统,则不能分配超过1.5 Gb。

根据运行ReadyAPI的方式,通过编辑.vmoptions文件或.bat \ .sh文件来修改设置。

更改永久代池的大小

如果发生PermGen错误(例如,当您使用大量的Groovy脚本时),则可能需要增加Permanent Generation池的大小。为此,请将-XX:MaxPermSize参数传递给Java虚拟机。

根据您运行ReadyAPI的方式,通过编辑一个.vmoptions或多个.bat\.sh文件来修改设置。

禁用测试记录

如果已经设置了测试并且不再需要测试历史记录,则可以禁用它以释放一些内存。

打开“测试历史记录首选项”对话框,然后选择“禁用测试历史记录”选项。完成此操作后,您将必须重新启动ReadyAPI。

本文内容就是这样了,SoapUI Pro最佳实践教程还在继续更新中,欢迎大家继续关注我们了解后续内容~您可以下载SoapUI Pro试用版免费评估~


想要购买SoapUI Pro正版授权,或了解更多产品信息请点击【咨询在线客服】