繁体   English   中英

在硒自动化中处理批处理作业的最佳方法

[英]Best way to handle batch jobs in selenium automation

我正在实现一个基于Cucumber - JVM的Selenium自动化框架。

我测试的webapps中的一个工作流程需要等待很长时间,以便每3分钟经常安排的批处理作业运行,并创建用户可以使用的登录ID,以继续工作流程。

我目前正在处理它,我首先执行初始部分测试用例并继续其他测试用例,以便框架有足够的时间等待创建用户ID。

在运行所有其他测试用例之后,运行测试用例的第二部分。 但是,在运行测试用例的第二部分之前,我查询数据库并验证是否创建了id。 如果创建了id,则执行继续,否则表示未创建用户标识失败。

虽然现在可以使用,但我确信有更好的方法可以处理这种情况。 有没有人遇到过这种情况? 你是怎么处理的呢 ?

我想我理解你的问题。 您实际上希望有这样的执行序列:

Test 1
Test 2
Test 3

但是如果你“正确地”实现Test 1 ,它将花费很长时间,因为它必须等待被测系统做几个长时间运行的东西,对吧?

因此,您将Test 1拆分为部件并运行如下测试:

Test 1 (Part A)
Test 2
Test 3
Test 1 (Part B)

这样您的被测系统就有时间完成Test 1 (Part A)触发的任务。

正如您之前所承认的那样,这被认为是不好的测试设计,因为您的测试用例不再相互独立。 (一般来说,测试用例不应该依赖另一个测试用例预先产生的副作用。)

我对该场景的建议是将Test 1原子状态,即避免将其分成两部分,但仍然并行运行其余的测试。 当然,这是否可行取决于您的环境以及您如何触发测试,但这将使您拥有更好的测试结构以及快速执行的好处。 所以你最终得到这个:

Test 1 starts    Test 2 starts
Test 1 waits     Test 2 finishes
Test 1 waits     Test 3 starts
Test 1 runs      Test 3 finishes
Test 1 finishes  

我不确定start-> wait-> wait-> run方法。 它可能适用于少数测试,并且可能不适用于数百个测试,因为等待时间会更长。 即使我们以并行模式运行它也会花费一些时间。 如果我们等待更多这样的时间在同一流程中获取组件怎么办? 我想,更多的组件等待时间。 如果等待更长时间,您可能还需要考虑系统超时...

我觉得第一种方法应该没问题。 无需为测试用例创建多个文件。 您可以以运行第一部分并结束它的方式在同一文件中构建它。 并且,在确保批处理之后,您可以从测试用例的第二部分(文件)开始。 第一部分可以并行模式运行,等待时间后第2部分也可以并行执行。

暂无
暂无

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

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