首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >测试自动化方法

测试自动化方法
EN

Stack Overflow用户
提问于 2017-08-16 11:15:49
回答 3查看 92关注 0票数 0

我正在为下面的场景寻找一种自动化的测试方法。

代码语言:javascript
运行
复制
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个这样的作业。

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

EN

回答 3

Stack Overflow用户

发布于 2017-08-16 13:47:18

  1. 如果您可以控制应用程序开发,请让应用程序发送自动化可以监听的事件,并在应用程序完成工作后继续进行验证。
  2. 如果您无法控制应用程序开发,则您的方法似乎是唯一的方法。但为了使其更短,您可以使自动化并行运行(多任务),这样您就不必等待长时间的作业完成才能启动其余作业。
票数 1
EN

Stack Overflow用户

发布于 2019-11-22 14:44:54

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

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

否则

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

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

票数 1
EN

Stack Overflow用户

发布于 2017-09-15 21:17:23

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

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

一种

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

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

注意事项:

链接测试并在它们之间共享状态不被认为是最佳实践之一。但总有一些可以接受的例外。因此,要注意您可以重用的内容,以便将其提供给子集的下一个特定测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45704558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档