首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待应用程序开始响应-如何在qtp中对其进行编码?

等待应用程序开始响应-如何在qtp中对其进行编码?
EN

Stack Overflow用户
提问于 2010-06-11 19:37:55
回答 7查看 8.5K关注 0票数 2

我们有一个应用程序,其中一些文件正在加载,并且应用程序在文件加载期间停止响应一段时间。在测试自动化期间,我们有这样的场景,文件加载是自动化的,但qtp必须等待,直到应用程序再次开始响应。如何对此进行编码?是否有类似“等待”的属性?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-06-11 23:25:15

等待是否有类似“

”的属性?

如果是这样,那么它是特定于应用程序的,所以要回答这个问题,就需要从技术上考虑应用程序的GUI设计。

一般来说,考虑人类用户是如何计算出应用程序再次“响应”的。通常,会有一些视觉提示,比如出现一个按钮,或者某个控件不再灰显。使用同步点对该状态进行同步。

如果所有操作都失败(例如,当应用程序的处理结束时,您无法识别出现、消失或更改其属性的控件),请坚持使用位图检查点,该检查点将查找与人类所解释的相同的视觉线索。

通常,在应用程序准备好再次接受输入之前,同步点或视觉提示来得有点早。然后,如果您的应用程序在预期下一个用户输入之前刷新了键盘缓冲区(这是一个普遍存在的糟糕设计的例子),那么您将很难正确地进行同步。击键和鼠标单击将丢失。在这种情况下,您应该a)通过在下一个输入之前插入一个延迟(等待函数调用)来解决这个问题,b)确定应用程序永远不会刷新其输入队列,c)强制要求只有在应用程序真正准备好接受输入之后才会执行视觉提示。当然,b)和c)需要开发人员方面的工作,并且可能在组织上难以实现。

如果问题发生在不同的,甚至所有的上下文中,请将其传达给测试管理,并让他们让开发人员为您的测试机器人实现自定义的“就绪”信号。然后,您可以从QTP查询该信号。它可以是一个信号量、一个Windows字符串属性(Set/GetPropEx API调用)、一个文件存在(baaad idea..),或者是一些从应用程序到测试机器人传递“就绪”状态的非同步的非同步方式。

所有这一切听起来都很疯狂,但我已经做了以上所有的事情,通常都取得了不错的结果。

票数 2
EN

Stack Overflow用户

发布于 2010-06-11 21:23:22

在一个正在启用的应用程序对象上插入同步点。同步点允许您指定超时时间。

票数 2
EN

Stack Overflow用户

发布于 2010-06-12 04:21:19

如果你想要一个快速的修复,你可以使用一个通用的等待(秒)。例如,如果您知道应用程序将在不到一分钟的时间内准备好使用。但是,如果它根据数据量的不同而不同,您可以尝试在应用程序上使用控件的“Exist”属性,该控件在处理完所有数据后被加载。即。

代码语言:javascript
复制
while not loaded
wait(1)
loaded = Window.Control.Exist
Wend
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3022353

复制
相关文章

相似问题

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