为什么 Robo 测试会这么快被标记为通过?

Why Robo tests gets marked as passed so quickly?

TL;DR

该应用程序有大量的流程,但有时运行速度超过 2 分钟...


有什么方法可以保持它 运行 直到 timeout period(例如 1 小时)几乎耗尽?附上用于快速终止的屏幕截图,例如

尽管该应用程序非常大,流量很大,有时运行会在 2 分钟、5 分钟后通过,但是决定 运行 机器人测试现在应该以通过的结果终止的标准是什么?知道是什么让记录的图表决定去这个节点吗? n.b。我以为是终端节点

很可能它总是或多或少地保持相同的持续时间......而唯一的区别可能是测试在队列中的位置(你不是唯一的用户,这就是为什么它看起来好像持续时间会有所不同)。而 TerminatedActivity-33 仅确认被测 Activity 已成功终止......这是故事的“结局”。 出于效率的考虑,测试会尽快终止——只有卡住才能达到超时值。

队列也可能 运行 并行可能是另一个可能的原因;而那时,即使实时持续时间确实会发生变化,处理时间(CPU 份额)仍然大致相同。免责声明:我不知道它在内部是如何工作的,只是试图应用一些常识。

Why Robo tests get marked as passed so quickly?

事实证明,由于 b.e 的变化。响应,应用程序旅程发生变化。如果有 3 个断开连接的组件(如 gif 中所示),则应用程序可以在类似于这 3 个组件的 3 个流中的任何一个中启动。这意味着旅程有多长

Is there any way to keep it running until the timeout period (e.g. 1hr) is almost consumed

如解释的那样指导机器人测试 here 是一种很有前途的方法,它可以通过遵循一些使图表变大的操作序列来让旅程变大

What is the criteria which decides that the running robo test should terminate now with a passed result?

Robo 测试只是在应用程序上应用 flood fill(如 gif 中所示)。其中 graph nodes 由屏幕表示,例如入职屏幕和 edges 由操作表示,例如点击下一步按钮