Automation OpenTest使测试进入睡眠状态

Automation OpenTest使测试进入睡眠状态,automation,automated-tests,opentest,Automation,Automated Tests,Opentest,在一些复杂的测试中,有必要将测试执行推迟一段时间。也许我们需要等上几小时或几天。。不阻塞Actor的资源将非常有可能在服务器级别暂停执行。 这是计划好的还是可能已经以某种方式实现的?一旦测试会话开始,将获取(保留)执行会话中所有测试所需的所有测试参与者。参与者只有在会话完成时(成功或失败)才会被释放,因此它们可以被其他测试会话重用。一个特定的测试参与者在测试中调用JavaScript API可能会被“延迟”一段时间,您可能已经知道这一点。然而,对于暂停OpenTest服务器将如何工作,我无法给出

在一些复杂的测试中,有必要将测试执行推迟一段时间。也许我们需要等上几小时或几天。。不阻塞Actor的资源将非常有可能在服务器级别暂停执行。
这是计划好的还是可能已经以某种方式实现的?

一旦测试会话开始,将获取(保留)执行会话中所有测试所需的所有测试参与者。参与者只有在会话完成时(成功或失败)才会被释放,因此它们可以被其他测试会话重用。一个特定的测试参与者在测试中调用JavaScript API可能会被“延迟”一段时间,您可能已经知道这一点。然而,对于暂停OpenTest服务器将如何工作,我无法给出一个合理的逻辑。我知道您希望能够重用那些被阻止的测试参与者,但我认为这不是一个好主意,因为它们可能(而且很可能)为暂停时正在运行的测试存储一些状态。更好的方法是在您的CI服务器(或启动测试会话的任何进程)中使用一些逻辑,并在启动会话之前执行任何验证,以查看您是否拥有所需的资源(如果可能)。如果您描述一个特定的用例,我会尽力提供更多帮助

编辑:解决您描述的用例的正确方法是找到一种方法来确定正在执行订单处理以触发按需执行的上游系统,而不必等待一天来执行测试(可能要求开发人员实现一个您可以调用的简单API)。如果这不是一个选项,并且您必须等待,解决这一问题的正确方法是有足够的测试参与者来处理您希望并行执行的测试数量。测试参与者消耗大约150到200MB的内存,因此这将是限制您可以在一台机器上同时运行的参与者数量的唯一因素。未来,OpenTest将能够在同一个过程中剥离多个参与者,因此这将不再是问题


一旦测试参与者开始执行测试,让它执行任何其他工作都是不安全的,因为测试通常必须存储某些状态(例如,您创建一个变量来存储刚刚下订单的订单号)。如果同一参与者同时执行两个测试,这些测试可能会覆盖彼此的状态,您会遇到很难解决的问题。

我将使用一些示例我将使用一个示例来清楚地说明何时可以使用此功能。TestName:通过隔夜/每日计划处理下单。假设我们有两个片段,其中两个参与者是WEB和API。第一个参与者下订单,第二个参与者使用api检查状态,间隔为10分钟(每10分钟检查一次状态),最长执行时间为25小时。我想:1在完成段1时发布WebActor(这样它就可以用于其他测试);2每10分钟使用API actor(如果可用)检查一次状态,直到达到分段的超时。现在在这种情况下,两个actor都坐在座位上,并且在大多数时间都不做任何事情。我希望能够获得分段级别的actor。如果pregress中有更多的片段,那么可以使用与此相关的演员可用优先级(fifo、场景或其他),这也是另一个限制。如果我错了,请纠正我,但在OpenTest的POC期间,我无法在一个测试会话中使用多个类型的参与者。来自一个测试会话的测试,即使在参与者不可用的情况下也不会并行执行。