繁体   English   中英

测试自动化方法

[英]Test automation approach

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

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

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

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

否则

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

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

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

在此处输入图片说明

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

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

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

注意事项:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM