本發(fā)明涉及銀行移動應(yīng)用測試領(lǐng)域,特別涉及一種銀行手機應(yīng)用自動化測試方法及系統(tǒng)。
背景技術(shù):
隨著移動通信技術(shù)和移動互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,基于Android和iOS的移動應(yīng)用也得到了廣泛的使用。銀行針對移動互聯(lián)網(wǎng)的發(fā)展,也在大力推廣移動金融業(yè)務(wù),以滿足客戶的移動業(yè)務(wù)辦理需求,例如微信銀行、手機銀行、特色O2O應(yīng)用等等。而目前移動操作系統(tǒng)主要是由谷歌的Android系統(tǒng)和蘋果的iOS系統(tǒng)組成,開源的Android系統(tǒng)一方面由于支持的廠商越來越多,另一方面由于系統(tǒng)的更新速度也較快,這導(dǎo)致應(yīng)用開發(fā)商在發(fā)布應(yīng)用前除了要進行功能測試,還需要進行大量的兼容性測試;蘋果的iOS系統(tǒng)雖然設(shè)備兼容性測試的量小一些,但不同的iOS版本也要進行相應(yīng)的系統(tǒng)兼容性測試。所以,目前銀行移動應(yīng)用在每次優(yōu)化上線發(fā)布時,都需進行大量的測試。
當(dāng)前,針對手機移動應(yīng)用的測試,除了手工測試外,還有基于Android原生SDK的Monkey、Monkey Runner模擬事件流的測試,以及基于Instrumentation(Android 2.2+),UIA utomator(Android 4.3+)的各種Android測試方法和框架;蘋果手機主要是基于UIA utomation的測試方法和框架。例如,公開號為104331373A,公布日為2015-02-04的中國發(fā)明專利公開了一種Monkey測試系統(tǒng)及方法,該Monkey測試系統(tǒng)可以通過不同測試前的設(shè)置來完成相應(yīng)場景的自動化測試,以減輕手工測試強度。公開號為202334909U,公開日為2012-07-11的中國實用新型專利公開了一種通過圖像對比實現(xiàn)自動化測試手機業(yè)務(wù)的系統(tǒng),該系統(tǒng)主要通過截取手機實時圖像與大量事先駐留的標(biāo)準(zhǔn)圖片庫進行比對,從而實現(xiàn)對用戶手機業(yè)務(wù)的自動檢測。公開號為103064782A,公開日為2013-04-24的中國發(fā)明專利公開了一種獲取控件的方法及裝置,具體公開了一種根據(jù)Java的反射機制獲取Android手機控件,并進行自動化測試的方法及裝置。但是,以上測試方式存在有以下缺陷:
1、現(xiàn)有的自動化測試方法只能單獨測試Android設(shè)備,或者單獨測試iOS設(shè)備,而無法同時支持對Android設(shè)備和iOS設(shè)備的測試,因此實際應(yīng)用起來比較不方便;
2、現(xiàn)有的自動化測試方法在對控件進行識別時,只能識別常用的控件,而對于某些特殊非標(biāo)準(zhǔn)系統(tǒng)控件(例如加密鍵盤等)則無法進行識別,只能靠人工手動去測試,這會降低測試速度;在進行圖像比對時,則需要預(yù)先設(shè)置大量特定的場景圖片庫,這會大大增加實際的測試工作;
3、針對銀行移動應(yīng)用的測試場景,現(xiàn)有的測試方式無法與銀行移動業(yè)務(wù)系統(tǒng)進行實時聯(lián)動,且無法進行大規(guī)模批量并發(fā)測試。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題之一,在于提供一種銀行手機應(yīng)用自動化測試方法,通過該方法來實現(xiàn)對銀行手機應(yīng)用的自動化測試,提高測試效率。
本發(fā)明是這樣實現(xiàn)技術(shù)問題之一的:一種銀行手機應(yīng)用自動化測試方法,所述方法包括如下步驟:
步驟1、手機適配器集群監(jiān)聽獲取手機設(shè)備集群的手機信息,并通過局域網(wǎng)將手機信息發(fā)送給自動化測試服務(wù)器,自動化測試服務(wù)器將手機信息展示到管理終端上;
步驟2、通過管理終端上傳銀行移動應(yīng)用APP安裝包到自動化測試服務(wù)器,并下發(fā)安裝指令給手機適配器集群,手機適配器集群對接入的手機設(shè)備集群進行APP安裝;
步驟3、編寫Python自動化測試腳本,并通過管理終端將編好的測試腳本上傳給自動化測試服務(wù)器,其中,所述測試腳本由控件識別以及相應(yīng)的控件操作組成;
步驟4、通過管理終端從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群,并將測試任務(wù)下發(fā)給手機適配器集群,由手機適配器集群根據(jù)Python自動化測試腳本執(zhí)行對手機設(shè)備集群的測試。
進一步地,在所述步驟3中,所述控件識別具體包括如下步驟:
步驟A1、通過Appium獲取和識別手機設(shè)備Android或iOS系統(tǒng)的業(yè)務(wù)操作界面展示的所有控件;
步驟A2、對Appium無法識別的控件進行OCR文本識別;
其中,所述步驟A2具體包括:
步驟A21、截取手機設(shè)備當(dāng)前屏幕圖片并保存;
步驟A22、將截取的當(dāng)前屏幕圖片上傳給手機適配器,由手機適配器從當(dāng)前屏幕圖片中裁剪出要進行文本識別的控件圖片,并對裁剪出的控件圖片進行壓縮處理;
步驟A23、手機適配器將壓縮后的控件圖片上傳給自動化測試服務(wù)器,由自動化測試服務(wù)器將控件圖片轉(zhuǎn)發(fā)給文本識別服務(wù)器集群,并通過文本識別服務(wù)器集群對控件圖片進行文本識別;
步驟A24、文本識別服務(wù)器集群將識別出的文本返回給自動化測試服務(wù)器,自動化測試服務(wù)器將識別出的文本轉(zhuǎn)發(fā)給手機適配器。
進一步地,所述步驟4具體包括:
步驟41、通過管理終端向自動化測試服務(wù)器下發(fā)測試請求,并從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群;
步驟42、自動化測試服務(wù)器根據(jù)選擇的Python自動化測試腳本和要進行測試的手機設(shè)備集群將測試任務(wù)下發(fā)給手機適配器集群;
步驟43、手機適配器集群接收到測試任務(wù)后,先通過Appium對接入的各手機設(shè)備進行控件識別,然后對Appium識別出的控件進行相應(yīng)的控件操作;對于通過Appium無法識別的控件,則先對控件進行OCR文本識別,然后對識別出的控件文本進行相應(yīng)的控件操作,從而完成對各手機設(shè)備的自動化測試;在測試過程中所產(chǎn)生的移動應(yīng)用業(yè)務(wù)數(shù)據(jù),則通過接入手機設(shè)備的專用無線網(wǎng)絡(luò)傳送給后臺銀行移動業(yè)務(wù)系統(tǒng);
步驟44、手機適配器集群將測試結(jié)果返回給自動化測試服務(wù)器,并由自動化測試服務(wù)器將測試結(jié)果展示到管理終端上。
進一步地,所述控件操作包括點擊、輸入、觸摸、下拉選擇以及雙擊操作。
進一步地,所述手機信息包括手機設(shè)備系列號、接入的手機適配器的系統(tǒng)類型、手機設(shè)備的系統(tǒng)類型以及手機設(shè)備的系統(tǒng)版本。
本發(fā)明要解決的技術(shù)問題之二,在于提供一種銀行手機應(yīng)用自動化測試系統(tǒng),通過該系統(tǒng)來實現(xiàn)對銀行手機應(yīng)用的自動化測試,提高測試效率。
本發(fā)明是這樣實現(xiàn)技術(shù)問題之二的:一種銀行手機應(yīng)用自動化測試系統(tǒng),所述系統(tǒng)包括手機信息獲取模塊、APP安裝模塊、腳本上傳模塊以及自動測試模塊:
所述手機信息獲取模塊,用于手機適配器集群監(jiān)聽獲取手機設(shè)備集群的手機信息,并通過局域網(wǎng)將手機信息發(fā)送給自動化測試服務(wù)器,自動化測試服務(wù)器將手機信息展示到管理終端上;
所述APP安裝模塊,用于通過管理終端上傳銀行移動應(yīng)用APP安裝包到自動化測試服務(wù)器,并下發(fā)安裝指令給手機適配器集群,手機適配器集群對接入的手機設(shè)備集群進行APP安裝;
所述腳本上傳模塊,用于編寫Python自動化測試腳本,并通過管理終端將編好的測試腳本上傳給自動化測試服務(wù)器,其中,所述測試腳本由控件識別以及相應(yīng)的控件操作組成;
所述自動測試模塊,用于通過管理終端從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群,并將測試任務(wù)下發(fā)給手機適配器集群,由手機適配器集群根據(jù)Python自動化測試腳本執(zhí)行對手機設(shè)備集群的測試。
進一步地,所述控件識別具體包括Appium識別模塊和OCR文本識別模塊:
所述Appium識別模塊,用于通過Appium獲取和識別手機設(shè)備Android或iOS系統(tǒng)的業(yè)務(wù)操作界面展示的所有控件;
所述OCR文本識別模塊,用于對Appium無法識別的控件進行OCR文本識別;
其中,所述OCR文本識別模塊具體包括:
圖片截取單元,用于截取手機設(shè)備當(dāng)前屏幕圖片并保存;
圖片裁剪單元,用于將截取的當(dāng)前屏幕圖片上傳給手機適配器,由手機適配器從當(dāng)前屏幕圖片中裁剪出要進行文本識別的控件圖片,并對裁剪出的控件圖片進行壓縮處理;
文本識別單元,用于手機適配器將壓縮后的控件圖片上傳給自動化測試服務(wù)器,由自動化測試服務(wù)器將控件圖片轉(zhuǎn)發(fā)給文本識別服務(wù)器集群,并通過文本識別服務(wù)器集群對控件圖片進行文本識別;
文本轉(zhuǎn)發(fā)單元,用于文本識別服務(wù)器集群將識別出的文本返回給自動化測試服務(wù)器,自動化測試服務(wù)器將識別出的文本轉(zhuǎn)發(fā)給手機適配器。
進一步地,所述自動測試模塊具體包括:
請求單元,用于通過管理終端向自動化測試服務(wù)器下發(fā)測試請求,并從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群;
任務(wù)下發(fā)單元,用于自動化測試服務(wù)器根據(jù)選擇的Python自動化測試腳本和要進行測試的手機設(shè)備集群將測試任務(wù)下發(fā)給手機適配器集群;
測試單元,用于手機適配器集群接收到測試任務(wù)后,先通過Appium對接入的各手機設(shè)備進行控件識別,然后對Appium識別出的控件進行相應(yīng)的控件操作;對于通過Appium無法識別的控件,則先對控件進行OCR文本識別,然后對識別出的控件文本進行相應(yīng)的控件操作,從而完成對各手機設(shè)備的自動化測試;在測試過程中所產(chǎn)生的移動應(yīng)用業(yè)務(wù)數(shù)據(jù),則通過接入手機設(shè)備的專用無線網(wǎng)絡(luò)傳送給后臺銀行移動業(yè)務(wù)系統(tǒng);
結(jié)果顯示單元,用于手機適配器集群將測試結(jié)果返回給自動化測試服務(wù)器,并由自動化測試服務(wù)器將測試結(jié)果展示到管理終端上。
進一步地,所述控件操作包括點擊、輸入、觸摸、下拉選擇以及雙擊操作。
進一步地,所述手機信息包括手機設(shè)備系列號、接入的手機適配器的系統(tǒng)類型、手機設(shè)備的系統(tǒng)類型以及手機設(shè)備的系統(tǒng)版本。
本發(fā)明具有如下優(yōu)點:1、引入了同時適用Android系統(tǒng)和iOS系統(tǒng)的手機適配器,可以適配不同平臺的手機設(shè)備實現(xiàn)跨平臺的自動化測試,統(tǒng)一了移動端的自動化測試工具,可以降低測試成本,并使測試更加方便;2、對Appium無法識別的控件引入了OCR文本識別技術(shù),可以減少在控件無法識別時需要進行人工手動測試的時間,可以實現(xiàn)銀行手機應(yīng)用的一站式自動化測試服務(wù),提高整體的測試效率;3、可以實現(xiàn)對手機設(shè)備集群(包括Android手機設(shè)備和iOS手機設(shè)備)進行銀行移動應(yīng)用APP批量并行安裝以及進行批量并發(fā)測試,這可以大大提高實際測試速率,并降低整體的測試成本以及降低應(yīng)用上線后可能發(fā)生的風(fēng)險問題;且在測試的過程中,可以通過專用無線網(wǎng)絡(luò)實現(xiàn)手機設(shè)備與銀行移動業(yè)務(wù)系統(tǒng)進行實時聯(lián)動。
附圖說明
下面參照附圖結(jié)合實施例對本發(fā)明作進一步的說明。
圖1為本發(fā)明需要使用到的硬件結(jié)構(gòu)框圖。
圖2為本發(fā)明銀行手機應(yīng)用自動化測試方法的流程框圖。
圖3為本發(fā)明中加密鍵盤的識別示意圖。
圖4為本發(fā)明銀行手機應(yīng)用自動化測試系統(tǒng)的結(jié)構(gòu)框圖。
圖5為本發(fā)明中自動測試模塊的結(jié)構(gòu)框圖。
圖6為本發(fā)明進行控件識別的結(jié)構(gòu)框圖。
具體實施方式
具體實施例一:
請參照圖1至圖3所示,一種銀行手機應(yīng)用自動化測試方法,該方法需要提供至少一手機設(shè)備集群(Android手機設(shè)備集群或者iOS手機設(shè)備集群)、一手機適配器集群、一自動化測試服務(wù)器、一管理終端、一文本識別服務(wù)器集群以及一后臺銀行移動業(yè)務(wù)系統(tǒng),其中,手機設(shè)備集群通過USB接入到手機適配器集群,手機設(shè)備集群通過專用無線網(wǎng)絡(luò)接入到后臺銀行移動業(yè)務(wù)系統(tǒng),手機適配器集群連接自動化測試服務(wù)器,自動化測試服務(wù)器連接文本識別服務(wù)器集群、管理終端和后臺銀行移動業(yè)務(wù)系統(tǒng)。所述方法包括如下步驟:
步驟1、手機適配器集群監(jiān)聽獲取手機設(shè)備集群的手機信息,并通過局域網(wǎng)(包括無線局域網(wǎng)或者有線局域網(wǎng))將手機信息發(fā)送給自動化測試服務(wù)器,自動化測試服務(wù)器將手機信息展示到管理終端上;所述手機信息包括手機設(shè)備系列號、接入的手機適配器的系統(tǒng)類型、手機設(shè)備的系統(tǒng)類型以及手機設(shè)備的系統(tǒng)版本。其中,手機適配器集群會定時監(jiān)聽USB連接手機設(shè)備集群(包括Android手機設(shè)備和iOS手機設(shè)備)的變化情況,Android手機設(shè)備監(jiān)聽的是“adb devices”信息,iOS手機設(shè)備監(jiān)聽的是“instruments–wdevices”信息,當(dāng)監(jiān)聽到USB接入手機設(shè)備集群時,就通過adb或者instruments獲取手機設(shè)備集群的手機信息。
步驟2、通過管理終端上傳銀行移動應(yīng)用APP安裝包到自動化測試服務(wù)器,并下發(fā)安裝指令給手機適配器集群,由手機適配器集群對接入的手機設(shè)備集群進行APP批量安裝;
步驟3、編寫Python自動化測試腳本,并通過管理終端將編好的測試腳本上傳給自動化測試服務(wù)器,其中,所述測試腳本由控件識別以及相應(yīng)的控件操作組成;在該步驟3中,所述控件操作包括點擊、輸入、觸摸、下拉選擇以及雙擊操作;
所述控件識別具體包括如下步驟:
步驟A1、通過Appium獲取和識別手機設(shè)備Android或iOS系統(tǒng)的業(yè)務(wù)操作界面展示的所有控件;例如,可以通過Appium提供的Android、iOS控件統(tǒng)一的識別方式find_element_by_id、find_element_by_name、find_element_by_link_text、find_element_by_class_name、find_element_by_class_name、find_element_by_accessibility_id等獲取常見的Android控件和iOS控件,其中,常見的Android控件包含:Image View、Button、Text View、WebView、List View、Image、Edit Text等;iOS控件包含:UIA Application、UIA Window、UIA Keyboard、UIA Button、UIA Web View、UIA Scroll View、UIA Text Field、UIA Secure Text Field等。
步驟A2、對Appium無法識別的控件進行OCR文本識別;
其中,所述步驟A2具體包括:
步驟A21、截取手機設(shè)備當(dāng)前屏幕圖片并保存;
步驟A22、將截取的當(dāng)前屏幕圖片上傳給手機適配器,由手機適配器從當(dāng)前屏幕圖片中裁剪出要進行文本識別的控件圖片,并對裁剪出的控件圖片進行壓縮處理;
步驟A23、手機適配器將壓縮后的控件圖片上傳給自動化測試服務(wù)器,由自動化測試服務(wù)器將控件圖片轉(zhuǎn)發(fā)給文本識別服務(wù)器集群(在具體實施時,可以通過負(fù)載均衡設(shè)備來實現(xiàn)將控件圖片分發(fā)給各文本識別服務(wù)器),并通過文本識別服務(wù)器集群對控件圖片進行文本識別;
步驟A24、文本識別服務(wù)器集群將識別出的文本返回給自動化測試服務(wù)器,自動化測試服務(wù)器將識別出的文本轉(zhuǎn)發(fā)給手機適配器。
請重點參照圖3所示,下面以加密鍵盤為例來對特殊非標(biāo)準(zhǔn)控件的文本識別做進一步說明:
B1、截取手機設(shè)備的當(dāng)前屏幕圖片,并將當(dāng)前屏幕圖像保存到手機設(shè)備中;
B2、通過手機設(shè)備將截取的當(dāng)前屏幕圖片上傳給手機適配器,由手機適配器從當(dāng)前屏幕圖片中裁剪出加密鍵盤圖片,并對裁剪出的加密鍵盤圖片進行壓縮處理;
B3、手機適配器將壓縮后的加密鍵盤圖片上傳給自動化測試服務(wù)器,由自動化測試服務(wù)器將加密鍵盤圖片轉(zhuǎn)發(fā)給對應(yīng)的OCR文本識別服務(wù)器,OCR文本識別服務(wù)器先識別出加密鍵盤的數(shù)字系列文本,得到帶順序的數(shù)字文本矩陣;
然后,建立各數(shù)字坐標(biāo)的二維映射:
其中,width為手機設(shè)備屏幕的寬度,height為加密鍵盤的高度,(X’,Y’)為加密鍵盤左上角第一個數(shù)字在整體手機設(shè)備屏幕的絕對坐標(biāo),a∈[0,1,2],b∈[0,1,2,3];
B4、根據(jù)各數(shù)字坐標(biāo)(X,Y)進行相關(guān)的觸摸操作,完成密碼輸入。
步驟4、通過管理終端從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群,并將測試任務(wù)下發(fā)給手機適配器集群(在實施時,可以采用負(fù)載均衡設(shè)備來分發(fā)測試任務(wù)給各手機適配器),由手機適配器集群根據(jù)Python自動化測試腳本執(zhí)行對手機設(shè)備集群的測試。該步驟4具體包括:
步驟41、通過管理終端向自動化測試服務(wù)器下發(fā)測試請求,并從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群;
步驟42、自動化測試服務(wù)器根據(jù)選擇的Python自動化測試腳本和要進行測試的手機設(shè)備集群將測試任務(wù)下發(fā)給手機適配器集群;
步驟43、手機適配器集群接收到測試任務(wù)后,先通過Appium對接入的各手機設(shè)備進行控件識別,然后對Appium識別出的控件進行相應(yīng)的控件操作;對于通過Appium無法識別的控件,則先對控件進行OCR文本識別,然后對識別出的控件文本進行相應(yīng)的控件操作,從而完成對各手機設(shè)備的自動化測試;同時,在測試過程中所產(chǎn)生的移動應(yīng)用業(yè)務(wù)數(shù)據(jù)(例如App登陸、轉(zhuǎn)賬、匯款等業(yè)務(wù)數(shù)據(jù)),則通過接入手機設(shè)備的專用無線網(wǎng)絡(luò)傳送給后臺銀行移動業(yè)務(wù)系統(tǒng);
步驟44、手機適配器集群將測試結(jié)果返回給自動化測試服務(wù)器,并由自動化測試服務(wù)器將測試結(jié)果展示到管理終端上。
具體實施例二:
請參照圖1、圖3-6所示,一種銀行手機應(yīng)用自動化測試系統(tǒng),該系統(tǒng)需要提供至少一手機設(shè)備集群(Android手機設(shè)備集群或者iOS手機設(shè)備集群)、一手機適配器集群、一自動化測試服務(wù)器、一管理終端、一文本識別服務(wù)器集群以及一后臺銀行移動業(yè)務(wù)系統(tǒng),其中,手機設(shè)備集群通過USB接入到手機適配器集群,手機設(shè)備集群通過專用無線網(wǎng)絡(luò)接入到后臺銀行移動業(yè)務(wù)系統(tǒng),手機適配器集群連接自動化測試服務(wù)器,自動化測試服務(wù)器連接文本識別服務(wù)器集群、管理終端和后臺銀行移動業(yè)務(wù)系統(tǒng)。所述系統(tǒng)包括手機信息獲取模塊、APP安裝模塊、腳本上傳模塊以及自動測試模塊:
所述手機信息獲取模塊,用于手機適配器集群監(jiān)聽獲取手機設(shè)備集群的手機信息,并通過局域網(wǎng)(包括無線局域網(wǎng)或者有線局域網(wǎng))將手機信息發(fā)送給自動化測試服務(wù)器,自動化測試服務(wù)器將手機信息展示到管理終端上;所述手機信息包括手機設(shè)備系列號、接入的手機適配器的系統(tǒng)類型、手機設(shè)備的系統(tǒng)類型以及手機設(shè)備的系統(tǒng)版本。其中,手機適配器集群會定時監(jiān)聽USB連接手機設(shè)備集群(包括Android手機設(shè)備和iOS手機設(shè)備)的變化情況,Android手機設(shè)備監(jiān)聽的是“adb devices”信息,iOS手機設(shè)備監(jiān)聽的是“instruments–w devices”信息,當(dāng)監(jiān)聽到USB接入手機設(shè)備集群時,就通過adb或者instruments獲取手機設(shè)備集群的手機信息。
所述APP安裝模塊,用于通過管理終端上傳銀行移動應(yīng)用APP安裝包到自動化測試服務(wù)器,并下發(fā)安裝指令給手機適配器集群,由手機適配器集群對接入的手機設(shè)備集群進行APP批量安裝;
所述腳本上傳模塊,用于編寫Python自動化測試腳本,并通過管理終端將編好的測試腳本上傳給自動化測試服務(wù)器,其中,所述測試腳本由控件識別以及相應(yīng)的控件操作組成;在該腳本上傳模塊中,所述控件操作包括點擊、輸入、觸摸、下拉選擇以及雙擊操作;
請重點參照圖6所示,所述控件識別具體包括Appium識別模塊和OCR文本識別模塊:
所述Appium識別模塊,用于通過Appium獲取和識別手機設(shè)備Android或iOS系統(tǒng)的業(yè)務(wù)操作界面展示的所有控件;例如,可以通過Appium提供的Android、iOS控件統(tǒng)一的識別方式find_element_by_id、find_element_by_name、find_element_by_link_text、find_element_by_class_name、find_element_by_class_name、find_element_by_accessibility_id等獲取常見的Android控件和iOS控件,其中,常見的Android控件包含:ImageView、Button、Text View、Web View、List View、Image、Edit Text等;iOS控件包含:UIA Application、UIA Window、UIA Keyboard、UIA Button、UIAWeb View、UIA Scroll View、UIA Text Field、UIA Secure Text Field等。
所述OCR文本識別模塊,用于對Appium無法識別的控件進行OCR文本識別;
其中,所述OCR文本識別模塊具體包括:
圖片截取單元,用于截取手機設(shè)備當(dāng)前屏幕圖片并保存;
圖片裁剪單元,用于將截取的當(dāng)前屏幕圖片上傳給手機適配器,由手機適配器從當(dāng)前屏幕圖片中裁剪出要進行文本識別的控件圖片,并對裁剪出的控件圖片進行壓縮處理;
文本識別單元,用于手機適配器將壓縮后的控件圖片上傳給自動化測試服務(wù)器,由自動化測試服務(wù)器將控件圖片轉(zhuǎn)發(fā)給文本識別服務(wù)器集群(在具體實施時,可以通過負(fù)載均衡設(shè)備來實現(xiàn)將控件圖片分發(fā)給各文本識別服務(wù)器),并通過文本識別服務(wù)器集群對控件圖片進行文本識別;
文本轉(zhuǎn)發(fā)單元,用于文本識別服務(wù)器集群將識別出的文本返回給自動化測試服務(wù)器,自動化測試服務(wù)器將識別出的文本轉(zhuǎn)發(fā)給手機適配器。
請重點參照圖3所示,下面以加密鍵盤為例來對特殊非標(biāo)準(zhǔn)控件的文本識別做進一步說明:
B1、截取手機設(shè)備的當(dāng)前屏幕圖片,并將當(dāng)前屏幕圖像保存到手機設(shè)備中;
B2、通過手機設(shè)備將截取的當(dāng)前屏幕圖片上傳給手機適配器,由手機適配器從當(dāng)前屏幕圖片中裁剪出加密鍵盤圖片,并對裁剪出的加密鍵盤圖片進行壓縮處理;
B3、手機適配器將壓縮后的加密鍵盤圖片上傳給自動化測試服務(wù)器,由自動化測試服務(wù)器將加密鍵盤圖片轉(zhuǎn)發(fā)給對應(yīng)的OCR文本識別服務(wù)器,OCR文本識別服務(wù)器先識別出加密鍵盤的數(shù)字系列文本,得到帶順序的數(shù)字文本矩陣;
然后,建立各數(shù)字坐標(biāo)的二維映射:
其中,width為手機設(shè)備屏幕的寬度,height為加密鍵盤的高度,(X’,Y’)為加密鍵盤左上角第一個數(shù)字在整體手機設(shè)備屏幕的絕對坐標(biāo),a∈[0,1,2],b∈[0,1,2,3];
B4、根據(jù)各數(shù)字坐標(biāo)(X,Y)進行相關(guān)的觸摸操作,完成密碼輸入。
所述自動測試模塊,用于通過管理終端從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群,并將測試任務(wù)下發(fā)給手機適配器集群(在實施時,可以采用負(fù)載均衡設(shè)備來分發(fā)測試任務(wù)給各手機適配器),由手機適配器集群根據(jù)Python自動化測試腳本執(zhí)行對手機設(shè)備集群的測試。該自動測試模塊具體包括:
請求單元,用于通過管理終端向自動化測試服務(wù)器下發(fā)測試請求,并從自動化測試服務(wù)器中選擇Python自動化測試腳本和要測試的手機設(shè)備集群;
任務(wù)下發(fā)單元,用于自動化測試服務(wù)器根據(jù)選擇的Python自動化測試腳本和要進行測試的手機設(shè)備集群將測試任務(wù)下發(fā)給手機適配器集群;
測試單元,用于手機適配器集群接收到測試任務(wù)后,先通過Appium對接入的各手機設(shè)備進行控件識別,然后對Appium識別出的控件進行相應(yīng)的控件操作;對于通過Appium無法識別的控件,則先對控件進行OCR文本識別,然后對識別出的控件文本進行相應(yīng)的控件操作,從而完成對各手機設(shè)備的自動化測試;同時,在測試過程中所產(chǎn)生的移動應(yīng)用業(yè)務(wù)數(shù)據(jù)(例如App登陸、轉(zhuǎn)賬、匯款等業(yè)務(wù)數(shù)據(jù)),則通過接入手機設(shè)備的專用無線網(wǎng)絡(luò)傳送給后臺銀行移動業(yè)務(wù)系統(tǒng);
結(jié)果顯示單元,用于手機適配器集群將測試結(jié)果返回給自動化測試服務(wù)器,并由自動化測試服務(wù)器將測試結(jié)果展示到管理終端上。
綜上所述,本發(fā)明具有如下優(yōu)點:1、引入了同時適用Android系統(tǒng)和iOS系統(tǒng)的手機適配器,可以適配不同平臺的手機設(shè)備實現(xiàn)跨平臺的自動化測試,統(tǒng)一了移動端的自動化測試工具,可以降低測試成本,并使測試更加方便;2、對Appium無法識別的控件引入了OCR文本識別技術(shù),可以減少在控件無法識別時需要進行人工手動測試的時間,可以實現(xiàn)銀行手機應(yīng)用的一站式自動化測試服務(wù),提高整體的測試效率;3、可以實現(xiàn)對手機設(shè)備集群(包括Android手機設(shè)備和iOS手機設(shè)備)進行銀行移動應(yīng)用APP批量并行安裝以及進行批量并發(fā)測試,這可以大大提高實際測試速率,并降低整體的測試成本以及降低應(yīng)用上線后可能發(fā)生的風(fēng)險問題;且在測試的過程中,可以通過專用無線網(wǎng)絡(luò)實現(xiàn)手機設(shè)備與銀行移動業(yè)務(wù)系統(tǒng)進行實時聯(lián)動。
雖然以上描述了本發(fā)明的具體實施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護的范圍內(nèi)。