本發(fā)明涉及程序測試技術(shù)領(lǐng)域,尤其涉及一種基于android平臺的自動化測試方法和系統(tǒng)。
背景技術(shù):
隨著科技的發(fā)展和社會的進步,智能手機逐步開始普及,移動智能生活已經(jīng)開始改變?nèi)藗兊纳盍晳T。Android手機的系統(tǒng)開源,廣大的程序愛好者都可以加入到這個Android程序開發(fā)的環(huán)境中來。作為正式的軟件產(chǎn)品進入市場之前,需要測試人員進行精細的測試工作以保證軟件質(zhì)量,而Android操作系統(tǒng)更新也越來越快,從2008年9月發(fā)布Android1.1至今Android操作系統(tǒng)升級了無數(shù)版本,在操作系統(tǒng)升級的同時也需要對先前開發(fā)的軟件是否能用在新版本的Android平臺上進行驗證測試。
目前android自動化測試都必須要進行腳本錄制和迭代維護,既增加成本又增加時間,隨著需求的改動和維護,腳本需要不斷的維護,而且匹配性較差。
因此,如何使得腳本可以前后兼容多個版本,減少人力維護成本,提高效率和提高腳本通用性,成為本領(lǐng)域亟需解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種基于android平臺的自動化測試方法和系統(tǒng),使得腳本可以前后兼容多個版本,減少人力維護成本提高效率和提高腳本通用性。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:
一種基于android平臺的自動化測試方法,包括:
獲取待測試的項目,根據(jù)待測試的項目進行模組匹配;
根據(jù)匹配的模組進行功能測試的定位;
根據(jù)選擇的測試類型,在版本綜合庫中選擇對應的功能測試庫;
運行與功能測試庫相對應的腳本兼容體。
優(yōu)選的,所述根據(jù)待測試的項目進行模組匹配的步驟進一步包括:
根據(jù)模組內(nèi)容,依次確定android版本、android OS、OS類型和OS版本類庫;
所述根據(jù)匹配的模組進行功能測試的定位步驟進一步包括:根據(jù)OS版本類庫進行功能測試的定位。
優(yōu)選的,所述功能測試庫至少包括基礎(chǔ)測試庫、壓力測試庫和運行商測試庫。
優(yōu)選的,所述模組匹配的步驟中,將同一種功能的不同名稱映射到同一模組下。
優(yōu)選的,所述待測試的項目包括短信功能測試;所述根據(jù)待測試的項目進行模組匹配的步驟具體包括:根據(jù)短信功能匹配相應的短信功能模組;
所述根據(jù)匹配的模組進行功能測試的定位的步驟具體包括:根據(jù)短信功能模組進行功能測試的定位。
一種基于android平臺的自動化測試系統(tǒng),包括:
獲取模塊,用于獲取待測試的項目,根據(jù)待測試的項目進行模組匹配;
定位模塊,用于根據(jù)匹配的模組進行功能測試的定位;
選擇模塊,用于根據(jù)選擇的測試類型,在版本綜合庫中選擇對應的功能測試庫;
運行模塊,運行與功能測試庫相對應的腳本兼容體。
優(yōu)選的,所述獲取模塊進一步用于:根據(jù)模組內(nèi)容,依次確定android版本、android OS、OS類型和OS版本類庫;
所述定位模塊進一步用于:根據(jù)OS版本類庫進行功能測試的定位。
優(yōu)選的,所述功能測試庫至少包括基礎(chǔ)測試庫、壓力測試庫和運行商測試庫。
優(yōu)選的,所述獲取模塊進一步用于:將同一種功能的不同名稱映射到同一模組下。
優(yōu)選的,所述待測試的項目包括短信功能測試;所述獲取模塊具體用于:根據(jù)短信功能匹配相應的短信功能模組;
所述定位模塊具體用于:根據(jù)短信功能模組進行功能測試的定位。
本發(fā)明的自動化測試方法由于包括:獲取待測試的項目,根據(jù)待測試的項目進行模組匹配;根據(jù)匹配的模組進行功能測試的定位;根據(jù)選擇的測試類型,在版本綜合庫中選擇對應的功能測試庫;運行與功能測試庫相對應的腳本兼容體。這樣就可以通過模組細分,在測試時根據(jù)所要測試的項目進行定位模組,選配測試類型,從而進行更加精準的測試,同時腳本庫中的腳本編制根據(jù)功能設(shè)置,從而形成腳本兼容庫,以擴展腳本的兼容性,提高腳本的適用范圍。本發(fā)明可以建立在研發(fā)需求基礎(chǔ)上,進行腳本編寫和擴容,橫向擴展兼容性,使得腳本可以前后兼容多個版本,減少人力維護成本提高效率和提高腳本通用性。
附圖說明
圖1是本發(fā)明實施例的自動化測試方法的流程圖;
圖2是本發(fā)明實施例的模組匹配與運行的示意圖;
圖3是本發(fā)明實施例的模組匹配與定位的流程圖;
圖4是本發(fā)明實施例的查找兼容腳本的流程圖;
圖5是現(xiàn)有技術(shù)中短信功能測試的流程圖;
圖6是本發(fā)明實施例的短信功能測試的流程圖;
圖7是本發(fā)明實施例的自動化測試統(tǒng)的示意圖。
具體實施方式
雖然流程圖將各項操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。各項操作的順序可以被重新安排。當其操作完成時處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。處理可以對應于方法、函數(shù)、規(guī)程、子例程、子程序等等。
計算機設(shè)備包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,用戶設(shè)備或客戶端包括但不限于電腦、智能手機、PDA等;網(wǎng)絡(luò)設(shè)備包括但不限于單個網(wǎng)絡(luò)服務器、多個網(wǎng)絡(luò)服務器組成的服務器組或基于云計算的由大量計算機或網(wǎng)絡(luò)服務器構(gòu)成的云。計算機設(shè)備可單獨運行來實現(xiàn)本發(fā)明,也可接入網(wǎng)絡(luò)并通過與網(wǎng)絡(luò)中的其他計算機設(shè)備的交互操作來實現(xiàn)本發(fā)明。計算機設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)等。
在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個單元,但是這些單元不應當受這些術(shù)語限制,使用這些術(shù)語僅僅是為了將一個單元與另一個單元進行區(qū)分。這里所使用的術(shù)語“和/或”包括其中一個或更多所列出的相關(guān)聯(lián)項目的任意和所有組合。當一個單元被稱為“連接”或“耦合”到另一單元時,其可以直接連接或耦合到所述另一單元,或者可以存在中間單元。
這里所使用的術(shù)語僅僅是為了描述具體實施例而不意圖限制示例性實施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個”、“一項”還意圖包括復數(shù)。還應當理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
下面結(jié)合附圖和較佳的實施例對本發(fā)明作進一步說明。
實施例一
如圖1所示,本實施例中公開一種基于android平臺的自動化測試方法,包括:
S101、獲取待測試的項目,根據(jù)待測試的項目進行模組匹配;
S102、根據(jù)匹配的模組進行功能測試的定位;
S103、根據(jù)選擇的測試類型,在版本綜合庫中選擇對應的功能測試庫;
S104、運行與功能測試庫相對應的腳本兼容體。
本發(fā)明的自動化測試方法由于包括:獲取待測試的項目,根據(jù)待測試的項目進行模組匹配;根據(jù)匹配的模組進行功能測試的定位;根據(jù)選擇的測試類型,在版本綜合庫中選擇對應的功能測試庫;運行與功能測試庫相對應的腳本兼容體。這樣就可以通過模組細分,在測試時根據(jù)所要測試的項目進行定位模組,選配測試類型,從而進行更加精準的測試,同時腳本庫中的腳本編制根據(jù)功能設(shè)置,從而形成腳本兼容庫,以擴展腳本的兼容性,提高腳本的適用范圍。本發(fā)明可以建立在研發(fā)需求基礎(chǔ)上,進行腳本編寫和擴容,橫向擴展兼容性,使得腳本可以前后兼容多個版本,減少人力維護成本提高效率和提高腳本通用性。
需要說明的是,本發(fā)明實施例中的安卓設(shè)備包括但不限于安裝有Android系統(tǒng)的移動電話、移動電腦、平板電腦、個人數(shù)字助理(Personal Digital Assistant,PDA)、媒體播放器、智能電視、智能手表、智能眼鏡、智能手環(huán)等用戶設(shè)備。
本實施例中,需要在接收到安卓設(shè)備開始錄制腳本命令時,開始錄制腳本。安卓設(shè)備包括使用安卓操作系統(tǒng)的所有設(shè)備,當接收到安卓設(shè)備開始錄制腳本的命令時,則獲取待測安卓設(shè)備的Root權(quán)限和讀寫系統(tǒng)權(quán)限,然后開始錄制腳本,其中開始錄制腳本的命令可以是測試服務器發(fā)出的也可以是測試安卓設(shè)備自身發(fā)出的。
在實現(xiàn)本發(fā)明實施例前需要搭建好測試通訊系統(tǒng),本發(fā)明實施例的自動化測試工具存放在Android SDK的tools目錄下,該測試工具運行在PC機上并且可以運行jar包,測試工具通過在PC機上安裝有android自帶的ADB工具或是通過USB實現(xiàn)與外圍設(shè)備對象連接,配置好socket通訊參數(shù)。測試工具在操作界面上通過swt/jface展示出來,在底層功能時通過shell命令實現(xiàn),通過socket端口和地址將shell命令發(fā)送給外圍被測設(shè)備。
本實施例中,需要對工具初始化步驟,來獲取與當前PC機連接的設(shè)備對象,并讀取linux層與android層的鍵值映射文件到對應的HashMap中。該步驟是實現(xiàn)基于android平臺自動化測試的前置步驟,自動化測試工具需要與外界設(shè)備對象連接,所述的設(shè)備對象是Android操作系統(tǒng)的設(shè)備即可,包括但不限于智能手機、平板電腦和智能電視等?;趌inux層的鍵值映射文件為qwerty.kl,該文件里包括操作設(shè)備對象的功能以及該功能所對應的鍵值,通過點擊設(shè)備按鍵,系統(tǒng)根據(jù)該按鍵的鍵值就可以找到該按鍵對應的功能,譬如在android手機中,鍵值217是搜索鍵,其對應的按鍵功能是SEARCH,點擊搜索鍵后,根據(jù)其鍵值217找到對應的按鍵功能SEARCH。所述基于android層的鍵值映射文件為keyEvent.java,該文件包含的是事件鍵碼值,以16進制格式保存。將這兩個鍵值映射文件的映射內(nèi)容讀取到對應的HashMap中以供后續(xù)鍵值映射查詢。
根據(jù)其中一個示例,根據(jù)待測試的項目進行模組匹配的步驟進一步包括:
根據(jù)模組內(nèi)容,依次確定android版本、android OS、OS類型和OS版本類庫;
根據(jù)匹配的模組進行功能測試的定位步驟進一步包括:根據(jù)OS版本類庫進行功能測試的定位。
采用這種方式,就可以在獲取系統(tǒng)的android版本、android OS、OS類型和OS版本類庫等信息后,準確找到相應的匹配模組,以及定位和找到對應的腳本。
根據(jù)其中另一個示例,所述功能測試庫至少包括基礎(chǔ)測試庫、壓力測試庫和運行商測試庫。
這樣可以將測試分為幾個大類,方便腳本庫的對應和查找,也方便在匹配模組后進行定位,基礎(chǔ)測試庫可以包括如屏幕測試、聲音測試、按鍵測試等,壓力測試可以包括處理器溫度測試、圖像處理能力測試等,運行商測試可以包括信號強度測試、網(wǎng)絡(luò)測試、射頻信號測試等。
根據(jù)其中另一個示例,所述模組匹配的步驟中,將同一種功能的不同名稱映射到同一模組下。在不同的系統(tǒng)版本中,對于同一功能可能使用不同的名稱,例如對于短信功能,有可能使用“信息”或“MMS”等名稱,那么這些都是代表短信功能名稱,就需要映射到同一模組下,從而能夠使腳本兼容性充分擴容,腳本兼容性強。
根據(jù)其中另一個示例,所述待測試的項目包括短信功能測試;所述根據(jù)待測試的項目進行模組匹配的步驟具體包括:根據(jù)短信功能匹配相應的短信功能模組;
所述根據(jù)匹配的模組進行功能測試的定位的步驟具體包括:根據(jù)短信功能模組進行功能測試的定位。這樣就可以對短信類的功能進行測試,方便不同版本的系統(tǒng)下進行測試運行。
本實施例中,為更加清楚的解釋和說明,下面結(jié)合圖2至圖6進一步描述。本實施例中由三大模塊組成,如圖2所示,包括模組匹配;模組群,包括模組1、模組2、模組3;及運行器。當然模組群還可以包括模組4、模組5,以及更多模組。本實施例中主要描述的是運行器的運行方法,運行器就是執(zhí)行腳本,進行運行的。
模組匹配功能,它是一個綜合判斷體,可根據(jù)用戶的設(shè)置進行分類。如圖3所示,進行一個綜合模組設(shè)定。
模組匹配數(shù)據(jù)中,設(shè)有,android版本、android OS、OS類型、OS版本類庫。
系統(tǒng)根據(jù)模組內(nèi)容,進行選擇,首先經(jīng)過確認android版本,其次是android OS,然后是OS類型,最后是OS版本類庫。依次確認下來后,最后選擇定位出哪個版本。
如圖4所示,定位最終版本類庫后,將調(diào)用這個類庫的兼容腳本體。
在得到定位后,在版本庫綜合庫中選擇需要測試庫類型,本實施例中包括“基礎(chǔ)測試庫”、“壓力測試庫”、“運行商測試庫”。且每個測試庫下面對應一個腳本兼容體。該腳本兼容體就負責所有的測試用例內(nèi)容集合。
例如,如圖5所示,一般的短信功能測試流程中,任何手機中,短信都是此流程設(shè)置,從新建--發(fā)送號碼、發(fā)送內(nèi)容--發(fā)送--退出。兼容腳本庫就是建立在基本流程上的。
而如圖6所示,是一個模擬的兼容體腳本庫,發(fā)送短信的內(nèi)容。在保證基本流程的執(zhí)行過程中,加入匹配算法,增強兼容性。
其中,“短信|信息|MMS”表示在不同版本中,短信的叫法會有不同,“|”表示任意一個匹配即通過,這叫多種字符任一匹配法;
“新建|添加|+”表示添加新短信,有些版本中采用“新建”,有些采用“添加”有些則采用“+”;
“10086”、“開會了”為輸入的號碼和內(nèi)容;
“附件|添加內(nèi)容|1”,有的手機可以添加附件,有的沒有,如果沒有則選擇等待1秒;
最后是發(fā)送和退出。
這樣通過多種字符任一匹配法能夠使腳本兼容性充分擴容,即使沒有也可以等待1秒。在運行器中,即采用這種匹配方法,從而運行腳本。本方案首先通過模組細分,然后定位模組,選配測試類型的設(shè)計方案及相關(guān)流程。
如圖7所示,根據(jù)本發(fā)明其中的一個示例,本實施例中公開一種基于android平臺的自動化測試系統(tǒng),包括:
獲取模塊201,用于獲取待測試的項目,根據(jù)待測試的項目進行模組匹配;
定位模塊202,用于根據(jù)匹配的模組進行功能測試的定位;
選擇模塊203,用于根據(jù)選擇的測試類型,在版本綜合庫中選擇對應的功能測試庫;
運行模塊204,運行與功能測試庫相對應的腳本兼容體。
這樣就可以通過模組細分,在測試時根據(jù)所要測試的項目進行定位模組,選配測試類型,從而進行更加精準的測試,同時腳本庫中的腳本編制根據(jù)功能設(shè)置,從而形成腳本兼容庫,以擴展腳本的兼容性,提高腳本的適用范圍。本發(fā)明可以建立在研發(fā)需求基礎(chǔ)上,進行腳本編寫和擴容,橫向擴展兼容性,使得腳本可以前后兼容多個版本,減少人力維護成本提高效率和提高腳本通用性。
根據(jù)其中一個示例,所述獲取模塊進一步用于:根據(jù)模組內(nèi)容,依次確定android版本、android OS、OS類型和OS版本類庫;
所述定位模塊進一步用于:根據(jù)OS版本類庫進行功能測試的定位。
采用這種方式,就可以在獲取系統(tǒng)的android版本、android OS、OS類型和OS版本類庫等信息后,準確找到相應的匹配模組,以及定位和找到對應的腳本。
根據(jù)其中另一個示例,所述功能測試庫至少包括基礎(chǔ)測試庫、壓力測試庫和運行商測試庫。
這樣可以將測試分為幾個大類,方便腳本庫的對應和查找,也方便在匹配模組后進行定位,基礎(chǔ)測試庫可以包括如屏幕測試、聲音測試、按鍵測試等,壓力測試可以包括處理器溫度測試、圖像處理能力測試等,運行商測試可以包括信號強度測試、網(wǎng)絡(luò)測試、射頻信號測試等。
根據(jù)其中另一個示例,所述獲取模塊進一步用于:將同一種功能的不同名稱映射到同一模組下。
在不同的系統(tǒng)版本中,對于同一功能可能使用不同的名稱,例如對于短信功能,有可能使用“信息”或“MMS”等名稱,那么這些都是代表短信功能名稱,就需要映射到同一模組下,從而能夠使腳本兼容性充分擴容,腳本兼容性強。
根據(jù)其中另一個示例,所述待測試的項目包括短信功能測試;所述獲取模塊具體用于:根據(jù)短信功能匹配相應的短信功能模組;
所述定位模塊具體用于:根據(jù)短信功能模組進行功能測試的定位。
這樣就可以對短信類的功能進行測試,方便不同版本的系統(tǒng)下進行測試運行。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。