本發(fā)明涉及移動(dòng)終端測試領(lǐng)域,尤其涉及一種自動(dòng)化測試方法、裝置和計(jì)算設(shè)備。
背景技術(shù):
隨著移動(dòng)通信技術(shù)的不斷發(fā)展和成熟,各種移動(dòng)端應(yīng)用及操作系統(tǒng)層出不窮。為了保證應(yīng)用及操作系統(tǒng)能夠正常工作,在發(fā)布前需要對其進(jìn)行測試。Monkey測試是一種常用的測試方法?,F(xiàn)有的Monkey測試需要將PC端與移動(dòng)終端連接,然后在PC端通過CMD命令來執(zhí)行測試。這種方法中,執(zhí)行測試、分析測試結(jié)果、將測試結(jié)果反饋給研發(fā)人員等均需要手動(dòng)執(zhí)行,需要人工干預(yù)較多,操作繁瑣,效率低下。
針對以上缺陷,現(xiàn)有的處理方法會(huì)在PC系統(tǒng)上構(gòu)建Monkey執(zhí)行系統(tǒng),這在一定程度上方便了Monkey測試的執(zhí)行。但該方法僅簡化了對Monkey測試命令的構(gòu)建,在測試過程仍然需要測試人員手動(dòng)執(zhí)行,并且反饋測試結(jié)果。整個(gè)測試流程不夠自動(dòng)化,效率低下,對測試結(jié)果的展示也不夠及時(shí)和直觀。
技術(shù)實(shí)現(xiàn)要素:
為此,本發(fā)明提供一種自動(dòng)化測試方法、裝置和計(jì)算設(shè)備,以力圖解決或者至少緩解上面存在的問題。
根據(jù)本發(fā)明的一個(gè)方面,提供一種自動(dòng)化測試方法,在計(jì)算設(shè)備中執(zhí)行,該方法包括:將所述計(jì)算設(shè)備與至少一個(gè)被測移動(dòng)終端建立連接;判斷是否達(dá)到預(yù)定時(shí)間,若是,則:將被測移動(dòng)終端的測試對象更新至最新版本;獲取第一文件中存儲(chǔ)的第一測試命令,所述第一測試命令為上一次自動(dòng)化測試過程中測試對象出錯(cuò)的測試命令;獲取第二文件中存儲(chǔ)的第二測試命令,所述第二測試命令為為本次自動(dòng)化測試設(shè)置的測試命令;在所述測試對象上執(zhí)行所述第一測試命令和第二測試命令;記錄測試情況;根據(jù)所述測試情況生成測試報(bào)告,將所述測試報(bào)告通過郵件發(fā)送至相關(guān)人員。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,預(yù)定時(shí)間為晚上12點(diǎn)。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,測試對象包括應(yīng)用和操作系統(tǒng)。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,將被測移動(dòng)終端的測試對象更新至最新版本的步驟包括:判斷所述測試對象的版本號(hào)與服務(wù)器中存儲(chǔ)的最新版本的版本號(hào)是否相同,若不同,則:若測試對象為應(yīng)用,則通過adb命令卸載舊版本的所述應(yīng)用,從服務(wù)器處獲取所述應(yīng)用的最新版本的安裝包,并將所述最新版本的安裝包安裝至所述被測移動(dòng)終端;若測試對象為操作系統(tǒng),則通過adb命令將所述操作系統(tǒng)的OTA升級文件拷貝至被測移動(dòng)終端中,對所述操作系統(tǒng)進(jìn)行升級。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,在所述被測移動(dòng)終端上執(zhí)行所述第一測試命令和第二測試命令的步驟包括:將所述第一測試命令和所述第二測試命令存入待測命令數(shù)組;對于待測命令數(shù)組中的每一個(gè)待測命令,選取一個(gè)當(dāng)前未執(zhí)行測試的被測移動(dòng)終端,在該被測移動(dòng)終端的測試對象上執(zhí)行該待測命令。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,記錄測試情況的步驟包括:為測試日志和錄屏視頻指定在服務(wù)器中的保存路徑;開啟日志監(jiān)聽進(jìn)程和錄屏進(jìn)程,所述日志監(jiān)聽進(jìn)程適于監(jiān)聽測試日志,所述錄屏進(jìn)程適于每隔第一間隔時(shí)間對被測移動(dòng)終端的屏幕進(jìn)行錄像;當(dāng)所述日志監(jiān)聽進(jìn)程在測試日志中監(jiān)聽到所述測試對象出錯(cuò)的信息時(shí),將記錄測試對象出錯(cuò)信息的測試日志和記錄了測試對象出錯(cuò)現(xiàn)場的錄屏視頻存儲(chǔ)至所述服務(wù)器中的保存路徑,并將使測試對象出錯(cuò)的待測命令存儲(chǔ)至所述第一文件。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,第一間隔時(shí)間為3分鐘。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,測試報(bào)告為html格式。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試方法中,測試報(bào)告中包括測試對象出錯(cuò)時(shí)的測試日志鏈接和錄屏視頻鏈接。
根據(jù)本發(fā)明的一個(gè)方面,提供一種自動(dòng)化測試裝置,駐留于計(jì)算設(shè)備中,該裝置包括:定時(shí)模塊,適于判斷是否達(dá)到預(yù)定時(shí)間,若是,則自動(dòng)構(gòu)建測試環(huán)境,開始自動(dòng)化測試過程;更新模塊,適于將被測移動(dòng)終端的測試對象更新至最新版本;測試模塊,適于獲取第一文件中存儲(chǔ)的第一測試命令和第二文件中存儲(chǔ)的第二測試命令,并在所述測試對象上執(zhí)行所述第一測試命令和第二測試命令,其中,所述第一測試命令為上一次自動(dòng)化測試過程中測試對象出錯(cuò)的測試命令,所述第二測試命令為為本次自動(dòng)化測試設(shè)置的測試命令;記錄模塊,適于記錄測試情況;反饋模塊,適于根據(jù)所述測試情況生成測試報(bào)告,將所述測試報(bào)告通過郵件發(fā)送至相關(guān)人員。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,定時(shí)模塊還適于將所述預(yù)定時(shí)間設(shè)置為晚上12點(diǎn)。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,測試對象包括應(yīng)用和操作系統(tǒng)。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,更新模塊進(jìn)一步適于:判斷所述測試對象的版本號(hào)與服務(wù)器中存儲(chǔ)的最新版本的版本號(hào)是否相同,若不同,則:若測試對象為應(yīng)用,則通過adb命令卸載舊版本的所述應(yīng)用,從服務(wù)器處獲取所述應(yīng)用的最新版本的安裝包,并將所述最新版本的安裝包安裝至所述被測移動(dòng)終端;若測試對象為操作系統(tǒng),則通過adb命令將所述操作系統(tǒng)的OTA升級文件拷貝至被測移動(dòng)終端中,對所述操作系統(tǒng)進(jìn)行升級。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,測試模塊進(jìn)一步適于:將所述第一測試命令和所述第二測試命令存入待測命令數(shù)組;對于待測命令數(shù)組中的每一個(gè)待測命令,選取一個(gè)當(dāng)前未執(zhí)行測試的被測移動(dòng)終端,在該被測移動(dòng)終端的測試對象上執(zhí)行該待測命令。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,記錄模塊進(jìn)一步適于:為測試日志和錄屏視頻指定在服務(wù)器中的保存路徑;開啟日志監(jiān)聽進(jìn)程和錄屏進(jìn)程,所述日志監(jiān)聽進(jìn)程適于監(jiān)聽測試日志,所述錄屏進(jìn)程適于每隔第一間隔時(shí)間對被測移動(dòng)終端的屏幕進(jìn)行錄像;當(dāng)所述日志監(jiān)聽進(jìn)程在測試日志中監(jiān)聽到所述測試對象出錯(cuò)的信息時(shí),將記錄測試對象出錯(cuò)信息的測試日志和記錄了測試對象出錯(cuò)現(xiàn)場的錄屏視頻存儲(chǔ)至所述服務(wù)器中的保存路徑,并將使測試對象出錯(cuò)的待測命令存儲(chǔ)至所述第一文件。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,第一間隔時(shí)間為3分鐘。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,測試報(bào)告為html格式。
可選地,在根據(jù)本發(fā)明的自動(dòng)化測試裝置中,測試報(bào)告中包括測試對象出錯(cuò)時(shí)的測試日志鏈接和錄屏視頻鏈接。
根據(jù)本發(fā)明的一個(gè)方面,提供一種計(jì)算設(shè)備,包括如上自動(dòng)化測試裝置。
本發(fā)明提供的技術(shù)方案實(shí)現(xiàn)了Monkey測試的自動(dòng)化,能夠每天定時(shí)執(zhí)行測試并記錄測試情況。當(dāng)測試結(jié)束后,根據(jù)測試情況生成測試報(bào)告,并將測試報(bào)告通過郵件發(fā)送至相關(guān)研發(fā)人員。本方案減少了測試過程中的人工干預(yù),節(jié)約了人力成本,極大地提高了測試效率。此外,測試報(bào)告中包括出錯(cuò)的測試日志鏈接和錄屏視頻鏈接,相關(guān)研發(fā)人員可以通過點(diǎn)擊鏈接的方式直接查看出錯(cuò)時(shí)的測試日志和錄屏視頻,便于對錯(cuò)誤進(jìn)行定位,提高了研發(fā)人員解決問題的效率。
附圖說明
為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實(shí)踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。
圖1示出了包括根據(jù)本發(fā)明一個(gè)實(shí)施例的自動(dòng)化測試裝置的計(jì)算設(shè)備100的結(jié)構(gòu)圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的自動(dòng)化測試裝置200的結(jié)構(gòu)圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的包括測試報(bào)告的郵件的示意圖;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的自動(dòng)化測試方法400的流程圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了包括根據(jù)本發(fā)明一個(gè)實(shí)施例的自動(dòng)化測試裝置的計(jì)算設(shè)備100的結(jié)構(gòu)圖。如圖1所示,計(jì)算設(shè)備100中包括系統(tǒng)存儲(chǔ)器106,系統(tǒng)存儲(chǔ)器106可以包括操作系統(tǒng)120、一個(gè)或者多個(gè)應(yīng)用122以及程序數(shù)據(jù)126。在一些實(shí)施方式中,應(yīng)用122可以布置為在操作系統(tǒng)上利用程序數(shù)據(jù)126進(jìn)行操作。在本發(fā)明中,應(yīng)用122可以被配置為包括自動(dòng)化測試裝置200。根據(jù)一種實(shí)施例,自動(dòng)化測試裝置200可以是通過Jenkins搭建的持續(xù)集成系統(tǒng)。自動(dòng)化測試裝置200可以自動(dòng)定時(shí)運(yùn)行Monkey測試,并自動(dòng)更新測試對象,當(dāng)出現(xiàn)錯(cuò)誤(Bug)時(shí),自動(dòng)將出錯(cuò)時(shí)的測試日志和錄屏視頻上傳至服務(wù)器。當(dāng)測試結(jié)束后,根據(jù)測試情況生成測試報(bào)告,并將測試報(bào)告通過郵件發(fā)送至相關(guān)研發(fā)人員。測試報(bào)告中包括出錯(cuò)的測試日志鏈接和錄屏視頻鏈接,相關(guān)研發(fā)人員可以通過點(diǎn)擊鏈接的方式直接查看出錯(cuò)時(shí)的測試日志和錄屏視頻。自動(dòng)化測試裝置200減少了測試過程中的人工干預(yù),節(jié)約了人力成本,極大地提高了測試效率,同時(shí),也便于對錯(cuò)誤進(jìn)行定位,提高了研發(fā)人員解決問題的效率。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的自動(dòng)化測試裝置200的結(jié)構(gòu)圖。如圖2所示,自動(dòng)化測試裝置200包括定時(shí)模塊210、更新模塊220、測試模塊230、記錄模塊240和反饋模塊250。
定時(shí)模塊210適于判斷是否達(dá)到預(yù)定時(shí)間,若是,則自動(dòng)構(gòu)建測試環(huán)境,開始自動(dòng)化測試過程。根據(jù)一種實(shí)施例,自動(dòng)化測試裝置200是通過Jenkins搭建的持續(xù)集成系統(tǒng),定時(shí)模塊210通過設(shè)置Jenkins系統(tǒng)中的Build periodically參數(shù)來實(shí)現(xiàn)定時(shí)構(gòu)建。根據(jù)一種實(shí)施例,定時(shí)模塊210可以將預(yù)定時(shí)間設(shè)置為每天晚上12點(diǎn),那么每到晚上12點(diǎn)將自動(dòng)構(gòu)建測試環(huán)境并開啟自動(dòng)化測試過程。當(dāng)然,在其他的實(shí)施例中,定時(shí)模塊210還可以采用其他的實(shí)現(xiàn)方式,預(yù)定時(shí)間也可以設(shè)置為其他數(shù)值,本發(fā)明對定時(shí)模塊的具體實(shí)現(xiàn)方式以及預(yù)定時(shí)間的值的設(shè)定并無限制。
更新模塊220適于將被測移動(dòng)終端的測試對象更新至最新版本。根據(jù)一種實(shí)施例,自動(dòng)化測試裝置200是通過Jenkins搭建的持續(xù)集成系統(tǒng),更新模塊220通過Subversion Plugin插件來配置測試對象的版本在服務(wù)器中的下載地址。當(dāng)檢測到被測移動(dòng)終端的測試對象的版本號(hào)與服務(wù)器中存儲(chǔ)的最新版本號(hào)不同時(shí),從配置好的下載地址處下載最新版本的安裝文件,更新被測移動(dòng)終端中的測試對象的版本。測試對象可以是移動(dòng)終端應(yīng)用或操作系統(tǒng)。當(dāng)測試對象為應(yīng)用時(shí),更新模塊220通過adb命令卸載舊版本的應(yīng)用,從配置好的服務(wù)器下載地址處獲取該應(yīng)用最新版本的安裝包,并將最新版本的安裝包安裝至被測移動(dòng)終端。當(dāng)測試對象為操作系統(tǒng)時(shí),更新模塊220從配置好的服務(wù)器下載地址處獲取該操作系統(tǒng)的OTA升級文件,通過adb命令將該OTA升級文件拷貝至被測移動(dòng)終端中,對操作系統(tǒng)進(jìn)行升級。
測試模塊230適于在測試對象上執(zhí)行測試命令,即執(zhí)行具體的測試過程。測試模塊230可以是Jenkins系統(tǒng)中的一個(gè)模塊,也可以是一個(gè)Jenkins系統(tǒng)調(diào)用的用于執(zhí)行Monkey測試的應(yīng)用程序。當(dāng)測試模塊230為一個(gè)執(zhí)行Monkey測試的應(yīng)用程序時(shí),更新模塊220也可以通過Subversion Plugin插件配置該應(yīng)用程序?qū)?yīng)的下載地址,在每次執(zhí)行自動(dòng)化測試時(shí),將該執(zhí)行Monkey測試的應(yīng)用程序更新至最新版本。
在每次自動(dòng)化測試中,測試模塊230首先從計(jì)算設(shè)備的文本文件中獲取測試命令。具體來說,測試模塊230獲取第一文件中存儲(chǔ)的第一測試命令和第二文件中存儲(chǔ)的第二測試命令,并在測試對象上執(zhí)行所述第一測試命令和第二測試命令。其中,第一測試命令為上一次自動(dòng)化測試過程中測試對象出錯(cuò)的測試命令,第二測試命令為為本次自動(dòng)化測試設(shè)置的測試命令。也就是說,對于每次自動(dòng)化測試,執(zhí)行的測試命令包括上次出錯(cuò)的測試命令和本次設(shè)置的測試命令。在每次自動(dòng)化測試中,測試對象均被更新至最新版本,而上次出錯(cuò)的測試命令是由舊版本的測試對象得出,因此,在每次自動(dòng)化測試中執(zhí)行第一測試命令和第二測試命令的方案可以檢測新版本的測試對象是否還存在舊版本中出現(xiàn)的問題。
根據(jù)一種實(shí)施例,第一文件可以是存儲(chǔ)于計(jì)算設(shè)備中的名為errorcommand.txt的文本文件,該文件用于存儲(chǔ)第一測試命令,即上一次自動(dòng)化測試過程中測試對象出錯(cuò)的測試命令。根據(jù)上一次自動(dòng)化測試的測試結(jié)果,errorcommand.txt中可能有一條或多條第一測試命令,當(dāng)然,errorcommand.txt文件也可能為空。第二文件可以是存儲(chǔ)于計(jì)算設(shè)備中的名為monkeycommand.txt的文本文件,該文件用于存儲(chǔ)第二測試命令,即為本次自動(dòng)化測試設(shè)置的測試命令。第二測試命令為測試人員所設(shè)置,可以有一條或多條,monkeycommand.txt一般不會(huì)為空。
根據(jù)一種實(shí)施例,測試模塊230可以按照以下步驟在測試對象上執(zhí)行所述第一測試命令和第二測試命令:
首先,測試模塊230從第一文件中獲取第一測試命令,從第二文件中獲取第二測試命令,并將第一測試命令和第二測試命令存入待測命令數(shù)組。隨后,清空第一文件。例如,第一文件中包括第一測試命令1、2,第二文件中包括第二測試命令3~10,則待測命令數(shù)組D中包括10條待測命令,分別為待測命令1~10,即待測命令數(shù)組D=[待測命令1,待測命令2,…,待測命令10]。
然后,獲取當(dāng)前連接至計(jì)算設(shè)備的被測移動(dòng)終端的數(shù)目,并獲取各被測移動(dòng)終端的ID。對于待測命令數(shù)組中的每一個(gè)待測命令,選取一個(gè)當(dāng)前未執(zhí)行測試的被測移動(dòng)終端,在該被測移動(dòng)終端的測試對象上執(zhí)行該待測命令。由于第一測試命令是上一次自動(dòng)化測試過程中已經(jīng)執(zhí)行過的Monkey測試命令,故第一測試命令中包括seed值,可以直接被執(zhí)行。即,當(dāng)待測命令為第一測試命令時(shí),該待測命令可以直接在被測移動(dòng)終端的測試對象上執(zhí)行。第二測試命令是為本次測試設(shè)置的測試命令,尚未被執(zhí)行過,故第二測試命令中均不包括seed值。當(dāng)待測命令為第二測試命令時(shí),測試模塊230首先為該待測命令添加一個(gè)隨機(jī)的seed值,然后再將添加了seed值的待測命令在被測移動(dòng)終端的測試對象上執(zhí)行。每執(zhí)行一條待測命令,將該待測命令從待測命令數(shù)組中刪除。當(dāng)待測命令數(shù)組為空時(shí),自動(dòng)化測試過程結(jié)束。
例如,待測命令數(shù)組D=[待測命令1,待測命令2,…,待測命令10],有6臺(tái)被測移動(dòng)終端連接至計(jì)算設(shè)備,被測移動(dòng)終端的ID分別為1~6。當(dāng)自動(dòng)化測試過程開始的初始時(shí)刻,被測移動(dòng)終端1~6均處于空閑狀態(tài),即均未執(zhí)行測試。測試模塊230將待測命令1分配給被測移動(dòng)終端1,即在被測移動(dòng)終端的測試對象上執(zhí)行待測命令1。若待測命令1為第一測試命令,則其可以直接在被測移動(dòng)終端1的測試對象上執(zhí)行;若待測命令1為第二測試命令,則測試模塊230首先為其添加一個(gè)隨機(jī)的seed值,然后再將添加了seed值的待測命令1在被測移動(dòng)終端1的測試對象上執(zhí)行。隨后,將待測命令1從待測命令數(shù)組D中刪除。這樣,待測命令數(shù)組D中還有9個(gè)待測命令,分別為待測命令2~10。依次類推,測試模塊230接著將待測命令2~6分別分配給被測移動(dòng)終端2~6,即在被測移動(dòng)終端2~6的測試對象上分別執(zhí)行待測命令2~6,并將待測命令2~6從待測命令數(shù)組D中刪除。這時(shí),所有的被測移動(dòng)終端均在執(zhí)行測試。測試模塊230可以開啟一個(gè)進(jìn)程,來監(jiān)聽是否有被測移動(dòng)終端空閑。若監(jiān)聽到某個(gè)被測移動(dòng)終端空閑后,則進(jìn)一步將待測命令7分配給該空閑的被測移動(dòng)終端,在該被測移動(dòng)終端的測試對象上執(zhí)行待測命令7。例如,被測移動(dòng)終端3最先完成待測命令3的測試,進(jìn)入空閑狀態(tài),則測試模塊230接下來將待測命令7分配給被測移動(dòng)終端3。當(dāng)待測命令數(shù)組D中的所有待測命令均被分配至被測移動(dòng)終端執(zhí)行后,待測命令數(shù)組D為空,本次自動(dòng)化測試過程結(jié)束。
記錄模塊240適于記錄測試情況。根據(jù)一種實(shí)施例,通過測試日志和錄屏視頻來記錄測試情況。自動(dòng)化測試裝置200是通過Jenkins搭建的持續(xù)集成系統(tǒng),在自動(dòng)化測試開始之前,記錄模塊240采用Publish Over CIFS插件為測試日志和錄屏視頻指定在服務(wù)器中的保存路徑。在自動(dòng)化測試開始的初始時(shí)刻,記錄模塊240開啟日志監(jiān)聽進(jìn)程和錄屏進(jìn)程。其中,日志監(jiān)聽進(jìn)程適于監(jiān)聽測試日志,錄屏進(jìn)程適于每隔第一間隔時(shí)間對被測移動(dòng)終端的屏幕進(jìn)行錄像。根據(jù)一種實(shí)施例,第一間隔時(shí)間為3分鐘,即每隔3分鐘對被測移動(dòng)終端的屏幕進(jìn)行錄像,也即,每個(gè)錄屏視頻的時(shí)長為3分鐘。當(dāng)然,第一間隔時(shí)間還可以被設(shè)置為其他數(shù)值,本發(fā)明對第一間隔時(shí)間的設(shè)置不做限制。
當(dāng)日志監(jiān)聽進(jìn)程在測試日志中監(jiān)聽到所述測試對象出錯(cuò)的信息時(shí),將記錄測試對象出錯(cuò)信息的測試日志和記錄了測試對象出錯(cuò)現(xiàn)場的錄屏視頻存儲(chǔ)至設(shè)定好的服務(wù)器中的保存路徑,并將使測試對象出錯(cuò)的待測命令存儲(chǔ)至第一文件。這樣,在下一次自動(dòng)化測試過程中,同樣可以執(zhí)行第一文件中的命令,即測試本次使測試對象出錯(cuò)的待測命令,以檢測新版本的測試對象是否還存在舊版本中出現(xiàn)的問題。
反饋模塊250適于根據(jù)記錄模塊240記錄的測試情況生成測試報(bào)告,并將測試報(bào)告通過郵件發(fā)送至相關(guān)的研發(fā)人員。根據(jù)一種實(shí)施例,自動(dòng)化測試裝置200是通過Jenkins搭建的持續(xù)集成系統(tǒng),反饋模塊250是Jenkins系統(tǒng)的Email Extension Plugin插件,可以生成html格式的測試報(bào)告,并通過郵件將該測試報(bào)告發(fā)送給研發(fā)人員。具體來說,Email Extension Plugin插件可以根據(jù)設(shè)置好的html模板,對記錄模塊240記錄的測試日志中的關(guān)鍵字段進(jìn)行過濾,生成html格式的測試報(bào)告,并將該測試報(bào)告通過郵件發(fā)送給研發(fā)人員。測試報(bào)告中包括測試對象出錯(cuò)時(shí)的測試日志鏈接和錄屏視頻鏈接,研發(fā)人員可以通過點(diǎn)擊鏈接的方式直接查看出錯(cuò)時(shí)的測試日志和錄屏視頻,便于對錯(cuò)誤進(jìn)行定位,提高了研發(fā)人員解決問題的效率。根據(jù)一種實(shí)施例,若點(diǎn)擊錄屏視頻鏈接,則直接播放該視頻;若點(diǎn)擊測試日志鏈接,則對該測試日志進(jìn)行下載。
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的包括測試報(bào)告的郵件的示意圖。如圖3所示,測試報(bào)告中包括測試對象版本號(hào)、被測移動(dòng)終端ID、待測命令以及具體的測試情況等信息。待測命令6、10、13、21均使測試對象出錯(cuò),可以通過點(diǎn)擊測試日志鏈接和錄屏視頻鏈接來查看出錯(cuò)時(shí)的測試日志和錄屏視頻詳情。
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的自動(dòng)化測試方法400的流程圖,該方法在計(jì)算設(shè)備中執(zhí)行。如圖4所示,該方法始于步驟S410。
在步驟S410中,將計(jì)算設(shè)備與至少一個(gè)被測移動(dòng)終端建立連接。連接的建立可以通過數(shù)據(jù)線、WIFI、藍(lán)牙等方式,但不限于此。根據(jù)一種實(shí)施例,在建立連接后還需要獲取各被測移動(dòng)終端的ID,以方便在后續(xù)自動(dòng)化測試過程中為各被測移動(dòng)終端分配待測命令。
隨后,在步驟S420中,判斷是否達(dá)到預(yù)定時(shí)間,若是,則進(jìn)一步執(zhí)行步驟S430。步驟S420可以實(shí)現(xiàn)定時(shí)自動(dòng)化測試。
隨后,在步驟S430中,將被測移動(dòng)終端的測試對象更新至最新版本。具體的更新過程可以參照前述對更新模塊220的描述,此處不再贅述。
隨后,在步驟S430~S450中,獲取第一文件中存儲(chǔ)的第一測試命令,獲取第二文件中存儲(chǔ)的第二測試命令,并在測試對象上執(zhí)行第一測試命令和第二測試命令。通過步驟S430~S450,對于每次自動(dòng)化測試,執(zhí)行的測試命令包括上次出錯(cuò)的測試命令和本次設(shè)置的測試命令,該方案可以檢測新版本的測試對象是否還存在舊版本中出現(xiàn)的問題。根據(jù)一種實(shí)施例,可以通過待測命令數(shù)組來實(shí)現(xiàn)第一測試命令和第二測試命令的具體執(zhí)行過程,即,將第一測試命令和第二測試命令存入待測命令數(shù)組;對于待測命令數(shù)組中的每一個(gè)待測命令,選取一個(gè)當(dāng)前未執(zhí)行測試的被測移動(dòng)終端,在該被測移動(dòng)終端的測試對象上執(zhí)行該待測命令。具體的執(zhí)行過程可以參照前述對測試模塊230的描述,此處不再贅述。
隨后,在步驟S460中,記錄測試情況。根據(jù)一種實(shí)施例,通過測試日志和錄屏視頻來記錄測試情況。在自動(dòng)化測試開始之前,為測試日志和錄屏視頻指定在服務(wù)器中的保存路徑。在自動(dòng)化測試開始的初始時(shí)刻,開啟日志監(jiān)聽進(jìn)程和錄屏進(jìn)程,其中,日志監(jiān)聽進(jìn)程適于監(jiān)聽測試日志,錄屏進(jìn)程適于每隔第一間隔時(shí)間對被測移動(dòng)終端的屏幕進(jìn)行錄像。根據(jù)一種實(shí)施例,第一間隔時(shí)間為3分鐘。當(dāng)日志監(jiān)聽進(jìn)程在測試日志中監(jiān)聽到所述測試對象出錯(cuò)的信息時(shí),將記錄測試對象出錯(cuò)信息的測試日志和記錄了測試對象出錯(cuò)現(xiàn)場的錄屏視頻存儲(chǔ)至設(shè)定好的服務(wù)器中的保存路徑,并將使測試對象出錯(cuò)的待測命令存儲(chǔ)至第一文件。這樣,在下一次自動(dòng)化測試過程中,同樣可以執(zhí)行第一文件中的命令,即測試本次使測試對象出錯(cuò)的待測命令,以檢測新版本的測試對象是否還存在舊版本中出現(xiàn)的問題。
隨后,在步驟S470中,根據(jù)測試情況生成測試報(bào)告,將測試報(bào)告通過郵件發(fā)送至相關(guān)人員。根據(jù)一種實(shí)施例,測試報(bào)告為html格式,測試報(bào)告中包括測試對象出錯(cuò)時(shí)的測試日志鏈接和錄屏視頻鏈接,研發(fā)人員可以通過點(diǎn)擊鏈接的方式直接查看出錯(cuò)時(shí)的測試日志和錄屏視頻,便于對錯(cuò)誤進(jìn)行定位,提高了研發(fā)人員解決問題的效率。
本發(fā)明提供的技術(shù)方案實(shí)現(xiàn)了Monkey測試的自動(dòng)化,能夠每天定時(shí)執(zhí)行測試并記錄測試情況。當(dāng)測試結(jié)束后,根據(jù)測試情況生成測試報(bào)告,并將測試報(bào)告通過郵件發(fā)送至相關(guān)研發(fā)人員。本方案減少了測試過程中的人工干預(yù),節(jié)約了人力成本,極大地提高了測試效率。此外,測試報(bào)告中包括出錯(cuò)的測試日志鏈接和錄屏視頻鏈接,相關(guān)研發(fā)人員可以通過點(diǎn)擊鏈接的方式直接查看出錯(cuò)時(shí)的測試日志和錄屏視頻,便于對錯(cuò)誤進(jìn)行定位,提高了研發(fā)人員解決問題的效率。
A6:A5所述的自動(dòng)化測試方法,其中,所述記錄測試情況的步驟包括:為測試日志和錄屏視頻指定在服務(wù)器中的保存路徑;開啟日志監(jiān)聽進(jìn)程和錄屏進(jìn)程,所述日志監(jiān)聽進(jìn)程適于監(jiān)聽測試日志,所述錄屏進(jìn)程適于每隔第一間隔時(shí)間對被測移動(dòng)終端的屏幕進(jìn)行錄像;當(dāng)所述日志監(jiān)聽進(jìn)程在測試日志中監(jiān)聽到所述測試對象出錯(cuò)的信息時(shí),將記錄測試對象出錯(cuò)信息的測試日志和記錄了測試對象出錯(cuò)現(xiàn)場的錄屏視頻存儲(chǔ)至所述服務(wù)器中的保存路徑,并將使測試對象出錯(cuò)的待測命令存儲(chǔ)至所述第一文件。A7:A6所述的自動(dòng)化測試方法,其中,所述第一間隔時(shí)間為3分鐘。A8:A1所述的自動(dòng)化測試方法,其中,所述測試報(bào)告為html格式。A9:A1所述的自動(dòng)化測試方法,其中,所述測試報(bào)告中包括測試對象出錯(cuò)時(shí)的測試日志鏈接和錄屏視頻鏈接。
B14:B10所述的自動(dòng)化測試裝置,其中,所述測試模塊進(jìn)一步適于:將所述第一測試命令和所述第二測試命令存入待測命令數(shù)組;對于待測命令數(shù)組中的每一個(gè)待測命令,選取一個(gè)當(dāng)前未執(zhí)行測試的被測移動(dòng)終端,在該被測移動(dòng)終端的測試對象上執(zhí)行該待測命令。B15:B14所述的自動(dòng)化測試裝置,其中,所述記錄模塊進(jìn)一步適于:為測試日志和錄屏視頻指定在服務(wù)器中的保存路徑;開啟日志監(jiān)聽進(jìn)程和錄屏進(jìn)程,所述日志監(jiān)聽進(jìn)程適于監(jiān)聽測試日志,所述錄屏進(jìn)程適于每隔第一間隔時(shí)間對被測移動(dòng)終端的屏幕進(jìn)行錄像;當(dāng)所述日志監(jiān)聽進(jìn)程在測試日志中監(jiān)聽到所述測試對象出錯(cuò)的信息時(shí),將記錄測試對象出錯(cuò)信息的測試日志和記錄了測試對象出錯(cuò)現(xiàn)場的錄屏視頻存儲(chǔ)至所述服務(wù)器中的保存路徑,并將使測試對象出錯(cuò)的待測命令存儲(chǔ)至所述第一文件。B16:B15所述的自動(dòng)化測試裝置,其中,所述第一間隔時(shí)間為3分鐘。B17:B10所述的自動(dòng)化測試裝置,其中,所述測試報(bào)告為html格式。B18:B10所述的自動(dòng)化測試裝置,其中,所述測試報(bào)告中包括測試對象出錯(cuò)時(shí)的測試日志鏈接和錄屏視頻鏈接。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實(shí)例,并且并不意圖暗示這樣被描述的對象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對于本發(fā)明的范圍,對本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。