Amo*_*kar 54 python automated-tests robotframework
我们有一个分布式测试环境,其中robotremoteserver启动了许多其他应用程序,并在测试过程中使用它们.我试图运行的测试要求我在一个套件中运行超过一百万个测试用例.这里的问题是,当pybot开始运行时,它会阻塞8 GB的RAM并导致性能下降.过了一会儿它冻结了.
为了解决这个问题,我计划创建单独的套件,每套套件少于100个.但在这种情况下,我无法使用从其他套件启动的其他远程服务器中的关键字.我可以使用它的唯一方法是断开与远程服务器的连接并在每个套件中重新连接 - 这将破坏测试的目的.
我不确定是否有人遇到过这种情况.如果有人能想到这个问题的解决方案,我将不胜感激.
另一个有助于解决此问题的事情是:是否可以从另一个套件启动的库(带状态)调用关键字?
使用RIDE时可以使用get library instance吗?我在一个套件中导入库,然后尝试在其他套件中获取库实例.这可能吗?
我一直收到以下错误:
AttributeError:远程实例没有属性'replace'
在套件1中,这就是我正在做的事情:
Import Library Remote ${verifix_xmlrpc_url} WITH NAME Verifix
${lib}= BuiltIn.Get Library Instance Verifix
Set Global Variable ${lib}
Run Code Online (Sandbox Code Playgroud)
在套房2中:
${lib}.remove messages ${VenueNSDQ}
Run Code Online (Sandbox Code Playgroud)
好的。首先,我不会用Python编程,而且我也不知道你使用的是什么类型的计算机,或者计算机有多少内存,或者关于你的计算机情况的任何其他信息。因此,这只是从编写系统程序和跨多台计算机工作收集的一般信息。
话虽如此:如果您要运行巨大的数据集或大量程序,您将必须划分您想要执行的操作,以便它适合您正在使用的系统。这是第一部分。
第二部分是,如果您想跨程序与其他程序或系统进行通信,那么您需要设置某种类型的通用内存使用情况。我知道 PHP 内置了这样的东西,所以我必须假设 Python 也有这样的东西。您设置公共内存区域,然后在各个程序之间来回发送信息。通常使用某种形式的令牌来标识每个程序和/或系统。通过这种方式,您可以进行设置,以便一旦一组测试完成,它就可以告诉下一组测试开始,从而不会接管或使您的系统陷入困境。
如果你真的很好 - 你还可以创建某种控制器程序来启动测试,监视它直到测试结束/退出,然后开始下一个测试。(因此,您可以使用主/从方式来执行此操作,就像客户端/服务器关系一样,而不是菊花链方式。)
如果您使用的是 Windows 盒子/操作系统,我建议您查看 AutoIt。AutoIt 可以轻松地处理观察程序运行并在旧任务完成后启动新任务。它还允许您完全控制您的系统以及远程系统,并且开发它是为了帮助自动化任务,例如您正在尝试执行的任务。我发现(通过实验)AutoIt 也可以与 Unix/Linux 机器一起使用,例如 Mac 等。尽管您只能接收发送过来的命令,而不能访问 Windows 功能。
如果您更精通 Python,您可以使用它来完成上述操作 - 那么您的能力就会更强。尽管你问这个问题已经过去两年了,但我希望这对你的努力有所帮助。:-)
| 归档时间: |
|
| 查看次数: |
2498 次 |
| 最近记录: |