亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法

文檔序號(hào):6548545閱讀:196來源:國(guó)知局
一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法
【專利摘要】本發(fā)明的一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,包括以下步驟:S1:測(cè)試客戶端與被測(cè)設(shè)備端建立連接關(guān)系;S2:所述測(cè)試客戶端啟動(dòng)所述被測(cè)設(shè)備端的被測(cè)應(yīng)用程序;S3:所述測(cè)試客戶端在執(zhí)行過程中不斷地獲取所述被測(cè)設(shè)備端的所有界面上的所有控件元素的位置信息,并將獲取的所有所述控件元素存儲(chǔ)到相應(yīng)的控件元素隊(duì)列中;S4:逐個(gè)對(duì)所述控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述控件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列;S5:所述客戶端啟動(dòng)所述手機(jī)端的新被測(cè)應(yīng)用程序,跳轉(zhuǎn)到步驟S3。該測(cè)試方法不要求對(duì)被測(cè)應(yīng)用程序進(jìn)行預(yù)處理操作,可以對(duì)無法獲取apk文件的被測(cè)應(yīng)用程序進(jìn)行功能遍歷。
【專利說明】一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,屬于測(cè)試【技術(shù)領(lǐng)域】。

【背景技術(shù)】
[0002] 測(cè)試工具Instrumentation是安卓系統(tǒng)的核心測(cè)試框架,在這個(gè)核心測(cè)試框架 下,測(cè)試應(yīng)用程序可以精確控制被測(cè)應(yīng)用程序。Instrumentation核心測(cè)試框架通過將測(cè) 試應(yīng)用程序和主程序運(yùn)行在同一個(gè)進(jìn)程來實(shí)現(xiàn)對(duì)被測(cè)應(yīng)用程序的控制,例如,使用測(cè)試工 具Instrumentation,可以在主程序啟動(dòng)之前,倉(cāng)ij建模擬的系統(tǒng)對(duì)象,如Context ;控制應(yīng)用 程序的多個(gè)生命周期;發(fā)送UI事件給應(yīng)用程序;在執(zhí)行期間檢查程序狀態(tài)。
[0003] 使用測(cè)試工具instrumentation對(duì)被測(cè)應(yīng)用程序進(jìn)行測(cè)試時(shí)要求測(cè)試應(yīng)用程序 和被測(cè)應(yīng)用程序的簽名保持一致,由于應(yīng)用開發(fā)商通常不提供自己應(yīng)用程序的簽名文件等 信息,所以一般的方法是將被測(cè)應(yīng)用程序的apk文件(安裝文件)進(jìn)行解壓縮,將apk文件 中的簽名文件替換成與測(cè)試應(yīng)用程序相同的簽名文件后重新打包,經(jīng)過這樣預(yù)處理之后就 可以通過測(cè)試應(yīng)用程序來對(duì)被測(cè)應(yīng)用程序進(jìn)行控制。
[0004] 現(xiàn)有的功能遍歷技術(shù)是基于安卓系統(tǒng)提供的測(cè)試工具Instrumentation進(jìn)行簽 名測(cè)試來實(shí)現(xiàn),主要步驟是在獲取到被測(cè)應(yīng)用程序的apk文件(Android Package,安卓安裝 包)之后,使用上述的步驟對(duì)被測(cè)應(yīng)用程序進(jìn)行預(yù)處理,將被測(cè)應(yīng)用程序的簽名文件替換 成與測(cè)試客戶端的測(cè)試應(yīng)用程序相同的簽名文件并重新打包,使測(cè)試應(yīng)用程序獲取對(duì)被測(cè) 應(yīng)用程序進(jìn)行操作的權(quán)限。
[0005] 因此,如果使用測(cè)試工具instrumentation基于簽名測(cè)試的對(duì)被測(cè)應(yīng)用程序進(jìn)行 功能遍歷的測(cè)試,需要首先對(duì)被測(cè)應(yīng)用程序進(jìn)行預(yù)處理獲取到被測(cè)應(yīng)用程序的apk文件, 對(duì)apk文件進(jìn)行上述替換簽名文件的預(yù)處理后才能進(jìn)行測(cè)試。這種測(cè)試方法能夠直接通 過安卓系統(tǒng)提供的API接口(Application Programming Interface,應(yīng)用程序編程接口) 直接獲取界面的信息并進(jìn)行功能遍歷,省去了對(duì)原始界面信息進(jìn)行分析的操作,但是,一方 面,該方法要求每次功能遍歷的測(cè)試需要獲取被測(cè)應(yīng)用程序的apk文件,只能測(cè)試能獲取 到apk文件的被測(cè)應(yīng)用程序,對(duì)于無法獲取apk文件的被測(cè)應(yīng)用程序,例如從PC端對(duì)手機(jī) 端執(zhí)行adb install命令將應(yīng)用程序安裝在手機(jī)中,通過這種方式安裝到手機(jī)中的應(yīng)用程 序不能在手機(jī)中獲得apk文件,則無法進(jìn)行功能遍歷測(cè)試。


【發(fā)明內(nèi)容】

[0006] 本發(fā)明所要解決的技術(shù)問題是現(xiàn)有的功能遍歷技術(shù)對(duì)于無法獲取apk文件的被 測(cè)應(yīng)用程序無法進(jìn)行功能遍歷測(cè)試的問題,從而提供一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的 測(cè)試方法。
[0007] 為解決上述技術(shù)問題,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的: 一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,包括以下步驟: S1 :測(cè)試客戶端與被測(cè)設(shè)備端建立連接關(guān)系; 52 :所述測(cè)試客戶端啟動(dòng)所述被測(cè)設(shè)備端的被測(cè)應(yīng)用程序; 53 :所述測(cè)試客戶端在執(zhí)行過程中不斷地獲取所述被測(cè)設(shè)備端的所有界面上的所有控 件元素的位置信息,并將獲取的所有所述控件元素存儲(chǔ)到相應(yīng)的控件元素隊(duì)列中; 54 :逐個(gè)對(duì)所述控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述控 件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列; 55 :所述客戶端啟動(dòng)所述手機(jī)端的新被測(cè)應(yīng)用程序,跳轉(zhuǎn)到步驟S3。
[0008] 所述的測(cè)試方法,所述步驟S3中,將所述被測(cè)設(shè)備端的每一個(gè)所述界面存儲(chǔ)到界 面隊(duì)列中,將每個(gè)所述界面中的所有控件元素存儲(chǔ)到每個(gè)所述界面對(duì)應(yīng)的界面控件元素隊(duì) 列中。
[0009] 所述的測(cè)試方法,所述步驟S4中,進(jìn)一步包括: 541 :查找所述界面隊(duì)列中位于隊(duì)首的界面; 542 :逐個(gè)對(duì)所述界面隊(duì)列中位于隊(duì)首的界面對(duì)應(yīng)的所述界面控件元素隊(duì)列的位于隊(duì) 首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述界面控件元素隊(duì)列中的所有所述控件元素都被 點(diǎn)擊出列,所述界面控件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列后,所述界面隊(duì)列 中位于隊(duì)首的所述界面出列; S43:所述客戶端結(jié)束掉前功能遍歷的操作路徑并關(guān)閉所述被測(cè)應(yīng)用程序進(jìn)程。
[0010] 所述的測(cè)試方法,還進(jìn)一步包括在遍歷被測(cè)應(yīng)用程序時(shí)輸出每一步操作結(jié)果的步 驟。
[0011] 所述的測(cè)試方法,被測(cè)設(shè)備端為安卓智能手機(jī)。
[0012] 所述的測(cè)試方法,所述步驟S1進(jìn)一步包括如下步驟: 511 :啟動(dòng)手機(jī)端的viewserver ; 512 :pc端與所述手機(jī)端的viewserver建立socket連接。
[0013] 所述的測(cè)試方法,所述步驟S3中, 531 :所述pc端通過所述socket連接向所述手機(jī)端的viewserver發(fā)送dump命令; 532 :所述手機(jī)端以類似json的格式將所述手機(jī)界面信息以字符流的形式發(fā)送給所述 pc端; S33:所述pc端對(duì)獲取的以字符流的形式存在的所述手機(jī)界面信息進(jìn)行解析,得到所 述手機(jī)端的所述手機(jī)界面信息,所述手機(jī)界面信息包括所述控件元素的位置信息。
[0014] 所述的測(cè)試方法,所述PC端使用monkey對(duì)所述當(dāng)前手機(jī)界面的所述控件元素進(jìn) 行觸發(fā)操作。
[0015] 本發(fā)明的上述技術(shù)方案相比現(xiàn)有技術(shù)具有以下優(yōu)點(diǎn): (1)本發(fā)明的一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,包括以下步驟:S1 :測(cè)試 客戶端與被測(cè)設(shè)備端建立連接關(guān)系;S2 :所述測(cè)試客戶端啟動(dòng)所述被測(cè)設(shè)備端的被測(cè)應(yīng)用 程序;S3 :所述測(cè)試客戶端在執(zhí)行過程中不斷地獲取所述被測(cè)設(shè)備端的所有界面上的所有 控件元素的位置信息,并將獲取的所有所述控件元素存儲(chǔ)到相應(yīng)的控件元素隊(duì)列中;S4 : 逐個(gè)對(duì)所述控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述控件元素隊(duì) 列中的所有所述控件元素都被點(diǎn)擊出列;S5 :所述客戶端啟動(dòng)所述手機(jī)端的新被測(cè)應(yīng)用程 序,跳轉(zhuǎn)到步驟S3。該測(cè)試方法不要求對(duì)被測(cè)應(yīng)用程序進(jìn)行預(yù)處理操作,可以對(duì)無法獲取 apk文件的被測(cè)應(yīng)用程序進(jìn)行功能遍歷;由于不用對(duì)被測(cè)應(yīng)用程序進(jìn)行任何預(yù)處理操作, 最大限度地保證了不會(huì)對(duì)被測(cè)應(yīng)用程序產(chǎn)生影響。
[0016] (2)本發(fā)明所述的對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,所述步驟S3中將所 述被測(cè)設(shè)備端的每一個(gè)所述界面存儲(chǔ)到界面隊(duì)列中,將每個(gè)所述界面中的所有控件元素存 儲(chǔ)到每個(gè)所述界面對(duì)應(yīng)的界面控件元素隊(duì)列中;每個(gè)界面中的所有控件元素構(gòu)成界面控件 元素隊(duì)列,對(duì)被測(cè)應(yīng)用程序采用分界面、分隊(duì)列的方法,對(duì)不需要點(diǎn)擊操作的控件元素不進(jìn) 行點(diǎn)擊操作,加快遍歷速度。
[0017] (3)本發(fā)明所述的對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,在所述被測(cè)應(yīng)用程 序進(jìn)行功能遍歷時(shí)輸出每一步遍歷操作,使測(cè)試人員可以通過查看輸出結(jié)果檢查對(duì)被測(cè)應(yīng) 用程序的所有遍歷操作并可以發(fā)現(xiàn)被測(cè)應(yīng)用程序的漏洞進(jìn)行后續(xù)處理。

【專利附圖】

【附圖說明】
[0018] 為了使本發(fā)明的內(nèi)容更容易被清楚的理解,下面結(jié)合附圖,對(duì)本發(fā)明作進(jìn)一步詳 細(xì)的說明,其中, 圖1是本發(fā)明所述一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法一個(gè)實(shí)施例的流程 圖; 圖2是本發(fā)明所述一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法的另一個(gè)實(shí)施例的 流程圖。

【具體實(shí)施方式】
[0019] 實(shí)施例1 : 本發(fā)明所述的一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,如圖1所示,其包括以 下步驟: 51 :測(cè)試客戶端與被測(cè)設(shè)備端建立連接關(guān)系; 52 :所述測(cè)試客戶端啟動(dòng)所述被測(cè)設(shè)備端的被測(cè)應(yīng)用程序; S3:所述測(cè)試客戶端在執(zhí)行過程中不斷地獲取所述被測(cè)設(shè)備端的所有界面上的所有控 件元素的位置信息,并將獲取的所有所述控件元素存儲(chǔ)到控件元素隊(duì)列中; S4:逐個(gè)對(duì)所述控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述控 件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列; S5 :所述客戶端啟動(dòng)所述手機(jī)端的新被測(cè)應(yīng)用程序,跳轉(zhuǎn)到步驟S3。
[0020] 本實(shí)施例中,將所有界面上的控件元素統(tǒng)一存儲(chǔ)在一個(gè)控件元素隊(duì)列中,對(duì)所述 控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊操作,位于隊(duì)首的所述控件元素在點(diǎn)擊操作 后出列,然后對(duì)下一個(gè)所述控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊操作,下一個(gè)位 于隊(duì)首的所述控件元素在點(diǎn)擊操作后出列,如此繼續(xù)點(diǎn)擊所述控件元素隊(duì)列中位于隊(duì)首的 控件元素,直到所述控件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列,完成對(duì)一個(gè)被測(cè) 應(yīng)用程序的功能遍歷。這種測(cè)試方法不要求對(duì)被測(cè)應(yīng)用程序進(jìn)行預(yù)處理操作,可以對(duì)無法 獲取apk文件的被測(cè)應(yīng)用程序進(jìn)行功能遍歷。
[0021] 作為其他實(shí)施方式,所述步驟S3中,將所述被測(cè)設(shè)備端的每一個(gè)所述界面存儲(chǔ)到 界面隊(duì)列中,將每個(gè)所述界面中的所有控件元素存儲(chǔ)到每個(gè)所述界面對(duì)應(yīng)的界面控件元素 隊(duì)列中;所述步驟S4中,進(jìn)一步包括 : 541 :查找所述界面隊(duì)列中位于隊(duì)首的界面; 542 :逐個(gè)對(duì)所述界面隊(duì)列中位于隊(duì)首的界面對(duì)應(yīng)的所述界面控件元素隊(duì)列的位于隊(duì) 首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述界面控件元素隊(duì)列中的所有所述控件元素都被 點(diǎn)擊出列,所述界面控件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列后,所述界面隊(duì)列 中位于隊(duì)首的所述界面出列; 543 :所述客戶端結(jié)束掉前功能遍歷的操作路徑并關(guān)閉所述被測(cè)應(yīng)用程序進(jìn)程。
[0022] 這種測(cè)試方法將每個(gè)界面存儲(chǔ)到所述界面隊(duì)列中,將每個(gè)所述界面中的所有控件 元素存儲(chǔ)到每個(gè)所述界面對(duì)應(yīng)的界面控件元素隊(duì)列中,對(duì)被測(cè)應(yīng)用程序分界面進(jìn)行控件點(diǎn) 擊:查找所述界面隊(duì)列中位于隊(duì)首的界面和所述界面隊(duì)列中位于隊(duì)首的界面對(duì)應(yīng)的所述界 面控件元素隊(duì)列,對(duì)所述界面隊(duì)列中位于隊(duì)首的界面對(duì)應(yīng)的所述界面控件元素隊(duì)列中的所 有控件元素逐個(gè)進(jìn)行點(diǎn)擊出列操作,所述界面隊(duì)列中位于隊(duì)首的界面對(duì)應(yīng)的所述界面控件 元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列后,所述界面隊(duì)列中位于隊(duì)首的所述界面出 列,對(duì)下一個(gè)位于隊(duì)首的所述界面對(duì)應(yīng)的所述界面控件元素隊(duì)列進(jìn)行上述操作,直至所述 界面隊(duì)列中的所有界面都出列,所述客戶端結(jié)束掉前功能遍歷的操作路徑并關(guān)閉所述被測(cè) 應(yīng)用程序進(jìn)程。
[0023] 在實(shí)際測(cè)試過程中,被測(cè)應(yīng)用程序會(huì)出現(xiàn)下述異常情況: (1)、查找所述界面隊(duì)列中位于隊(duì)首的界面a,界面a對(duì)應(yīng)的界面控件元素隊(duì)列中位于 隊(duì)首的控件元素點(diǎn)擊后出列,本應(yīng)該繼續(xù)點(diǎn)擊界面a對(duì)應(yīng)的界面控件元素隊(duì)列中下一個(gè)位 于隊(duì)首的控件元素,但所述被測(cè)應(yīng)用程序出現(xiàn)異常導(dǎo)致跳轉(zhuǎn)失敗,結(jié)果從界面a跳轉(zhuǎn)到界 面b,導(dǎo)致對(duì)界面b對(duì)應(yīng)的界面控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊操作。
[0024] (2)、在點(diǎn)擊所述控件元素時(shí)檢測(cè)到異常,這時(shí),會(huì)結(jié)束被測(cè)應(yīng)用進(jìn)程,啟動(dòng)下一個(gè) 被測(cè)應(yīng)用程序,對(duì)下一個(gè)被測(cè)應(yīng)用程序進(jìn)行功能遍歷。
[0025] 參見圖2所示,啟動(dòng)被測(cè)應(yīng)用程序,由于該應(yīng)用在功能遍歷過程中會(huì)由于異常退 出,所以先查看所述被測(cè)應(yīng)用程序是否為第一次進(jìn)入該被測(cè)應(yīng)用程序,如果是第一次進(jìn)入 該被測(cè)應(yīng)用程序,獲取當(dāng)前界面控件元素并將所述當(dāng)前界面控件元素的編號(hào)存儲(chǔ)到當(dāng)前界 面控件元素隊(duì)列中,從所述當(dāng)前界面控件元素隊(duì)列取出隊(duì)首元素,點(diǎn)擊隊(duì)首元素對(duì)應(yīng)的控 件元素,該隊(duì)首元素對(duì)應(yīng)的控件元素在點(diǎn)擊后出列,如果沒有異常,重新跳轉(zhuǎn)到當(dāng)前界面, 對(duì)下一個(gè)隊(duì)首元素對(duì)應(yīng)的控件元素進(jìn)行點(diǎn)擊;但跳轉(zhuǎn)后的界面會(huì)由于跳轉(zhuǎn)失敗導(dǎo)致跳轉(zhuǎn)不 到當(dāng)前界面,所以,判斷跳轉(zhuǎn)后的當(dāng)前界面是否訪問過,如果跳轉(zhuǎn)后的界面沒有訪問過,重 新獲取新的當(dāng)前界面控件元素并將新的所述當(dāng)前界面控件元素的編號(hào)存儲(chǔ)到新的當(dāng)前界 面控件元素隊(duì)列中,執(zhí)行上述操作。如果有異常,會(huì)結(jié)束被測(cè)應(yīng)用進(jìn)程,啟動(dòng)下一個(gè)被測(cè)應(yīng) 用程序,對(duì)下一個(gè)被測(cè)應(yīng)用程序進(jìn)行功能遍歷。
[0026] 如果進(jìn)入下一個(gè)被測(cè)應(yīng)用程序后,發(fā)現(xiàn)下一個(gè)被測(cè)應(yīng)用程序不是第一次進(jìn)入應(yīng) 用,尋找界面隊(duì)列的隊(duì)首元素,判斷隊(duì)首元素對(duì)應(yīng)的界面是否訪問過,如果該界面沒有訪問 過,獲取隊(duì)首元素對(duì)應(yīng)的界面的控件元素并將隊(duì)首元素對(duì)應(yīng)的界面的所有控件元素的編號(hào) 存儲(chǔ)到隊(duì)首元素對(duì)應(yīng)的界面的界面控件元素隊(duì)列中,執(zhí)行上述操作。
[0027] 本實(shí)施例中,被測(cè)設(shè)備端為安卓智能手機(jī),對(duì)所述安卓智能手機(jī)的應(yīng)用程序進(jìn)行 功能遍歷的測(cè)試方法,ViewServer是Android智能手機(jī)通過4939端口提供的服務(wù),測(cè)試 客戶端啟動(dòng)Android客戶端的viewserver,通過命令adb shell service call window對(duì)所 述Android客戶端的viewserver進(jìn)行開啟和關(guān)閉;在啟動(dòng)Android客戶端的ViewServer 服務(wù)之后,測(cè)試客戶端與所述Android客戶端的ViewServer建立socket連接;在建 立起 socket 連接之后,通過命令 adb shell am start-n breakan. test/breakan. test. TestActivityidong啟動(dòng)被測(cè)應(yīng)用程序,在測(cè)試客戶端通過所述socket (通常也稱作"套接 字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄)連接向Android客戶端發(fā)送dump命 令(將具備可讀格式的數(shù)據(jù)從一個(gè)儲(chǔ)存體復(fù)制到外部),Android客戶端會(huì)以類似json的 格式將當(dāng)前界面信息以字符流的形式返回給pc端,然后測(cè)試客戶端對(duì)獲取的界面信息進(jìn) 行解析,獲取要進(jìn)行操作的界面元素的位置信息,使用monkey (monkey是安卓平臺(tái)自動(dòng)化 測(cè)試的一種手段,通過monkey模擬的操作來對(duì)設(shè)備上的程序進(jìn)行壓力測(cè)試,檢測(cè)程序多久 的時(shí)間會(huì)發(fā)生異常)點(diǎn)擊界面控件元素隊(duì)列中位于隊(duì)首的控件元素的位置達(dá)到操作手機(jī) 的目的。在通過monkey點(diǎn)擊完界面上的一個(gè)控件元素之后,測(cè)試客戶端會(huì)通過SPFA算法再 次向viewserver請(qǐng)求當(dāng)前界面的信息,判斷是否到達(dá)了新界面后,獲取下一個(gè)要點(diǎn)擊的控 件元素的位置信息并通過monkey進(jìn)行點(diǎn)擊,如此反復(fù)操作直到遍歷到當(dāng)前界面的所有控 件元素都被點(diǎn)擊過,測(cè)試客戶端會(huì)結(jié)束掉當(dāng)前功能遍歷的操作路徑并結(jié)束被測(cè)應(yīng)用程序進(jìn) 程。然后測(cè)試客戶端會(huì)重新啟動(dòng)被測(cè)應(yīng)用并且沿著之前沒有操作過的遍歷路徑進(jìn)行遍歷, 直到測(cè)試客戶端發(fā)現(xiàn)被測(cè)應(yīng)用程序沒有需要被遍歷的路徑,結(jié)束本被測(cè)應(yīng)用程序的功能遍 歷。
[0028] 作為其他實(shí)施方式,測(cè)試客戶端可以通過其他算法再次向viewserver請(qǐng)求當(dāng)前 界面的信息,例如弗洛伊德算法。
[0029] 實(shí)施例2 : 在上述實(shí)施例1的基礎(chǔ)上,所述測(cè)試方法還進(jìn)一步包括在所述被測(cè)應(yīng)用程序進(jìn)行功能 遍歷時(shí)輸出每一步遍歷操作的步驟。 本實(shí)施例中,該測(cè)試方法會(huì)在遍歷被測(cè)應(yīng)用程序的同時(shí)對(duì)每一步遍歷操作進(jìn)行截圖并 在遍歷操作的所述控件元素上用方框標(biāo)識(shí),然后在遍歷操作結(jié)束生成的報(bào)告中用視頻短片 的形式播放該遍歷操作的所有截圖,使測(cè)試人員可以通過觀看視頻的形式檢查對(duì)應(yīng)用的所 有遍歷操作并發(fā)現(xiàn)被測(cè)應(yīng)用的漏洞,進(jìn)一步進(jìn)行后續(xù)處理。 顯然,上述實(shí)施例僅僅是為清楚地說明所作的舉例,而并非對(duì)實(shí)施方式的限定。對(duì)于 所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變 動(dòng)。這里無需也無法對(duì)所有的實(shí)施方式予以窮舉。而由此所引伸出的顯而易見的變化或變 動(dòng)仍處于本發(fā)明創(chuàng)造的保護(hù)范圍之中。
【權(quán)利要求】
1. 一種對(duì)被測(cè)應(yīng)用程序進(jìn)行功能遍歷的測(cè)試方法,其特征在于,包括以下步驟: 51 :測(cè)試客戶端與被測(cè)設(shè)備端建立連接關(guān)系; 52 :所述測(cè)試客戶端啟動(dòng)所述被測(cè)設(shè)備端的被測(cè)應(yīng)用程序; 53 :所述測(cè)試客戶端在執(zhí)行過程中不斷地獲取所述被測(cè)設(shè)備端的所有界面上的所有控 件元素的位置信息,并將獲取的所有所述控件元素存儲(chǔ)到相應(yīng)的控件元素隊(duì)列中; 54 :逐個(gè)對(duì)所述控件元素隊(duì)列中位于隊(duì)首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述控 件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列; 55 :所述客戶端啟動(dòng)所述手機(jī)端的新被測(cè)應(yīng)用程序,跳轉(zhuǎn)到步驟S3。
2. 根據(jù)權(quán)利要求1所述的測(cè)試方法,其特征在于,所述步驟S3中,將所述被測(cè)設(shè)備端的 每一個(gè)所述界面存儲(chǔ)到界面隊(duì)列中,將每個(gè)所述界面中的所有控件元素存儲(chǔ)到每個(gè)所述界 面對(duì)應(yīng)的界面控件元素隊(duì)列中。
3. 根據(jù)權(quán)利要求2所述的測(cè)試方法,其特征在于,所述步驟S4中,進(jìn)一步包括: 541 :查找所述界面隊(duì)列中位于隊(duì)首的界面; 542 :逐個(gè)對(duì)所述界面隊(duì)列中位于隊(duì)首的界面對(duì)應(yīng)的所述界面控件元素隊(duì)列的位于隊(duì) 首的控件元素進(jìn)行點(diǎn)擊出列操作,直到所述界面控件元素隊(duì)列中的所有所述控件元素都被 點(diǎn)擊出列,所述界面控件元素隊(duì)列中的所有所述控件元素都被點(diǎn)擊出列后,所述界面隊(duì)列 中位于隊(duì)首的所述界面出列; 543 :所述客戶端結(jié)束掉前功能遍歷的操作路徑并關(guān)閉所述被測(cè)應(yīng)用程序進(jìn)程。
4. 根據(jù)權(quán)利要求1-3任一所述的測(cè)試方法,其特征在于,還進(jìn)一步包括在遍歷被測(cè)應(yīng) 用程序時(shí)輸出每一步操作結(jié)果的步驟。
5. 根據(jù)權(quán)利要求1-4任一所述的測(cè)試方法,其特征在于,被測(cè)設(shè)備端為安卓智能手機(jī)。
6. 根據(jù)權(quán)利要求3-5任一所述的測(cè)試方法,其特征在于,所述步驟S1進(jìn)一步包括如下 步驟: 511 :啟動(dòng)手機(jī)端的viewserver ; 512 :pc端與所述手機(jī)端的viewserver建立socket連接。
7. 根據(jù)權(quán)利要求6所述的測(cè)試方法,其特征在于,所述步驟S3中, 531 :所述pc端通過所述socket連接向所述手機(jī)端的viewserver發(fā)送dump命令; 532 :所述手機(jī)端以類似json的格式將所述手機(jī)界面信息以字符流的形式發(fā)送給所述 pc端; S33:所述pc端對(duì)獲取的以字符流的形式存在的所述手機(jī)界面信息進(jìn)行解析,得到所 述手機(jī)端的所述手機(jī)界面信息,所述手機(jī)界面信息包括所述控件元素的位置信息。
8. 根據(jù)權(quán)利要求3-7任一所述的測(cè)試方法,其特征在于,所述pc端使用monkey對(duì)所述 當(dāng)前手機(jī)界面的所述控件元素進(jìn)行觸發(fā)操作。
【文檔編號(hào)】G06F11/36GK104216828SQ201410242761
【公開日】2014年12月17日 申請(qǐng)日期:2014年6月3日 優(yōu)先權(quán)日:2013年6月3日
【發(fā)明者】劉偉, 趙頌東 申請(qǐng)人:劉偉, 趙頌東
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1