• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    自動化測試框架之控制界面的關鍵

    發布: 2008-5-08 10:54 | 作者: 網絡轉載 | 來源: 網絡轉載 | 查看: 134次 | 進入軟件測試論壇討論

    領測軟件測試網

      要做一體化自動化測試框架,那么,最重要的是要解決什么呢?相信了解windows編程的人員,都能發現這個問題所在。在窗體中,寫下代碼,控制每一個控件的輸入是非常簡單的事。但是,一旦顯示了一個模態窗體,原有的流程代碼會不再往下執行,而是停留在新窗體中,等待消息相應。這就是我們代碼控制界面的關鍵問題。

      前面講到要做一體化自動化測試框架,那么,最重要的是要解決什么呢?

      相信了解windows編程的人員,都能發現這個問題所在。在窗體中,寫下代碼,控制每一個控件的輸入是非常簡單的事。但是,一旦顯示了一個模態窗體,原有的流程代碼會不再往下執行,而是停留在新窗體中,等待消息相應。這就是我們代碼控制界面的關鍵問題。

      這是什么道理呢?

      我使用的是delphi系統,所以我可能使用vcl框架來解釋這個問題。但是其他語言同樣適用。

      在windows程序中,winmain是入口。而winmain的處理,就是一個典型的死循環,先從消息隊列中取出消息,然后再給各窗體派發消息。

      為了方便理解,我們將這個模型簡化,就是一個死循環a。中間在處理任意的代碼。

      現在,由于調用了某一段處理,進入了另外一個死循環b。當代碼從a函數進入了b,那么當然,a循環下面的代碼當然只能停留下來,直到b循環結束。

      而在windows界面中,模態窗體就是一個消息死循環。當windows彈出一個模態窗體的時候,其消息隊列獨立處理,不再走整個應用程序的消息循環。

      現在比較明白了,不能方便控制界面的原因在于windows應用程序并不是流程化的,而是消息驅動的。

      明白了這個道理,就有可能找到突破口。我想到了鉤子。在delphi中使用鉤子,推薦使用fastcode。

      既然程序從a循環進入到b循環,我不能繼續執行a循環的代碼,那么,可不可以在進入b循環后,繼續執行a的代碼呢?

      這應該是可行的。關鍵在于我必須做到b循環中,能夠調用到我的代碼。

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 關鍵 界面 框架 自動化

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>