我正在为以下场景寻找测试自动化方法。

Scenario: 
Step 1: Login to my application and schedule an import job
Step 2: Ensure the job is successfully submitted
Step 3: Now above job takes 10-15 minutes to complete

我能够自动执行上述所有步骤,但我明确等待 10 分钟(编写了一个 For 循环,每 10 秒检查一次作业的状态并迭代 60 次)。

我的观点:

我不想等 10 分钟,因为我必须像这样安排 50-100 个工作。

关于如何等待或如何通过自动化验证此类场景,是否有更好的方法?

#1楼 票数:1

  1. 如果您对应用程序开发有控制权,请让应用程序发送一个事件,自动化可以侦听该事件,并在应用程序完成工作后继续进行验证。
  2. 如果您无法控制应用程序开发,那么您的方法似乎是唯一的方法。 但是为了让它更短,您可以让自动化并行运行(多任务),这样您就不必等待很长的工作完成才能开始其余的工作。

#2楼 票数:1

首先,我要求您更清楚地说明您所说的job takes 10-15 minutes to complete含义。 那是计算时间吗? 或者是否有一个池作业每 x 秒更新一次状态并且延迟是因为这个? 您的问题的解决方案取决于此。

如果您有权访问轮询作业队列并且可以验证存在于那里的作业,则执行此操作。

否则

如果延迟仅仅是因为计算时间,那么我建议调整您的方法,将这些分成两个测试 第一个测试只会登录并提交作业,并将提交的作业 ID 存储在某处(假设是一个文本文件)。 第二个测试将在测试 1 的 15-20 分钟后运行,并且将简单地验证是否创建了所有作业。

第二种方法适用于由于某些限制而无论如何都无法避免 10-15 分钟延迟的情况。 因此,如果您无法避免这种延迟,最好的方法是将测试分成两个测试以减少相互之间的依赖。

#3楼 票数:0

在我看来,已经建议采用并行测试执行的解决方案是最合适的方法。 但是,为了让您的生活更轻松,您可以使用一些优化。 用于黑盒测试

在此处输入图片说明

对于内部处理(以及所需的时间),您几乎无能为力。 但是,您实际上可以通过 Memoization 增强并行方法,因为它是

缓存先前计算结果并在再次需要相同计算时返回缓存结果的技术

因此,您可以分析工作流程,规划 100 个测试套件,并仅并行运行测试的子集,这些子集无法共享已计算的结果或已完成的工作(例如,通过网络下载文件)。 其他人应该很快,因为他们将重用此输出。 这里棘手的部分是那些可重用的输出片段和需要它们的测试的组合。

注意事项:

链接测试并在它们之间共享状态不被视为最佳实践之一。 但总有可接受的例外。 所以要小心你可以重用的东西,以便将它提供给你的子集的下一个特定测试。

  ask by nurav translate from so

未解决问题?本站智能推荐:

1回复

减少Android中的UI自动化测试时间

我使用UI Automator编写了UI自动化测试。 这是测试步骤。 打开我的应用 打开设置 单击高级功能(仅限三星) 启用手指传感器手势 打开最近的应用 打开我的应用 整个自动化测试需要8到7秒。 是否有任何解决方法可以将此测试时间
1回复

质量检查自动化流程

现在,我正在为一家小公司进行自动化测试。 我已经做了大约半年了。 但是有一个问题:我绝对没有创建这样一个系统的经验。 我从木棍和鬣蜥创建了一个工作系统,甚至实施了它,但是我觉得很多事情都可以改进。 我正在使用TestRail和Java。 目前图片如下: 在TestRa
1回复

HTML注释系统,以帮助Web UI测试自动化元素/属性引用?

是否有一个用于注释HTML的系统,用于识别对Web用户界面测试自动化至关重要的元素/属性(由Selenium,HTMLUnit,Watir,Sahi等)? 系统可能是标准或库。 例如,注释可以实现为HTML数据属性,其仅引用属性名称,XPath表达式或CSS选择器,其需要存在并且为了测试自动
1回复

有哪些测试自动化框架设计策略可以更快地执行自动化测试?

我正在尝试优化当前的自动化框架以加快执行速度。 我当前的框架是通过为定位器字符串保留单独的xml文件而设计的,Web应用程序每个页面的页面对象都从这些xml文件中获取其定位器信息。 但是经过一番谷歌搜索之后,一些自动化开发人员说将这些字符串保留在页面对象类中会更有效。 我需要更详细的信
2回复

功能自动化测试值得吗?

您认为我们为自动化功能测试付出的努力真的有影响吗? 大多数时候,在许多基于服务的公司中,它都被视为辅助选择,并且在交付时,他们依靠手动测试。
1回复

Page对象打开浏览器的标准做法在自动化测试中是什么?

在使用selenium的页面对象模型中,我们应该打开和关闭浏览器1)每个测试用例2)每个测试套装3)整个测试套装端到端(所有测试用例的1个浏览器实例)? 第三个选项的问题是1)我无法并行运行测试用例。 2)如果在某些测试用例中发生阻塞问题,则可能会妨碍其他测试用例。 第一个和第二个
1回复

你会选择 Selenium 而不是 Testbench (Vaadin)? 在开始新项目之前规划自动化工具

我即将开始一个新的 Web 项目,我的一名团队成员建议使用 Vaadin 解决方案而不是 Selenium。 如果您必须选择一个 Web 应用程序自动化工具,您会在 Selenium 和 Testbench 之间选择什么? 如果可能,请通过比较来论证您的选择。 除了某些组件受许可限制 [🚩Fr
1回复

Espresso Android自动化测试-如何访问由我的应用程序打开的其他应用程序的视图?

我的应用程序中有一个按钮,单击该按钮可在chrome上打开保管箱登录页面。 我试图访问打开的Chrome窗口中的视图以填充字段并继续,但是由于该活动不属于我的应用程序,因此视图不在层次结构树中。 有人知道如何使用espresso访问外部应用程序视图吗? 我已经尝试过使用“ UI-a