欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

終端應用的測試方法及移動終端的制作方法

文檔序號:10624703閱讀:406來源:國知局
終端應用的測試方法及移動終端的制作方法
【專利摘要】本發(fā)明提供一種終端應用的測試方法及應用該方法的移動終端,包括:將自定義的動態(tài)傳輸庫注入到終端應用的進程中;加載所述動態(tài)傳輸庫中的掛鉤函數(shù);利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù);執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備實時對終端應用進行測試和修改。本發(fā)明通過動態(tài)傳輸庫的定義和使用,將移動終端所接收與發(fā)送的真實數(shù)據(jù)先行經(jīng)過測試設(shè)備進行展示,使測試設(shè)備可以在真實網(wǎng)絡(luò)環(huán)境下進行終端應用的測試。
【專利說明】
終端應用的測試方法及移動終端
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于軟件測試領(lǐng)域,尤其涉及一種終端應用的測試方法及移動終端。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的普及,越來越多的終端應用在生活中起到重要作用,比如微信、微團購和偷菜游戲等,甚至改變了人們的生活方式。而為了使一款終端應用更加的友好和智能化,軟件工程師會做大量的測試工作,比如對于通信協(xié)議、健壯性測試等。
[0003]終端應用所展示的內(nèi)容大都通過網(wǎng)絡(luò)從服務器獲取,如果服務器中的數(shù)據(jù)有偏差,那么終端應用中就會出現(xiàn)錯誤。而測試和修改上述錯誤,需要等待錯誤返回至服務器,并積累到一定數(shù)量或等待預設(shè)時間后,才會被解決,大大影響處理效率,為此,現(xiàn)有技術(shù)提出了在終端側(cè)通過動態(tài)調(diào)試或修改源代碼來構(gòu)造假數(shù)據(jù),并利用該假數(shù)據(jù)進行網(wǎng)絡(luò)封包的測試,從而達到對真實網(wǎng)絡(luò)環(huán)境進行模擬測試的目的。
[0004]然而,現(xiàn)有的方案,通過動態(tài)調(diào)試的測試方法對測試人員代碼能力要求較高,且容易出錯,耗時很長;而修改源代碼的測試方法則僅能在有源代碼的情形下進行;而且二者皆會受網(wǎng)絡(luò)傳輸質(zhì)量的影響,測試效率難以保證。

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

[0005]有鑒于此,本發(fā)明的目的在于提供一種終端應用的測試方法及移動終端,可以解決現(xiàn)有技術(shù)中對測試人員技能要求高、測試耗時長、效率難以保證等技術(shù)問題。
[0006]為解決上述技術(shù)問題,本發(fā)明實施例提供了一種終端應用的測試方法,包括:
[0007]將自定義的動態(tài)傳輸庫注入到終端應用的進程中;
[0008]加載所述動態(tài)傳輸庫中的掛鉤函數(shù);
[0009]利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù);以及
[0010]執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備實時對終端應用進行測試和修改。
[0011]為解決上述技術(shù)問題,本發(fā)明實施例還提供了一種移動終端,包括:
[0012]函數(shù)庫,包括用于存放原接收函數(shù)和原發(fā)送函數(shù)的系統(tǒng)庫、以及用于存放掛鉤函數(shù)的動態(tài)傳輸庫;
[0013]加載模塊,用于將所述動態(tài)傳輸庫注入到終端應用的進程中,并加載所述動態(tài)傳輸庫中的掛鉤函數(shù);
[0014]修改模塊,用于利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù);以及
[0015]執(zhí)行模塊,用于執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備實時對終端應用進行測試和修改。
[0016]相對于現(xiàn)有技術(shù),本發(fā)明通過動態(tài)傳輸庫的定義和使用,將移動終端所接收與發(fā)送的真實數(shù)據(jù)先行經(jīng)過測試設(shè)備進行展示,使測試設(shè)備可以在真實網(wǎng)絡(luò)環(huán)境下進行終端應用的測試?!靖綀D說明】
[0017]圖1是本發(fā)明實施例提供的終端應用的測試方法及移動終端的應用環(huán)境示意圖;
[0018]圖2是本發(fā)明實施例一提供的終端應用的測試方法的工作流程示意圖;
[0019]圖3是本發(fā)明實施例二提供的終端應用測試方法中執(zhí)行第一接收函數(shù)的步驟細化示意圖;
[0020]圖4是本發(fā)明實施例三提供的移動終端的模塊示意圖;
[0021]圖5是本發(fā)明實施例四提供的終端應用的測試方法及移動終端的時序示意圖?!揪唧w實施方式】
[0022]請參照附圖中的圖式,其中相同的組件符號代表相同的組件,本發(fā)明的原理是以實施在一適當?shù)倪\算環(huán)境中來舉例說明。以下的說明是基于所示例的本發(fā)明的具體實施例,其不應被視為限制本發(fā)明未在此詳述的其它具體實施例。
[0023]本發(fā)明原理以上述文字來說明,其并不代表為一種限制,本領(lǐng)域測試人員將可了解到以下所述的多種步驟及操作亦可實施在硬件當中。本發(fā)明的原理使用許多其它泛用性或特定目的運算、通信環(huán)境或組態(tài)來進行操作。
[0024]請參閱圖1,為本發(fā)明中提供的終端應用的測試方法及移動終端的應用環(huán)境示意圖。所述應用環(huán)境,包括服務器10、移動終端20、測試設(shè)備30以及通信網(wǎng)絡(luò)40。
[0025]可以理解的是:所述服務器10,用于偵聽客戶端的服務請求,并提供相應的服務。 然而,由于同一服務器會服務各種不同類型的客戶端,如移動終端20或個人電腦等,在健壯性和兼容性上有時會出現(xiàn)各類的問題,導致客戶端無法正常獲取服務。
[0026]尤其是當所述客戶端為移動終端20時,對服務器10所提供的數(shù)據(jù)包進行分析和調(diào)試會非常的不方便,故而通過將自定義的動態(tài)傳輸庫及其掛鉤函數(shù),使移動終端所接收與發(fā)送的數(shù)據(jù)包先行經(jīng)過測試設(shè)備的測試,再返回至目標地址,所述目標地址為移動終端或服務器。
[0027]其流程概述為:將動態(tài)傳輸庫注入到終端應用的進程中;加載所述動態(tài)傳輸庫中的掛鉤函數(shù),并利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù);執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備30實時對終端應用進行測試和修改。
[0028]測試設(shè)備30,采用普通的個人電腦即可,通過構(gòu)造假數(shù)據(jù)、模擬邊界值和實施監(jiān)控傳輸數(shù)據(jù)技術(shù)中的一種或組合對所述移動終端20的終端應用所接收和轉(zhuǎn)發(fā)的數(shù)據(jù)包進行測試,從而更方便提前發(fā)現(xiàn)漏洞以及及時進行修復。
[0029]可以理解的是,無論是各協(xié)議層的不兼容、代碼錯誤、程序漏洞或其他可影響終端應用正常使用的技術(shù)問題,都可以通過轉(zhuǎn)發(fā)至測試設(shè)備30進行測試和分析。
[0030]通信網(wǎng)絡(luò)40,包括無線網(wǎng)絡(luò)及有線網(wǎng)絡(luò)。其中無線網(wǎng)絡(luò)包括無線廣域網(wǎng)、無線局域網(wǎng)、無線城域網(wǎng)、以及無線個人網(wǎng)中的一種或多種的組合。
[0031]其中,通常服務器10至移動終端20的連接方式為無線網(wǎng)絡(luò),用于模擬真實的網(wǎng)絡(luò)環(huán)境。移動終端20至測試設(shè)備30之間的連接方式為有線網(wǎng)絡(luò),通過USB數(shù)據(jù)線等方式進行連接,以便測試設(shè)備30第一時間獲取移動終端20的數(shù)據(jù)封包。
[0032]本案可應用于基于各類網(wǎng)絡(luò)協(xié)議的終端應用測試中。請參照以下實施例,實施例一、二側(cè)重于終端應用的測試方法,實施例三側(cè)重于移動終端,實施例四側(cè)重于終端應用的測試方法及移動終端的工作時序??梢岳斫獾氖?雖然各實施例的側(cè)重不同,但其設(shè)計思想是一致的。且,在某個實施例中沒有詳述的部分,可以參見說明書全文的詳細描述,不再贅述。
[0033]實施例一
[0034]請參閱圖2,所示為終端應用的測試方法的工作流程示意圖。
[0035]在步驟S21中,將自定義的動態(tài)傳輸庫注入到終端應用的進程中。
[0036]可以理解的是,終端應用中包含系統(tǒng)庫,所述系統(tǒng)庫用于存儲原接收函數(shù)和原發(fā)送函數(shù)。所述動態(tài)傳輸庫用于存儲掛鉤函數(shù)、測試用數(shù)據(jù)包等。系統(tǒng)庫與動態(tài)傳輸庫一同構(gòu)成函數(shù)庫。
[0037]在步驟S22中,加載所述動態(tài)傳輸庫中的掛鉤(Hook)函數(shù)。
[0038]可以理解的是,掛鉤函數(shù)是一種信息處理機制,通過設(shè)置“掛鉤”,終端應用可以對信息和事件進行過濾。通常,掛鉤函數(shù)的架構(gòu)(API Hook)包括兩個部分,一個是掛鉤服務模塊(Hook Server),在Windows系統(tǒng)里體現(xiàn)為EXE形式、在Android系統(tǒng)里體現(xiàn)為APK形式;另一個是掛鉤驅(qū)動模塊(Hook Driver),在Windows系統(tǒng)里體現(xiàn)為DLL形式、在Android或Linux系統(tǒng)里體現(xiàn)為SO形式。
[0039]在步驟S23中,利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù)。
[0040]可以理解的是,在本步驟中,掛鉤函數(shù)通過修改目標進程中的地址,即原接收函數(shù)與原發(fā)送函數(shù)中的引用地址,使掛鉤驅(qū)動模塊可以實際負責數(shù)據(jù)包的攔截工作。即,無論是移動終端發(fā)送還是接收的數(shù)據(jù)包都會先經(jīng)過測試設(shè)備的攔截,使測試設(shè)備可以獲取到移動終端的真實數(shù)據(jù)。
[0041 ] 在步驟S24中,執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備實時對終端應用進行測試和修改。
[0042]可以理解的是,執(zhí)行所述第一發(fā)送函數(shù)的步驟具體包括:
[0043](I)將數(shù)據(jù)包通過抽象套接接口(Socket)進行封裝,形成數(shù)據(jù)封包;
[0044](2)利用所述第一發(fā)送函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備;
[0045](3)接收所述測試設(shè)備修改完成的修正數(shù)據(jù)包;以及
[0046](4)調(diào)用原發(fā)送函數(shù)將所述修正數(shù)據(jù)包發(fā)送給服務器。
[0047]執(zhí)行所述第一接收函數(shù)的步驟具體包括:
[0048](I)向服務器發(fā)送接收請求,并通過服務器的查詢回應判斷當前是否有數(shù)據(jù)可接收;
[0049](2)當有數(shù)據(jù)可接收時,調(diào)用原接收函數(shù)接收數(shù)據(jù)包,并將接收到的數(shù)據(jù)包通過抽象套接接口進行封裝,形成數(shù)據(jù)封包;
[0050](3)利用所述第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備;以及
[0051](4)由所述測試設(shè)備修改完成的修改正數(shù)據(jù)包,即將接收的目標地址還原為移動終端。
[0052]可以理解的是,測試設(shè)備30接收由服務器或移動終端為始發(fā)地址的數(shù)據(jù)包,并通過構(gòu)造假數(shù)據(jù)、模擬邊界值和實施監(jiān)控傳輸數(shù)據(jù)中處理技術(shù)的一種或組合,對數(shù)據(jù)包所對應的移動終端20運行的終端應用進行測試,從而更方便提前發(fā)現(xiàn)漏洞以及及時進行修復。
[0053]本發(fā)明的終端應用的測試方法,通過動態(tài)傳輸庫的定義和使用,使掛鉤函數(shù)將原接收函數(shù)與發(fā)送函數(shù)形成第一接收函數(shù)與第一發(fā)送函數(shù),實現(xiàn)了將移動終端所接收與發(fā)送的真實數(shù)據(jù)包先行經(jīng)過測試設(shè)備進行展示,使測試設(shè)備可以在真實網(wǎng)絡(luò)環(huán)境下進行終端應用的測試。
[0054]實施例二
[0055]請參閱圖3,所示為終端應用的測試方法中執(zhí)行第一接收函數(shù)的步驟細化流程示意圖。與實施例一的區(qū)別在于,本實施例還特別考慮了當移動終端所接收的數(shù)據(jù)包為大數(shù)據(jù)包的情況,避免了在數(shù)據(jù)不完全的情形下進行封裝、以及內(nèi)存隊列被誤清除的情形,使測試數(shù)據(jù)更真實完整。其具體過程如下:
[0056]在步驟S241中,分配內(nèi)存地址,并指定最大長度。以QQ空間進程為例,可為其指定最大長度為5120字節(jié),即5KB的內(nèi)存空間。
[0057]在步驟S242中,接收來自于服務器的數(shù)據(jù)包,并判斷數(shù)據(jù)包的長度是否超過所述最大長度。其中,若超過所述最大長度即為大數(shù)據(jù)包的情形,執(zhí)行步驟S243 ;若未超過所述最大長度即為普通情形,執(zhí)行步驟S247。
[0058]在步驟S243中,當所述數(shù)據(jù)包超過最大長度時,根據(jù)所述數(shù)據(jù)包的大小分次接收所述數(shù)據(jù)包。
[0059]可以理解的是,在本步驟中還包括:(1)使用接收參數(shù)對系統(tǒng)隊列進行調(diào)整;(2) 判斷所述數(shù)據(jù)包是否接收完成;(3)當所述接收完成后,對系統(tǒng)隊列進行清空。
[0060]在步驟S244中,將分次接收的數(shù)據(jù)包通過抽象套裝接口進行封裝,形成數(shù)據(jù)封包。
[0061]在步驟S245中,利用第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至測試設(shè)備。
[0062]可以理解的是,上述步驟S243?S245為大數(shù)據(jù)包的情形,而在普通數(shù)據(jù)包時,執(zhí)行步驟S247,利用第一接收函數(shù)將數(shù)據(jù)包轉(zhuǎn)發(fā)至所述測試設(shè)備。
[0063]在步驟S246中,調(diào)用原接收函數(shù)接收由測試設(shè)備修改完成的修正數(shù)據(jù)包。
[0064]本發(fā)明的終端應用的測試方法,通過動態(tài)傳輸庫的定義和使用,使掛鉤函數(shù)將原接收函數(shù)與發(fā)送函數(shù)形成第一接收函數(shù)與第一發(fā)送函數(shù),將移動終端所接收與發(fā)送的真實數(shù)據(jù)先行經(jīng)過測試設(shè)備進行展示,使測試設(shè)備可以在真實網(wǎng)絡(luò)環(huán)境下進行終端應用的測試。此外,還通過對超大網(wǎng)絡(luò)包的處理,避免從截獲過大的網(wǎng)絡(luò)包后因數(shù)據(jù)不全而無法進行測試與修改。
[0065]實施例三
[0066]請參閱圖4,所示為本發(fā)明實施例提供的移動終端的模塊示意圖。所述移動終端 20為手機、平板電腦、個人數(shù)字助理(PDA)、智能眼鏡、智能手表等智慧型終端設(shè)備。
[0067]所述移動終端20主要包括:函數(shù)庫21、加載模塊22、修改模塊23以及執(zhí)行模塊 24。
[0068]函數(shù)庫21,包括用于存放原接收函數(shù)和原發(fā)送函數(shù)的系統(tǒng)庫、以及用于存放掛鉤函數(shù)的動態(tài)傳輸庫。此外,動態(tài)傳輸庫還可用于存放測試用的數(shù)據(jù)包。
[0069]加載模塊22,用于將所述動態(tài)傳輸庫21注入到終端應用的進程中,并加載所述動態(tài)傳輸庫中的掛鉤函數(shù)。
[0070]修改模塊23,用于利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù)。
[0071]可以理解的是,所述修改模塊23包括獲取子模塊231和地址修改子模塊232。其中,所述獲取子模塊231,用于利用所述掛鉤函數(shù)獲取原接收函數(shù)和原發(fā)送函數(shù)的引用地址字段。所述地址修改子模塊232,用于將原接收函數(shù)和原發(fā)送函數(shù)中的引用地址字段修改為測試設(shè)備,以形成第一接收函數(shù)和第一發(fā)送函數(shù)。
[0072]執(zhí)行模塊24,用于執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備實時對終端應用進行測試和修改。
[0073]可以理解的是:所述執(zhí)行模塊24具體包括:判斷子模塊241、套接子模塊242、轉(zhuǎn)發(fā)子模塊243、以及調(diào)用子模塊244。此外,為了避免大數(shù)據(jù)包可能帶來的測試準確率降低,所述執(zhí)行模塊還可以包括如下子模塊:內(nèi)存子模塊245、長度分析子模塊246以及隊列清空子模塊247。
[0074]具體而言,在執(zhí)行第一發(fā)送函數(shù)時,需要套接子模塊242、轉(zhuǎn)發(fā)子模塊243、以及調(diào)用子模塊244的配合。
[0075]其中,套接子模塊242,用于將待發(fā)送的數(shù)據(jù)包通過抽象套接接口進行封裝,形成數(shù)據(jù)封包。轉(zhuǎn)發(fā)子模塊243,用于利用第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備、以及接收所述測試設(shè)備修改完成的修正數(shù)據(jù)包。調(diào)用子模塊245,用于調(diào)用原發(fā)送函數(shù)將修正數(shù)據(jù)包發(fā)送給服務器。
[0076]在執(zhí)行第一接收函數(shù)時,需要判斷子模塊241、套接子模塊242、轉(zhuǎn)發(fā)自模塊、以及調(diào)用子模塊245的配合。
[0077]其中,判斷子模塊241,用于通過向服務器發(fā)送查詢請求以判斷所述移動終端是否有數(shù)據(jù)可接收。套接子模塊242,用于在所述判斷子模塊241的判斷結(jié)果為沒有數(shù)據(jù)可接收時,調(diào)用動態(tài)傳輸庫中的測試數(shù)據(jù)包進行封裝;所述套接子模塊242在所述判斷子模塊241判斷結(jié)果為有數(shù)據(jù)可接收時,接收數(shù)據(jù)包并將接收到的數(shù)據(jù)包進行封裝。轉(zhuǎn)發(fā)子模塊243,用于利用第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備。所述調(diào)用子模塊245,還用于調(diào)用原接收函數(shù)接收由所述測試設(shè)備修改完成的修改正數(shù)據(jù)包。
[0078]此外,考慮到數(shù)據(jù)包可能為大數(shù)據(jù)包的情形,為避免在數(shù)據(jù)不完全的情形下進行封裝、以及內(nèi)存隊列被誤清除的情形,使測試數(shù)據(jù)更真實完整,在執(zhí)行第一接收函數(shù)時,還需要用到內(nèi)存子模塊245、長度分析子模塊246、隊列清空子模塊247、套裝子模塊242、轉(zhuǎn)發(fā)子模塊243、以及調(diào)用子模塊244的配合。
[0079]其中,內(nèi)存子模塊245,用于從存儲器(未標示)中分配內(nèi)存地址,并指定最大長度。長度分析子模塊246,用于接收數(shù)據(jù)包,并判斷數(shù)據(jù)包的長度是否超過所述最大長度,當所述數(shù)據(jù)包超過最大長度時,根據(jù)所述數(shù)據(jù)包的大小分次接收所述數(shù)據(jù)包。隊列清空模塊247,用于當所述長度分析模塊判斷所述數(shù)據(jù)包超過最大長度時,使用接收參數(shù)對系統(tǒng)隊列進行調(diào)整;并判斷所述數(shù)據(jù)包是否接收完成;當所述接收完成后,對系統(tǒng)隊列進行清空。此夕卜,套裝子模塊242,還用于將所述分次接收的數(shù)據(jù)包通過抽象套裝接口進行封裝,形成數(shù)據(jù)封包。其中,轉(zhuǎn)發(fā)子模塊243與調(diào)用子模塊244的作用與上相同,在此不再贅述。
[0080]本發(fā)明的移動終端中通過動態(tài)傳輸庫的定義和使用,使掛鉤函數(shù)將原接收函數(shù)與發(fā)送函數(shù)形成第一接收函數(shù)與第一發(fā)送函數(shù),實現(xiàn)了將移動終端所接收與發(fā)送的真實數(shù)據(jù)先行經(jīng)過測試設(shè)備進行展示,使測試設(shè)備可以在真實網(wǎng)絡(luò)環(huán)境下進行終端應用的測試。
[0081]實施例四
[0082]請參閱圖5,所示為本發(fā)明實施例提供的終端應用的測試方法及移動終端的時序示意圖。
[0083]在步驟A中,移動終端將自定義的動態(tài)傳輸庫注入到待測試的終端應用的進程中。
[0084]可以理解的是,終端應用中包含系統(tǒng)庫,所述系統(tǒng)庫用于存儲原接收函數(shù)和原發(fā)送函數(shù)。所述動態(tài)傳輸庫用于存儲掛鉤函數(shù)、測試用數(shù)據(jù)包等。系統(tǒng)庫與動態(tài)傳輸庫一同構(gòu)成函數(shù)庫。
[0085]在步驟B中,移動終端加載所述動態(tài)傳輸庫中的掛鉤(Hook)函數(shù),并利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù)。
[0086]在步驟C中,移動終端分配內(nèi)存地址,并指定最大長度。
[0087]以下步驟D?H為執(zhí)行第一接收函數(shù)的步驟。
[0088]在步驟D中,移動終端通過原接收函數(shù)接收服務器發(fā)送的數(shù)據(jù)包。
[0089]在步驟E中,移動終端判斷所接收的數(shù)據(jù)包是否超過上述最大長度。其中,如果沒有超過最大長度,則直接接收;如果超過最大長度,則分次接收數(shù)據(jù)包。
[0090]可以理解的是,在本步驟中,還包括:
[0091](1)使用接收參數(shù)對系統(tǒng)隊列進行調(diào)整;
[0092](2)判斷所述數(shù)據(jù)包是否接收完成;以及
[0093](3)當所述接收完成后,對系統(tǒng)隊列進行清空。
[0094]在步驟F中,移動終端將數(shù)據(jù)包封裝形成數(shù)據(jù)封包,并利用第一接收函數(shù)將數(shù)據(jù)封包轉(zhuǎn)發(fā)至測試設(shè)備。
[0095]在步驟G中,測試設(shè)備對數(shù)據(jù)封包進行測試和修改,形成修正數(shù)據(jù)包。
[0096]在步驟H中,所述測試設(shè)備將修正數(shù)據(jù)包發(fā)送給所述移動終端。
[0097]以下步驟I?M為執(zhí)行第一發(fā)送函數(shù)的步驟。
[0098]在步驟I中,移動終端向服務器發(fā)送數(shù)據(jù)包,并由第一發(fā)送函數(shù)將所述數(shù)據(jù)包轉(zhuǎn)發(fā)至測試設(shè)備。
[0099]在步驟J中,測試設(shè)備對數(shù)據(jù)包進行測試和修改,產(chǎn)生修正數(shù)據(jù)包。
[0100]在步驟K中,測試設(shè)備將修正數(shù)據(jù)包發(fā)送回給移動終端。
[0101]在步驟L中,測試設(shè)備將利用原發(fā)送函數(shù)將修正數(shù)據(jù)包發(fā)送給服務器。
[0102]本發(fā)明中的終端應用的測試方法及移動終端通過動態(tài)傳輸庫的定義和使用,將移動終端所接收與發(fā)送的真實數(shù)據(jù)先行經(jīng)過測試設(shè)備進行展示,使測試設(shè)備可以在真實網(wǎng)絡(luò)環(huán)境下進行終端應用的測試。此外,還通過對超大網(wǎng)絡(luò)包的處理,避免從截獲過大的網(wǎng)絡(luò)包后因數(shù)據(jù)不全而無法進行測試與修改。
[0103]可以理解的是,在本實施例中,本發(fā)明中通過動態(tài)傳輸庫的定義和使用,將移動終端所接收與發(fā)送的真實數(shù)據(jù)先行經(jīng)過測試設(shè)備進行展示,使測試設(shè)備可以在真實網(wǎng)絡(luò)環(huán)境下進行終端應用的測試。
[0104]本發(fā)明實施例提供的終端應用的測試方法及移動終端屬于同一構(gòu)思,其具體實現(xiàn)過程詳見說明書全文,此處不再贅述。
[0105]綜上所述,雖然本發(fā)明已以優(yōu)選實施例揭露如上,但上述優(yōu)選實施例并非用以限制本發(fā)明,本領(lǐng)域的普通測試人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與潤飾,因此本發(fā)明的保護范圍以權(quán)利要求界定的范圍為準。
【主權(quán)項】
1.一種終端應用的測試方法,其特征在于,包括:將自定義的動態(tài)傳輸庫注入到終端應用的進程中;加載所述動態(tài)傳輸庫中的掛鉤函數(shù);利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與 第一發(fā)送函數(shù);以及執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備實時對終端應用進 行測試和修改。2.如權(quán)利要求1所述的測試方法,其特征在于,所述執(zhí)行所述第一發(fā)送函數(shù)的步驟具 體包括:將數(shù)據(jù)包通過抽象套接接口進行封裝,形成數(shù)據(jù)封包;利用所述第一發(fā)送函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備;接收所述測試設(shè)備修改完成的修正數(shù)據(jù)包;以及 調(diào)用原發(fā)送函數(shù)將所述修正數(shù)據(jù)包發(fā)送給服務器。3.如權(quán)利要求1所述的測試方法,其特征在于,所述執(zhí)行所述第一接收函數(shù)的步驟具 體包括:判斷是否有數(shù)據(jù)可接收;當有數(shù)據(jù)可接收時,調(diào)用原接收函數(shù)接收數(shù)據(jù)包,并將接收到的數(shù)據(jù)包通過抽象套接 接口進行封裝,形成數(shù)據(jù)封包;利用所述第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備;以及 接收由所述測試設(shè)備修改完成的修正數(shù)據(jù)包。4.如權(quán)利要求1所述的測試方法,其特征在于,所述執(zhí)行所述第一接收函數(shù)的步驟具 體還包括:分配內(nèi)存地址,并指定最大長度;接收數(shù)據(jù)包,并判斷數(shù)據(jù)包的長度是否超過所述最大長度;當所述數(shù)據(jù)包超過最大長度時,根據(jù)所述數(shù)據(jù)包的大小分次接收所述數(shù)據(jù)包;將所述分次接收的數(shù)據(jù)包通過抽象套裝接口進行封裝,形成數(shù)據(jù)封包;利用所述第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備;以及 調(diào)用原接收函數(shù)接收由所述測試設(shè)備修改完成的修正數(shù)據(jù)包。5.如權(quán)利要求4所述的測試方法,其特征在于,在所述當所述數(shù)據(jù)包超過最大長度時, 根據(jù)所述數(shù)據(jù)包的大小分次接收所述數(shù)據(jù)包的步驟之后,還包括步驟:使用接收參數(shù)對系統(tǒng)隊列進行調(diào)整;判斷所述數(shù)據(jù)包是否接收完成;以及 當所述接收完成后,對系統(tǒng)隊列進行清空。6.如權(quán)利要求1所述的測試方法,其特征在于,在所述執(zhí)行所述第一接收函數(shù)和/或執(zhí) 行所述第一發(fā)送函數(shù),使測試設(shè)備可以實時對終端應用進行測試和修改的步驟之后,還包 括步驟:所述測試設(shè)備通過構(gòu)造假數(shù)據(jù)、模擬邊界值和實施監(jiān)控傳輸數(shù)據(jù)中的一種或組合對所 述終端應用進行測試和修改。7.—種移動終端,其特征在于,包括: 函數(shù)庫,包括用于存放原接收函數(shù)和原發(fā)送函數(shù)的系統(tǒng)庫、以及用于存放掛鉤函數(shù)的動態(tài)傳輸庫; 加載模塊,用于將所述動態(tài)傳輸庫注入到終端應用的進程中,并加載所述動態(tài)傳輸庫中的掛鉤函數(shù); 修改模塊,用于利用掛鉤函數(shù)對原接收函數(shù)和原發(fā)送函數(shù)的引用地址進行修改,形成第一接收函數(shù)與第一發(fā)送函數(shù);以及 執(zhí)行模塊,用于執(zhí)行所述第一接收函數(shù)和/或執(zhí)行所述第一發(fā)送函數(shù),使測試設(shè)備實時對終端應用進行測試和修改。8.如權(quán)利要求7所述的移動終端,其特征在于,所述執(zhí)行模塊包括如下模塊以執(zhí)行所述第一發(fā)送模塊: 套接子模塊,用于將數(shù)據(jù)包通過抽象套接接口進行封裝,形成數(shù)據(jù)封包; 轉(zhuǎn)發(fā)子模塊,用于利用所述第一發(fā)送函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備、以及接收所述測試設(shè)備修改完成的修正數(shù)據(jù)包;以及 調(diào)用子模塊,用于調(diào)用原發(fā)送函數(shù)將所述修正數(shù)據(jù)包發(fā)送給服務器。9.如權(quán)利要求8所述的移動終端,其特征在于,所述執(zhí)行模塊還包括以下子模塊以執(zhí)行所述第一接收函數(shù): 判斷子模塊,用于判斷是否有數(shù)據(jù)可接收; 所述套裝子模塊,還用于當有數(shù)據(jù)可接收時,調(diào)用原接收函數(shù)接收數(shù)據(jù)包,并將接收到的數(shù)據(jù)包通過抽象套接接口進行封裝,以形成數(shù)據(jù)封包; 所述轉(zhuǎn)發(fā)子模塊,還用于利用所述第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備;以及 所述調(diào)用子模塊,還用于接收由所述測試設(shè)備修改完成的修改正數(shù)據(jù)包。10.如權(quán)利要求8所述的移動終端,其特征在于,所述執(zhí)行模塊還包括以下子模塊以執(zhí)行所述第一接收函數(shù): 內(nèi)存子模塊,用于分配內(nèi)存地址,并指定最大長度; 長度分析子模塊,用于接收數(shù)據(jù)包,并判斷數(shù)據(jù)包的長度是否超過所述最大長度,當所述數(shù)據(jù)包超過最大長度時,根據(jù)所述數(shù)據(jù)包的大小分次接收所述數(shù)據(jù)包; 所述套裝子模塊,還用于將所述分次接收的數(shù)據(jù)包通過抽象套裝接口進行封裝,形成數(shù)據(jù)封包; 所述轉(zhuǎn)發(fā)子模塊,還用于利用所述第一接收函數(shù)將所述數(shù)據(jù)封包轉(zhuǎn)發(fā)至所述測試設(shè)備、以及接收所述測試設(shè)備修改完成的修正數(shù)據(jù)包; 所述調(diào)用子模塊,還用于調(diào)用原發(fā)送函數(shù)將所述修正數(shù)據(jù)包發(fā)送給服務器。11.如權(quán)利要求10所述的移動終端,其特征在于,所述執(zhí)行模塊還包括如下子模塊以執(zhí)行所述第一接收函數(shù): 隊列清空模塊,用于當所述長度分析模塊判斷所述數(shù)據(jù)包超過最大長度時,使用接收參數(shù)對系統(tǒng)隊列進行調(diào)整;并判斷所述數(shù)據(jù)包是否接收完成;當所述接收完成后,對系統(tǒng)隊列進行清空。
【文檔編號】G06F9/48GK105988928SQ201510092478
【公開日】2016年10月5日
【申請日】2015年3月2日
【發(fā)明人】龍祖苑, 韓逢源
【申請人】騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
昌平区| 湘潭县| 隆德县| 崇礼县| 景洪市| 潮州市| 古蔺县| 衡南县| 乃东县| 新民市| 苍溪县| 宣化县| 武山县| 怀仁县| 盖州市| 平遥县| 张家界市| 和田市| 鄯善县| 洪湖市| 阜新市| 正安县| 西峡县| 天峻县| 高密市| 石屏县| 石柱| 吉首市| 竹北市| 九龙城区| 黄浦区| 达州市| 张家口市| 周口市| 东辽县| 峨眉山市| 镇赉县| 山阴县| 镇安县| 葫芦岛市| 鄄城县|