国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      安卓界面自動化測試方法、裝置及系統(tǒng)的制作方法_3

      文檔序號:8502117閱讀:來源:國知局
      序源代碼就可實現(xiàn)自動化測試,而且不需要對應(yīng)用進行重簽名,還可同時測試多個應(yīng)用或多個進程。并且支持所有的安卓系統(tǒng),支持使用控件標識定位,支持操作Web頁面,由于是在計算機上編寫測試用例,因此還可以進行多終端的協(xié)同測試。
      [0077]下面采用一個具體的實施例,對圖1和圖2所示方法實施例的技術(shù)方案進行詳細說明。
      [0078]圖3為本發(fā)明安卓界面自動化測試方法實施例三中測試樁注入過程的流程圖,如圖3所示,過程包括:
      [0079]S301、根據(jù)測試端發(fā)送的測試指令中包含的被測應(yīng)用的代碼查找代碼對應(yīng)的被測應(yīng)用的進程標識。
      [0080]S302、將被測應(yīng)用的進程標識對應(yīng)的被測進程附加到目標進程,具體為調(diào)用Ptrace函數(shù)將被測進程附加到目標進程。
      [0081]S303、分別獲取mmap函數(shù)、dlopen函數(shù)和dlsym函數(shù)在目標進程中的地址。
      [0082]S304、在目標進程中調(diào)用dlopen函數(shù)加載測試樁加載器(libexloader.so)。
      [0083]S305、在目標進程中調(diào)用dlsym函數(shù)獲取libexloader.so模塊中目標函數(shù)(1adDex函數(shù))的地址。
      [0084]S306、在目標進程中調(diào)用1adDex函數(shù)。
      [0085]其中,S306具體為:
      [0086]S306a、獲取 JNIEnv 指針。
      [0087]S306b、調(diào)用 ClassLoader.getSystemClassLoader 獲取 ClassLoader 類實例。
      [0088]S306c、創(chuàng)建DexClassLoader類實例,加載測試樁類。
      [0089]S306d、調(diào)用 DexClassLoader.findClass 獲取測試樁類。
      [0090]S306e、調(diào)用測試樁類的入口函數(shù)。
      [0091]S307、創(chuàng)建Socket服務(wù)端線程,監(jiān)聽測試端發(fā)送的連接。
      [0092]S308、調(diào)用Ptrace函數(shù)恢復被測進程運行。
      [0093]上述過程完成后,即實現(xiàn)了測試樁的動態(tài)注入,注入完成時,測試樁已經(jīng)在被測進程中創(chuàng)建了 Socket服務(wù)端,用于監(jiān)聽測試端發(fā)送的連接。Socket服務(wù)端監(jiān)聽到來自測試端的測試程序的連接后,與測試端建立連接,建立連接后測試程序會發(fā)送一系列的操作指令給第一服務(wù)端,第一服務(wù)端接收測試程序發(fā)送的操作指令并執(zhí)行操作指令,返回執(zhí)行結(jié)果給測試程序。操作指令包括:獲取控件樹,或,獲取控件文本,或,點擊按鈕等操作。Socket服務(wù)端監(jiān)聽到來自測試端的測試程序的連接后,與測試端建立連接,建立連接后測試程序會發(fā)送一系列的操作指令給第一服務(wù)端,第一服務(wù)端接收測試程序發(fā)送的操作指令并執(zhí)行操作指令,返回執(zhí)行結(jié)果給測試程序。操作指令包括:獲取控件樹,或,獲取控件文本,或,點擊按鈕等操作。
      [0094]圖4為本發(fā)明服務(wù)端實施例一的結(jié)構(gòu)示意圖,服務(wù)端運行在安卓設(shè)備上,如圖4所示,本實施例的服務(wù)端可以包括:查找模塊11、處理模塊12、獲取模塊13和創(chuàng)建模塊14,其中,查找模塊11用于根據(jù)測試端發(fā)送的測試指令中包含的被測應(yīng)用的代碼查找代碼對應(yīng)的被測應(yīng)用的進程標識。處理模塊12用于將被測應(yīng)用的進程標識對應(yīng)的被測進程附加到目標進程。獲取模塊13用于分別獲取用于分配內(nèi)存的函數(shù)在目標進程中的第一地址、用于加載動態(tài)鏈接模塊的函數(shù)在目標進程中的第二地址和用于獲取測試樁加載器模塊中目標函數(shù)的地址的函數(shù)在目標進程中的第三地址。創(chuàng)建模塊14用于在目標進程中通過依次調(diào)用用于加載動態(tài)鏈接模塊的函數(shù)、用于獲取測試樁加載器模塊中目標函數(shù)的地址的函數(shù)和目標函數(shù),在被測進程中創(chuàng)建第一服務(wù)端,以使測試端通過第一服務(wù)端對被測進程進行測試。
      [0095]進一步地,服務(wù)端還包括:接收模塊,該接收模塊用于在查找模塊根據(jù)測試端發(fā)送的測試指令中包含的被測應(yīng)用的代碼查找代碼對應(yīng)的被測應(yīng)用的進程標識之前,接收測試端發(fā)送的測試信令。
      [0096]進一步地,處理模塊12還用于:在目標進程中通過依次調(diào)用用于加載動態(tài)鏈接模塊的函數(shù)、用于獲取測試樁加載器模塊中目標函數(shù)的地址的函數(shù)和目標函數(shù),在被測進程中創(chuàng)建第一服務(wù)端之后,監(jiān)聽來自測試端的測試程序的連接。
      [0097]處理模塊12還用于:監(jiān)聽到來自測試端的測試程序的連接后,與測試端建立連接。接收模塊還用于接收測試程序發(fā)送的操作指令。
      [0098]處理模塊12還用于執(zhí)行操作指令。
      [0099]服務(wù)端還包括:發(fā)送模塊,該發(fā)送模塊用于返回執(zhí)行結(jié)果給測試程序。
      [0100]其中,操作指令包括:獲取控件樹,或,獲取控件文本,或,點擊按鈕。
      [0101]本實施例的服務(wù)端,可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理類似,此處不再贅述。
      [0102]本實施例提供的服務(wù)端,通過查找模塊根據(jù)被測應(yīng)用的代碼查找代碼對應(yīng)的被測應(yīng)用的進程標識后,處理模塊將被測進程附加到目標進程,接著獲取模塊分別獲取mmap函數(shù)、dlopen函數(shù)和dlsym函數(shù)在目標進程中的地址,創(chuàng)建模塊在目標進程中通過依次調(diào)用mmap函數(shù)、dlopen函數(shù)和dlsym函數(shù),完成測試樁的動態(tài)注入,倉Il建了第一服務(wù)端,使得測試端通過該第一服務(wù)端對被測進程進行測試。從而在測試過程中無需獲取被測應(yīng)用的程序源代碼就可實現(xiàn)自動化測試,而且不需要對應(yīng)用進行重簽名,還可同時測試多個應(yīng)用或多個進程。并且支持所有的安卓系統(tǒng),支持使用控件標識定位,支持操作Web頁面,由于是在計算機上編寫測試用例,因此還可以進行多終端的協(xié)同測試。
      [0103]圖5為本發(fā)明測試端實施例一的結(jié)構(gòu)示意圖,測試端運行在計算機上,如圖5所示,本實施例的測試端可以包括:發(fā)送模塊21和處理模塊22,其中,發(fā)送模塊21用于向服務(wù)端發(fā)送測試指令,測試指令包含被測應(yīng)用的代碼,以使服務(wù)端接收到測試指令后根據(jù)代碼查找代碼對應(yīng)的被測應(yīng)用的進程標識,在被測應(yīng)用的進程標識對應(yīng)的被測進程中創(chuàng)建第一服務(wù)端。處理模塊22用于通過第一服務(wù)端對被測進程進行測試。
      [0104]進一步地,發(fā)送模塊21還用于:在處理模塊通過第一服務(wù)端對被測進程進行測試之前,向服務(wù)端發(fā)送測試程序的連接,以使服務(wù)端監(jiān)聽到連接后與測試端建立連接。
      [0105]進一步地,發(fā)送模塊還用于:向服務(wù)端發(fā)送操作指令;
      [0106]測試端還包括:接收模塊,該接收模塊用于接收服務(wù)端返回的執(zhí)行結(jié)果。其中,操作指令包括:獲取控件樹,或,獲取控件文本,或,點擊按鈕。
      [0107]本實施例的裝置,可以用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理類似,此處不再贅述。
      [0108]本實施例提供的測試端,通過發(fā)送模塊向服務(wù)端發(fā)送測試指令,用于服務(wù)端根據(jù)被測應(yīng)用的代碼查找代碼對應(yīng)的被測應(yīng)用的進程標識后,將被測進程附加到目標進程,接著分別獲取_ap函數(shù)、dlopen函數(shù)和dlsym函數(shù)在目標進程中的地址,在目標進程中通過依次調(diào)用mmap函數(shù)、dlopen函數(shù)和dlsym函數(shù),完成測試樁的動態(tài)注入,倉Il建了第一服務(wù)端,進而處理模塊通過該第一服務(wù)端對被測進程進行測試。從而在測試過程中無需獲取被測應(yīng)用的程序源代碼就可實現(xiàn)自動化測試,而且不需要對應(yīng)用進行重簽名,還可同時測試多個應(yīng)用或多個進程。并且支持所有的安卓系統(tǒng),支持使用控件標識定位,支持操作Web頁面,由于是
      當前第3頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1