51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

12
返回列表 发新帖
楼主: gily19821116
打印 上一主题 下一主题

[求助] 如何用QTP判断程序运行时候挂起?怎么处理

[复制链接]

该用户从未签到

21#
 楼主| 发表于 2009-6-10 12:11:28 | 只看该作者

回复 19# 的帖子

我是初学者~~~qtp现在还停留在描述性编程摸索阶段~~~上面的想法挺高深,暂时还是能力不及哦。慢慢来吧,只想用一个最简单实用的。
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2009-6-10 13:12:03 | 只看该作者
原帖由 shanxi 于 2009-6-10 12:04 发表


很怀疑在程序已经无响应的情况下,应用程序还能接收取窗口标题的消息。

实际上这种情况下,timeout后没正确匹配,截图,选择继续下一个case或者中断整个case的执行就行了。

至少Rft是可以的,因为RFT获取窗口标题时,与这个窗口的状态是无关的.哪派该窗口已经无响应了也没关系
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2009-6-10 13:33:05 | 只看该作者
原帖由 dreamever 于 2009-6-10 13:12 发表

至少Rft是可以的,因为RFT获取窗口标题时,与这个窗口的状态是无关的.哪派该窗口已经无响应了也没关系


我用ProcessExplorer制造了一起跟hang相近的suspend事件,用我的spy工具还能得到窗口标题,我先前的猜测有些不正确,不过有时hang时窗口标题可能会变化。

网上还有一种方式,用undocumented api,风险也比较大

BOOL IsHungAppWindow(
    HWND hwnd)
*参数hwnd为欲判断窗体句柄
*返回<推测> True表示挂起 Flase表示未挂起
{
    return (NtUserQueryWindow(hwnd, WindowIsHung) != NULL);
}
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2009-6-10 15:52:12 | 只看该作者
原帖由 shanxi 于 2009-6-10 13:33 发表


我用ProcessExplorer制造了一起跟hang相近的suspend事件,用我的spy工具还能得到窗口标题,我先前的猜测有些不正确,不过有时hang时窗口标题可能会变化。

网上还有一种方式,用undocumented api,风险也比较大 ...

你强~!!
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2009-6-11 14:26:03 | 只看该作者

回复 23# 的帖子

可以用sendmessagetimeout,随便发个支持的消息,判断如果是超时返回,就挂起了。
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2009-6-11 14:44:26 | 只看该作者
原帖由 intothestorm 于 2009-6-10 10:01 发表
晕,dreamever你把问题搞得太复杂了
本身容易crash/hang的被测程序就不适合做自动化,自动化适合在程序稳定的后期大量的回归测试阶段做。
楼主如果你偏要虎山行 ,建议你研究一下场景恢复。

严重同意。
对于这样容易失去响应的程序,还是先让开发修改吧。我们做自动化测试的目标是减少重复测试的工作量,而不是给自己增加工作量。
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2009-6-11 15:19:00 | 只看该作者
原帖由 itisok 于 2009-6-11 14:26 发表
可以用sendmessagetimeout,随便发个支持的消息,判断如果是超时返回,就挂起了。


App挂起后App自己是无法处理消息的,但我并不需要用这种方式判断,所做的仅仅是针对该问题的分析。
20楼我给出了普适的方法。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 20:55 , Processed in 0.071738 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表