我们有一个分布式测试环境,robotremoteserver 启动了许多其他应用程序,并将它们作为测试的一部分使用。我尝试运行的测试要求我在一个套件中运行超过一百万个测试用例。这里的问题是,当 pybo
t 开始运行时,它会阻塞 8 GB 的 RAM 并导致性能下降。过了一会儿,它就卡住了。
为了克服这个问题,我计划创建单独的套件,每个套件少于 100 个。但在这种情况下,我无法使用从其他套件启动的其他远程服务器的关键字。我可以使用它的唯一方法是断开与远程服务器的连接并在每个套件中重新连接它 - 这会破坏测试的目的。
我不确定是否有人遇到过这种情况。如果有人能想出解决这个问题的办法,我将不胜感激。
附加信息
有助于解决此问题的另一件事:是否可以从另一个套件启动的库(带有状态)中调用关键字?
我可以在使用 RIDE 时使用 get library instance 吗?我在一个套件中导入库,然后尝试在其他套件中获取库实例。这可能吗?
我不断收到以下错误:
AttributeError: Remote instance has no attribute 'replace'
在套件 1 中,这就是我正在做的事情:
Import Library Remote ${verifix_xmlrpc_url} WITH NAME Verifix
${lib}= BuiltIn.Get Library Instance Verifix
Set Global Variable ${lib}
在套件 2 中:
${lib}.remove messages ${VenueNSDQ}
最佳答案
我不知道有关 Python 的任何细节,但您可能想尝试将每个测试用例作为一个单独的进程进行旋转。这将允许您在每个进程完成时从每个进程中恢复内存,并且可以让您在一台机器上安全地运行数百万个测试用例。
通常,当程序需要操作系统提供更多内存时,它会占用它,但在退出之前无法将其归还。这可能是您的流程失败的原因。
您可以启动然后终止的快速进程将缓解此内存问题....然后从那里通过 rsh 在另一台机器上完全运行这些测试用例中的每一个是一个相当短的步骤。
希望对你有所帮助。
关于python - 运行包含超过一百万个测试用例的测试套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16595345/