var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2009年11月23日

    Windows界面自动化等待就绪

    分类:

    Windows界面自动化中的同步机制Ajax网页自动化测试中分别给出了若干Api和网页同步的策略。这次从线程状态角度提供了一种新的方向。

     

    Win32_PerfRawData_PerfProc_Thread ThreadState中的字段ThreadState8个状态,ThreadWaitReason至少有19个理由并仅当线程等待时有效,此时对应的ThreadState值为5,一般来讲此时后台线程ThreadWaitReason值应该为613。于是,等待机制生成如下:

    1.    同用户界面元素交互之前,判断其所属线程的ThreadState5

    2.    再查看该线程的ThreadWaitReason是否为613

    如果都不满足,则sleep一小段时间,再次验证直至超时。

     

    如果通过注册表获取线程状态,可参考文Getting HKEY_PERFORMANCE_DATA

     

    如果目标界面依赖进程中的其它线程,则需要枚举进程中的每个线程。

    分享到: