本發(fā)明涉及一種自動化測試方法,尤其是一種基于APPIUM的智能快遞柜的自動化測試方法。
背景技術(shù):
隨著智能快遞柜的飛速發(fā)展,智能快遞柜上的功能模塊越來越多、系統(tǒng)發(fā)布頻率越來越高、周期越來越短,智能快遞柜測試過程(尤其是功能測試、壓力測試、系統(tǒng)測試)中經(jīng)常會耗費大量的人力和精力。因此,研究出一種基于APPIUM的智能快遞柜的自動化測試方法顯得非常重要。目前已經(jīng)存在的一些基礎(chǔ)的自動化測試手段在應(yīng)用于智能快遞柜上的自動化測試也存在兼容性和實用性不高的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是智能快遞柜上的自動化測試并自動打印出自定義格式的報告文件。
為了解決上述技術(shù)問題,本發(fā)明提供了一種基于APPIUM的智能快遞柜的自動化測試方法,包括如下步驟:
步驟1,部署測試環(huán)境:組裝智能快遞柜完畢,將智能快遞柜的主板接通電源后,通過公口A型USB線連接電腦和智能快遞柜主板;用電腦在智能快遞柜上安裝apk,在電腦上準備基礎(chǔ)測試數(shù)據(jù);
步驟2,搭建測試框架:安裝android的SKD調(diào)用智能快遞柜的Android系統(tǒng)層和獲取元素定位;電腦上安裝Python客戶端編寫自動化腳本;使用Python的pip install Selenium命令來安裝Selenium,以便后續(xù)Appium服務(wù)端可以調(diào)用Selenium接口來執(zhí)行自動化命令;安裝Node.js、Appium客戶端和服務(wù)端運行自動化腳本;安裝Apache Ant,編譯出自定義存儲格式的測試報告;具體搭建步驟如下:
1)在電腦上安裝安裝 node.js,本工具是Appium運行的基礎(chǔ)依賴環(huán)境;
2)在電腦上安裝android的SKD,添加ANDROID_HOME系統(tǒng)環(huán)境變量,路徑為SDK所在目錄;把 tools platform-tools 兩個目錄加入到系統(tǒng)的Path路徑里;
3)在電腦上安裝安裝 Python客戶端,將Python路徑添加到系統(tǒng)Path路徑中;
4)使用Python的pip install Selenium命令來安裝Selenium;
5)在電腦上安裝Apache Ant,新增環(huán)境變量ANT_HOME,解壓Apache Ant文件夾,并把路徑加入環(huán)境變量ANT_HOME中;在系統(tǒng)變量的Path:中添加內(nèi)容%ANT_HOME%\bin;
6)在電腦上安裝Appium客戶端和服務(wù)端;
步驟3,啟動Appium服務(wù)端:打開Appium客戶端,設(shè)置要連接的快遞柜名稱,設(shè)置Appium服務(wù)端的ip地址和監(jiān)聽端口;默認ip為本機地址127.0.0.1,默認端口號4723;點擊Appium客戶端上的開始運行按鈕,啟動Appium服務(wù)端成功;
步驟4,獲取控件元素定位:打開android的SKD,啟動SKD中的UIAUTORMATORVIEWER,截取智能快遞柜的屏幕內(nèi)容,獲取元素path、tag、text、起始橫坐標,起始縱坐標,終止橫坐標,終止縱坐標,用于唯一的標識快遞柜界面元素的路徑、標記名和名稱,用于步驟5自動化腳本中對特定元素下達指定命令;
步驟5,編寫自動化測試腳本:打開Python客戶端的編輯器,調(diào)用Appium服務(wù)端的API如find_element_by_xpath(path)和find_element_by_tag_name(tag)來定位智能快遞柜元素和控件,此處所涉及的path、tag由步驟4獲得;調(diào)用Appium服務(wù)端的API如click()、swipe(起始橫坐標,起始縱坐標,終止橫坐標,終止縱坐標)、send_keys( value)、keyevent(keycode)、lock(time)、hide_keyboard()、open_notifications()來向智能快遞柜的發(fā)送點擊、滑動、文本輸入、發(fā)送按鍵、鎖定、收起鍵盤、打開通知欄指令,此命令中涉及的起始橫坐標,起始縱坐標,終止橫坐標,終止縱坐標由步驟4獲得,value、keycode和time是可以自定義的字符串;調(diào)用Appium服務(wù)端的API如get_attribute(name)來獲取智能快遞柜元素的各種屬性值如名稱、編號、是否獲取焦點,用于判斷智能快遞柜上的信息顯示是否正確;調(diào)用Python服務(wù)端的API接口編寫軟件自動化腳本和硬件自動化腳本;
步驟6,Appium處理命令:自動化測試腳本通過Appium服務(wù)端的內(nèi)層框架RobotFrameWork將命令傳遞給Appium客戶端;Appium 客戶端將接受到的命令發(fā)送給Appium服務(wù)端;Appium 服務(wù)端監(jiān)聽端口4723,接收Appium 客戶端發(fā)送來的命令,翻譯這些命令,把這些命令轉(zhuǎn)成智能快遞柜可以理解的ADB命令形式后,發(fā)送給智能快遞柜;
步驟7,智能快遞柜處理命令:所述智能快遞柜調(diào)用android系統(tǒng)的Instrumentation Api、Uiautomator Api接口來接收指令和執(zhí)行指令;智能快遞柜返回執(zhí)行結(jié)果給APPIUM服務(wù)端;
步驟8, APPIUM調(diào)用Apache Ant解析執(zhí)行報告,并進行打印。
具體的,步驟5)中Appium Api接口調(diào)用步驟2)中安裝的Selenium 的client庫;相比其他的移動自動化測試工具,Appium測試由于調(diào)用了Selenium的client庫使其可以使用任意的語言,包括Python、Ruby、Node.js、Objective-C等。
本發(fā)明的有益效果列舉如下:
(1)兼容性高:兼容各個版本的Android系統(tǒng),兼容不同類型的智能快遞柜主板;
(1)穩(wěn)定性高:采用Python+Appium結(jié)合的方式,服務(wù)端獨立工作。
(2)實用性高:完善的api,可以實現(xiàn)點擊、滑動、文本輸入、發(fā)送按鍵命令、鎖定、收起鍵盤、打開通知欄等動作,代替人工手動測試智能快遞柜時繁瑣的操作步驟。同時避免了人工操作的失誤。
(3)自定義測試報告打印格式和存儲格式,完美兼容了不同人的閱讀習慣,提高了報告分析的效率。
附圖說明
圖1為本發(fā)明的方法流程圖;
圖2為本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
如圖1-2所示,本發(fā)明所指自動化測試方法由Appium的客戶端、Appium的服務(wù)端、ADB、智能快遞柜和硬件主板組成,實現(xiàn)測試功能。
本發(fā)明方法包括以下步驟:
步驟1,部署測試環(huán)境:組裝智能快遞柜完畢,將智能快遞柜的主板接通電源后,為智能快遞柜的電腦安裝apk;利用apk為電腦編譯基礎(chǔ)測試數(shù)據(jù);
步驟2,搭建測試框架:通過apk在電腦上安裝Python客戶端、Nodejs、android的SKD、Apache Ant、JDK、Apache Maven和appium客戶端和服務(wù)端;
步驟3,獲取控件元素定位:打開Python編輯器,啟動編輯器中的UIAUTORMATORVIEWER,截取智能快遞柜的屏幕內(nèi)容,獲取元素id、class、text;
步驟4,編寫自動化測試腳本:打開Python編輯器,調(diào)用APPIUM API和PYTHON API接口編寫軟件自動化腳本和硬件自動化腳本;
步驟5,Appium處理命令:啟動APPIUM服務(wù)端,自動化測試腳本通過RobotFrameWork將命令傳遞給Appium客戶端;Appium 客戶端將接受到的命令發(fā)送給Appium服務(wù)端;Appium 服務(wù)端監(jiān)聽一個端口,接收Appium 客戶端發(fā)送來的命令,翻譯這些命令,把這些命令轉(zhuǎn)成智能快遞柜可以理解的ADB命令形式后,發(fā)送給智能快遞柜;
步驟6,智能快遞柜處理命令:所述智能快遞柜底層用android的Instrumentation Api、Uiautomator Api接口;智能快遞柜接收指令,通過調(diào)用android的Instrumentation Api和Uiautomator Api接口來執(zhí)行指令;智能快遞柜返回執(zhí)行結(jié)果給APPIUM服務(wù)端;
步驟7, APPIUM解析執(zhí)行報告,并進行打印。
具體實現(xiàn)包括以下內(nèi)容:
1.使用Python編寫軟件自動化腳本和硬件自動化腳本,調(diào)用Python Api和Appium Api接口
2.Appium Api接口調(diào)用Selenium Api的接口;
3.自動化腳本通過RobotFrameWork將命令傳遞給Appium的客戶端(以下簡稱Appium client);
4.Appium client將接受到的命令發(fā)送給Appium的服務(wù)端(以下簡稱Appium server);
5.Appium server監(jiān)聽一個端口,接收Appium client發(fā)送來的command,翻譯這些命令,把這些command轉(zhuǎn)成智能快遞柜可以理解的形式(即ADB命令)發(fā)送給智能快遞柜,然后智能快遞柜執(zhí)行完command后把執(zhí)行結(jié)果返回給Appium server,Appium server再把執(zhí)行結(jié)果返回給Appium client;
6.智能快遞柜底層用android的Instrumentation Api、Uiautomator Api接口。
本發(fā)明的實現(xiàn)流程包含編寫自動化腳本命令、Appium處理命令、智能快遞柜處理命令、Appium client自動調(diào)用Apache Ant解析執(zhí)行報告,并進行打印。
測試人員只需要查看執(zhí)行結(jié)果報告即可。
編寫自動化腳本命令流程包括以下步驟:
(1)安裝Python客戶端;
(2)打開Python編輯器;
(3)打開uiautomatorviewer,獲取元素定位;
(4)引用Python api和Appium api編寫腳本。
Appium處理命令流程包括以下步驟:
(1)安裝appium客戶端和服務(wù)端
(2)啟動appium服務(wù)端
(3)Appium client發(fā)送命令
(4)Appium server接收命令
(5)Appium server發(fā)送命令;
智能快遞柜處理命令流程包括以下步驟:
(1)連接智能快遞柜
(2)智能快遞柜接收命令
(3)智能快遞柜執(zhí)行命令
(4)智能快遞柜返回執(zhí)行結(jié)果
Appium client自動打印報告流程包括以下步驟:
(1)Appium client接收報告
(2)Appium client調(diào)用Apache Ant解析報告
(3)Appium client打印報告。