本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種測(cè)試腳本的更新方法及裝置。
背景技術(shù):
在應(yīng)用程序測(cè)試中,為了節(jié)約測(cè)試時(shí)間,測(cè)試人員會(huì)編寫測(cè)試腳本,之后通過在測(cè)試平臺(tái)(也稱測(cè)試框架)中運(yùn)行編寫的測(cè)試腳本,來對(duì)應(yīng)用程序進(jìn)行測(cè)試。當(dāng)應(yīng)用程序的代碼發(fā)生變化時(shí),為了能夠正確地對(duì)該發(fā)生變化的代碼進(jìn)行測(cè)試,就需要對(duì)該應(yīng)用程序?qū)?yīng)的測(cè)試腳本進(jìn)行修改,然而現(xiàn)有技術(shù)中,只能由測(cè)試人員手動(dòng)對(duì)測(cè)試腳本進(jìn)行修改,這增加了測(cè)試腳本的維護(hù)成本,且影響了測(cè)試效率。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供了一種測(cè)試腳本的更新方法及裝置,可以實(shí)現(xiàn)測(cè)試腳本的自動(dòng)更新,從而可以提高應(yīng)用程序的測(cè)試效率。
第一方面,提供了一種測(cè)試腳本的更新方法,該方法包括:
監(jiān)測(cè)所述至少一個(gè)代碼段中的全部或者部分代碼段;
當(dāng)監(jiān)測(cè)到所述全部或者部分代碼段中的第一代碼段發(fā)生變化時(shí),從預(yù)設(shè)的存儲(chǔ)單元中讀取對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟,其中,所述預(yù)設(shè)的存儲(chǔ)單元用于存儲(chǔ)所述應(yīng)用程序的代碼段與所述測(cè)試腳本中的測(cè)試步驟的對(duì)應(yīng)關(guān)系;
對(duì)所述第一代碼段中發(fā)生變化的代碼進(jìn)行識(shí)別,以確定所述發(fā)生變化的代碼的變化類型;
當(dāng)所述代碼的變化類型屬于預(yù)設(shè)的變化類型時(shí),根據(jù)所述發(fā)生變化的代 碼對(duì)所述一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新。
第二方面,提供了一種測(cè)試腳本的更新裝置,該裝置包括:監(jiān)測(cè)單元、讀取單元、識(shí)別單元和更新單元;
所述監(jiān)測(cè)單元,用于監(jiān)測(cè)所述至少一個(gè)代碼段中的全部或者部分代碼段;
所述讀取單元,用于當(dāng)所述監(jiān)測(cè)單元監(jiān)測(cè)到所述全部或者部分代碼段中的第一代碼段發(fā)生變化時(shí),從預(yù)設(shè)的存儲(chǔ)單元中讀取對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟,其中,所述預(yù)設(shè)的存儲(chǔ)單元用于存儲(chǔ)所述應(yīng)用程序的代碼段與所述測(cè)試腳本中的測(cè)試步驟的對(duì)應(yīng)關(guān)系;
所述識(shí)別單元,用于對(duì)所述第一代碼段中發(fā)生變化的代碼進(jìn)行識(shí)別,以確定所述發(fā)生變化的代碼的變化類型;
所述更新單元,用于當(dāng)所述識(shí)別單元識(shí)別到所述代碼的變化類型屬于預(yù)設(shè)的變化類型時(shí),根據(jù)所述發(fā)生變化的代碼對(duì)所述一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新。
本申請(qǐng)?zhí)峁┑臏y(cè)試腳本的更新方法及裝置,監(jiān)測(cè)至少一個(gè)代碼段中的全部或者部分代碼段;當(dāng)監(jiān)測(cè)到全部或者部分代碼段中的第一代碼段發(fā)生變化時(shí),從預(yù)設(shè)的存儲(chǔ)單元中讀取對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟;對(duì)第一代碼段中發(fā)生變化的代碼進(jìn)行識(shí)別,以確定發(fā)生變化的代碼的變化類型;當(dāng)代碼的變化類型屬于預(yù)設(shè)的變化類型時(shí),根據(jù)發(fā)生變化的代碼對(duì)一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新。也即本申請(qǐng)中,在監(jiān)測(cè)到代碼段發(fā)生變化時(shí),直接可以根據(jù)發(fā)生變化的代碼對(duì)對(duì)應(yīng)的測(cè)試步驟進(jìn)行更新,從而實(shí)現(xiàn)了測(cè)試腳本的自動(dòng)更新,提高了應(yīng)用程序的測(cè)試效率。
附圖說明
圖1為本申請(qǐng)一種實(shí)施例提供的測(cè)試腳本的更新方法流程圖;
圖2為本申請(qǐng)另一種實(shí)施例提供的測(cè)試腳本的更新裝置示意圖。
具體實(shí)施方式
下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例進(jìn)行描述。
本申請(qǐng)?zhí)峁┑臏y(cè)試腳本的更新方法及裝置,適用于在對(duì)應(yīng)用程序(也稱系統(tǒng))進(jìn)行自動(dòng)化測(cè)試的過程中,應(yīng)用程序被更新時(shí),對(duì)測(cè)試應(yīng)用程序的測(cè)試腳本進(jìn)行更新的場(chǎng)景。尤其適用于應(yīng)用程序被更新后會(huì)影響測(cè)試腳本的正常運(yùn)行時(shí),對(duì)測(cè)試應(yīng)用程序的測(cè)試腳本進(jìn)行更新的場(chǎng)景。此處的應(yīng)用程序可以為第三方的應(yīng)用程序,也可以為終端設(shè)備自帶的應(yīng)用程序,其可以包括至少一個(gè)代碼段。測(cè)試腳本是在測(cè)試平臺(tái)(也稱測(cè)試框架)中編寫、運(yùn)行和調(diào)試的,當(dāng)測(cè)試腳本在測(cè)試框架中運(yùn)行時(shí),就可以實(shí)現(xiàn)對(duì)對(duì)應(yīng)的應(yīng)用程序進(jìn)行測(cè)試;測(cè)試腳本也是由代碼行(稱為測(cè)試代碼)構(gòu)成,其中,一行或多行測(cè)試代碼用于對(duì)應(yīng)用程序執(zhí)行一個(gè)測(cè)試操作,將該用于對(duì)應(yīng)用程序執(zhí)行一個(gè)測(cè)試操作的一行或多行測(cè)試代碼稱為一個(gè)測(cè)試步驟,而上述一個(gè)測(cè)試步驟的執(zhí)行,則可能會(huì)引起應(yīng)用程序中一個(gè)或多個(gè)代碼段的運(yùn)行,因此,也可以說每個(gè)測(cè)試步驟用于對(duì)至少一個(gè)代碼段中的一個(gè)多個(gè)代碼段進(jìn)行測(cè)試。
在實(shí)際應(yīng)用中,多個(gè)測(cè)試腳本的運(yùn)行可能才能實(shí)現(xiàn)對(duì)一個(gè)應(yīng)用程序的測(cè)試,而一個(gè)測(cè)試腳本唯一地對(duì)一個(gè)應(yīng)用程序進(jìn)行測(cè)試。因此,也可以說一個(gè)應(yīng)用程序?qū)?yīng)多個(gè)測(cè)試腳本,而一個(gè)測(cè)試腳本對(duì)應(yīng)一個(gè)應(yīng)用程序。
在應(yīng)用程序的自動(dòng)化測(cè)試過程中,測(cè)試腳本通常是基于應(yīng)用程序編寫的。因此,當(dāng)應(yīng)用程序被更新時(shí),尤其是該應(yīng)用程序被更新后會(huì)影響測(cè)試腳本的運(yùn)行時(shí),就需要對(duì)測(cè)試腳本進(jìn)行更新。然而因?yàn)槭謩?dòng)更新測(cè)試腳本,會(huì)增加測(cè)試腳本的維護(hù)成本,因此本申請(qǐng)?zhí)岢鋈缦聹y(cè)試腳本的更新方法。
圖1為本申請(qǐng)一種實(shí)施例提供的測(cè)試腳本的更新方法流程圖。所述方法的執(zhí)行主體可以為具有處理能力的設(shè)備:服務(wù)器或者系統(tǒng)或者裝置,如,測(cè)試平臺(tái),如圖1所示,所述方法具體包括:
步驟110,監(jiān)測(cè)所述至少一個(gè)代碼段中的全部或者部分代碼段。
可選地,可以在執(zhí)行步驟110之前,先將更新后的應(yīng)用程序的至少一個(gè) 代碼段全部加載到測(cè)試平臺(tái)的管理界面中,在該管理界面,用戶可以選中至少一個(gè)代碼段的部分代碼段進(jìn)行監(jiān)測(cè)。具體地,若接收到用戶輸入的選擇指令,則根據(jù)選擇指令,從至少一個(gè)代碼段中選中部分代碼段;并將該部分代碼段存儲(chǔ)在測(cè)試平臺(tái)的后臺(tái)數(shù)據(jù)庫(kù)中,也即在后續(xù)監(jiān)測(cè)應(yīng)用程序的代碼段時(shí),只對(duì)上述部分代碼段進(jìn)行監(jiān)測(cè);否則,將至少一個(gè)代碼段中全部代碼段存儲(chǔ)在測(cè)試平臺(tái)的后臺(tái)數(shù)據(jù)庫(kù)中,也即在后續(xù)監(jiān)測(cè)應(yīng)用程序的代碼段時(shí),對(duì)全部代碼段進(jìn)行監(jiān)測(cè)。
當(dāng)然,上述只是以一次存儲(chǔ)部分代碼段的過程為例進(jìn)行了說明;當(dāng)需要對(duì)多個(gè)部分代碼段監(jiān)測(cè)時(shí),則重復(fù)執(zhí)行多次存儲(chǔ)部分代碼段的操作;此外,還需要說明的是,部分代碼段中可以包括一個(gè)代碼段,也可以包括多個(gè)代碼段。
可以理解的是,測(cè)試平臺(tái)的后臺(tái)數(shù)據(jù)庫(kù)中預(yù)先存儲(chǔ)了更新前的應(yīng)用程序的至少一個(gè)原始代碼段,其中,每個(gè)原始代碼段可以與更新后的應(yīng)用程序的一個(gè)代碼段相對(duì)應(yīng)。上述監(jiān)測(cè)至少一個(gè)代碼段中的全部代碼段的過程即為:從測(cè)試平臺(tái)的后臺(tái)數(shù)據(jù)庫(kù)中讀取至少一個(gè)代碼段中每個(gè)代碼段,并讀取與該代碼段對(duì)應(yīng)的原始代碼段,之后將兩者進(jìn)行比對(duì),若第一代碼段與對(duì)應(yīng)的原始代碼段比對(duì)不一致,則認(rèn)為第一代碼段發(fā)生了變化。此處的第一代碼段可以為至少一個(gè)代碼段中的任一代碼段。同理監(jiān)測(cè)至少一個(gè)代碼段中的部分代碼段的過程即為:從測(cè)試平臺(tái)的后臺(tái)數(shù)據(jù)庫(kù)中讀取部分代碼段中的每個(gè)代碼段,并讀取與每個(gè)代碼段對(duì)應(yīng)的原始代碼段,之后將兩者進(jìn)行比對(duì),若部分代碼段中第一代碼段與對(duì)應(yīng)的原始代碼段比對(duì)不一致,則認(rèn)為第一代碼段發(fā)生了變化。
事實(shí)上,應(yīng)用程序的至少一個(gè)代碼段中,部分代碼段會(huì)比較重要,因此,其更新頻率比較高,而其它代碼段基本上不會(huì)被更新,或者即使被更新也不會(huì)對(duì)測(cè)試腳本的運(yùn)行產(chǎn)生任何影響,所以可以不必對(duì)更新頻率比較低的代碼段進(jìn)行監(jiān)測(cè),而只針對(duì)比較重要的部分代碼段進(jìn)行監(jiān)測(cè),由此來提高代碼段 的監(jiān)測(cè)效率。
步驟120,當(dāng)監(jiān)測(cè)到所述全部或者部分代碼段中的第一代碼段發(fā)生變化時(shí),從預(yù)設(shè)的存儲(chǔ)單元中讀取對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟,其中,所述預(yù)設(shè)的存儲(chǔ)單元用于存儲(chǔ)所述應(yīng)用程序的代碼段與所述測(cè)試腳本中的測(cè)試步驟的對(duì)應(yīng)關(guān)系。
在此說明,與至少一個(gè)代碼段中的每個(gè)代碼段對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟是預(yù)先設(shè)定好的。具體地,可以將上述對(duì)應(yīng)關(guān)系存儲(chǔ)在預(yù)設(shè)的存儲(chǔ)單元中。在一個(gè)例子中,預(yù)設(shè)的存儲(chǔ)單元可以如表1所示。
表1
表1中,應(yīng)用程序包括四個(gè)代碼段,該四個(gè)代碼段分別為:代碼段a、代碼段b、代碼段c以及代碼段d;此外,該應(yīng)用程序?qū)?yīng)兩個(gè)測(cè)試腳本,該兩個(gè)測(cè)試腳本分別為:測(cè)試腳本x和測(cè)試腳本y。以第一代碼段為“代碼段a”為例來說,從表1中可以讀取到對(duì)應(yīng)的測(cè)試腳本為“測(cè)試腳本x”,而對(duì)應(yīng)的測(cè)試步驟則為“測(cè)試腳本x”中的“測(cè)試步驟1”和“測(cè)試步驟2”。
當(dāng)然,在實(shí)際應(yīng)用中,也可以采用其它的方式確定與代碼段對(duì)應(yīng)的測(cè)試步驟。
步驟130,對(duì)所述第一代碼段中發(fā)生變化的代碼進(jìn)行識(shí)別,以確定所述發(fā)生變化的代碼的變化類型。
需要說明的是,在監(jiān)測(cè)到第一代碼段發(fā)生變化時(shí),也即在監(jiān)測(cè)到第一代 碼段與對(duì)應(yīng)的原始代碼段比對(duì)不一致時(shí),可以對(duì)第一代碼段與對(duì)應(yīng)的原始代碼段中比對(duì)不一致的代碼,也即可以對(duì)發(fā)生變化的代碼進(jìn)行識(shí)別,以確定發(fā)生變化的代碼的變化類型。在一個(gè)例子中,當(dāng)識(shí)別到第一代碼段中用戶界面(userinterface,ui)元素的名稱發(fā)生變化時(shí),如,第一代碼段中ui元素的名稱為“按鈕a”,而對(duì)應(yīng)的原始代碼段中ui元素的名稱為“按鈕b”,此處,ui元素的名稱即為發(fā)生變化的代碼,因此可以將該發(fā)生變化的代碼的變化類型確定為“ui元素的變化”;在另一個(gè)例子中,當(dāng)識(shí)別到第一代碼段中接口參數(shù)的個(gè)數(shù)發(fā)生變化時(shí),如,第一代碼段中應(yīng)用程序?qū)ν馓峁┑姆?wù)接口的接口參數(shù)包括“參數(shù)a”、“參數(shù)b”和“參數(shù)c”,而對(duì)應(yīng)的原始代碼段中服務(wù)接口的接口參數(shù)包括“參數(shù)a”和“參數(shù)b”。此處,服務(wù)接口的接口參數(shù)即為發(fā)生變化的代碼,因此可以將該發(fā)生變化的代碼的變化類型確定為“接口參數(shù)的變化”;以此類推,可以確定所有發(fā)生變化的代碼的變化類型。
步驟140,當(dāng)所述代碼的變化類型屬于預(yù)設(shè)的變化類型時(shí),根據(jù)所述發(fā)生變化的代碼對(duì)所述一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新。
此處,預(yù)設(shè)的變化類型包括但不限于以下類型中的一種或者多種:用戶界面ui元素的變化、接口參數(shù)的變化、接口返回結(jié)果的變化以及路徑的變化等。此處,ui元素的變化以及接口參數(shù)的變化可以參見步驟130中的舉例說明。而接口返回結(jié)果的變化可以是指第一代碼段與對(duì)應(yīng)的原始代碼段中返回結(jié)果的類型不一致,如,從返回布爾類型值變化為返回?cái)?shù)值等。路徑的變化可以是指數(shù)據(jù)庫(kù)表中新增了字段或字段名發(fā)生變化等。
需要說明的是,在實(shí)際應(yīng)用中,預(yù)設(shè)的變化類型可以不限于上述幾種,本領(lǐng)域技術(shù)人員可以根據(jù)經(jīng)驗(yàn)和需要預(yù)設(shè),如,可以將所有能影響到測(cè)試腳本的運(yùn)行的代碼的變化類型均設(shè)置為預(yù)設(shè)的變化類型,本申請(qǐng)對(duì)此不作限定。
步驟140中,根據(jù)所述發(fā)生變化的代碼對(duì)所述一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新,具體為:
當(dāng)所述代碼的變化類型屬于ui元素的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的ui元素替換為所述第一代碼段中變化后的ui元素;或者,
當(dāng)所述代碼的變化類型屬于接口參數(shù)的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的接口參數(shù)替換為所述第一代碼段中變化后的接口參數(shù);或者,
當(dāng)所述代碼的變化類型屬于接口返回結(jié)果的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的接口返回結(jié)果替換為所述第一代碼段中變化后的接口返回結(jié)果;
當(dāng)所述代碼的變化類型屬于路徑的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的路徑替換為所述第一代碼段中變化后的路徑。
需要說明的是,本申請(qǐng)的測(cè)試腳本用于對(duì)更新前的應(yīng)用程序進(jìn)行測(cè)試,因此,測(cè)試腳本中ui元素的名稱、接口參數(shù)、接口返回結(jié)果以及路徑等信息是與更新前的應(yīng)用程序中的信息是相同的;而為了能對(duì)更新后的應(yīng)用程序進(jìn)行正確測(cè)試,就可以對(duì)第一代碼段對(duì)應(yīng)的一個(gè)或多個(gè)步驟中的上述信息進(jìn)行修改,以實(shí)現(xiàn)對(duì)測(cè)試腳本的更新。如前述例子,可以將第一代碼段對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟中的ui元素的名稱“按鈕b”修改為“按鈕a”;可以將第一代碼段對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟中的接口參數(shù)“參數(shù)a”和“參數(shù)b”修改為“參數(shù)a”、“參數(shù)b”和“參數(shù)c”等。
基于上述兩種測(cè)試腳本的更新方法,本領(lǐng)域技術(shù)人員可以對(duì)其它變化類型的代碼段對(duì)應(yīng)的測(cè)試步驟進(jìn)行相應(yīng)的更新,本申請(qǐng)?jiān)诖瞬粡?fù)贅述。需要說明的是,測(cè)試平臺(tái)在對(duì)測(cè)試腳本執(zhí)行上述更新過程時(shí),可以對(duì)每個(gè)測(cè)試步驟中的更新部分進(jìn)行相應(yīng)地記錄。
可以理解是,上述判斷代碼的變化類型是否屬于預(yù)設(shè)的變化類型,就是為了確定該代碼的變化是否會(huì)影響測(cè)試腳本的運(yùn)行。當(dāng)然,在實(shí)際應(yīng)用中,也可以通過其它方式來確定該代碼的變化是否會(huì)影響測(cè)試腳本的運(yùn)行,只要能夠正確,安全的識(shí)別影響測(cè)試腳本運(yùn)行的變化的代碼即可。如,可以結(jié)合 發(fā)生變化的代碼段對(duì)應(yīng)的測(cè)試步驟來確定發(fā)生變化的代碼是否會(huì)影響測(cè)試腳本的運(yùn)行。
需要說明的是,當(dāng)通過某種判斷方式判斷代碼的變化不會(huì)影響測(cè)試腳本的運(yùn)行時(shí),則可以忽略這種變化??梢岳斫獾氖?,在根據(jù)發(fā)生變化的代碼對(duì)一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新之后,或者,忽略代碼的變化之后,測(cè)試平臺(tái)對(duì)更新后的應(yīng)用程序的至少一個(gè)代碼段的監(jiān)測(cè)過程結(jié)束;該監(jiān)測(cè)過程結(jié)束之后,就可以根據(jù)更新或者未更新的測(cè)試腳本對(duì)更新后的應(yīng)用程序進(jìn)行測(cè)試了;測(cè)試過程結(jié)束之后,測(cè)試平臺(tái)可以將每個(gè)測(cè)試步驟中的更新部分和更新或者未更新的測(cè)試腳本的運(yùn)行結(jié)果通過郵件的方式發(fā)送給測(cè)試人員,以便測(cè)試人員對(duì)更新后的應(yīng)用程序的測(cè)試結(jié)果進(jìn)行匯總。
當(dāng)然,在實(shí)際應(yīng)用中,也可能存在測(cè)試平臺(tái)對(duì)代碼的變化類型分析失敗的情況,這時(shí),測(cè)試平臺(tái)也可以通過發(fā)送郵件的方式通知測(cè)試人員,以便由測(cè)試人員進(jìn)行進(jìn)一步的分析。
本申請(qǐng)?zhí)峁┑臏y(cè)試腳本的更新方法,監(jiān)測(cè)至少一個(gè)代碼段中的全部或者部分代碼段;當(dāng)監(jiān)測(cè)到全部或者部分代碼段中的第一代碼段發(fā)生變化時(shí),從預(yù)設(shè)的存儲(chǔ)單元中讀取對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟;對(duì)第一代碼段中發(fā)生變化的代碼進(jìn)行識(shí)別,以確定發(fā)生變化的代碼的變化類型;當(dāng)代碼的變化類型屬于預(yù)設(shè)的變化類型時(shí),根據(jù)發(fā)生變化的代碼對(duì)一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新。也即本申請(qǐng)中,在監(jiān)測(cè)到代碼段發(fā)生變化時(shí),直接可以根據(jù)發(fā)生變化的代碼對(duì)對(duì)應(yīng)的測(cè)試步驟進(jìn)行更新,從而實(shí)現(xiàn)了測(cè)試腳本的自動(dòng)更新和維護(hù),減輕了測(cè)試人員的工作量,提高了應(yīng)用程序的測(cè)試效率。
與上述測(cè)試腳本的更新方法對(duì)應(yīng)地,本申請(qǐng)實(shí)施例還提供的一種測(cè)試腳本的更新裝置,其中,所述測(cè)試腳本用于對(duì)對(duì)應(yīng)的應(yīng)用程序進(jìn)行測(cè)試,其中,所述應(yīng)用程序包括至少一個(gè)代碼段,所述測(cè)試腳本包括至少一個(gè)測(cè)試步驟,其中,每個(gè)測(cè)試步驟用于對(duì)所述至少一個(gè)代碼段中的一個(gè)或多個(gè)代碼段進(jìn)行測(cè)試,如圖2所示,所述裝置包括:監(jiān)測(cè)單元201、讀取單元202、識(shí)別單元 203和更新單元204。
監(jiān)測(cè)單元201,用于監(jiān)測(cè)所述至少一個(gè)代碼段中的全部或者部分代碼段。
監(jiān)測(cè)單元201具體用于:
獲取更新前的所述應(yīng)用程序的至少一個(gè)原始代碼段,其中每個(gè)原始代碼段與所述至少一個(gè)代碼段中的一個(gè)代碼段相對(duì)應(yīng);
將所述全部或者部分代碼段中的每個(gè)代碼段與對(duì)應(yīng)的原始代碼段進(jìn)行比對(duì),若第一代碼段與對(duì)應(yīng)的原始代碼段比對(duì)不一致,則認(rèn)為所述全部或者部分代碼段中的第一代碼段發(fā)生變化。
讀取單元202,用于當(dāng)監(jiān)測(cè)單元201監(jiān)測(cè)到所述全部或者部分代碼段中的第一代碼段發(fā)生變化時(shí),從預(yù)設(shè)的存儲(chǔ)單元中讀取對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟,其中,所述預(yù)設(shè)的存儲(chǔ)單元用于存儲(chǔ)所述應(yīng)用程序的代碼段與所述測(cè)試腳本中的測(cè)試步驟的對(duì)應(yīng)關(guān)系。
識(shí)別單元203,用于對(duì)所述第一代碼段中發(fā)生變化的代碼進(jìn)行識(shí)別,以確定所述發(fā)生變化的代碼的變化類型。
更新單元204,用于當(dāng)識(shí)別單元203識(shí)別到所述代碼的變化類型屬于預(yù)設(shè)的變化類型時(shí),根據(jù)所述發(fā)生變化的代碼對(duì)所述一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新。
其中,所述預(yù)設(shè)的變化類型包括但不限于以下類型中的一種或者多種:
用戶界面ui元素的變化、接口參數(shù)的變化、接口返回結(jié)果的變化以及路徑的變化。
更新單元204具體用于:
當(dāng)所述代碼的變化類型屬于ui元素的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的ui元素替換為所述第一代碼段中變化后的ui元素;或者,
當(dāng)所述代碼的變化類型屬于接口參數(shù)的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的接口參數(shù)替換為所述第一代碼段中變化后的接口參數(shù);或者,
當(dāng)所述代碼的變化類型屬于接口返回結(jié)果的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的接口返回結(jié)果替換為所述第一代碼段中變化后的接口返回結(jié)果;
當(dāng)所述代碼的變化類型屬于路徑的變化時(shí),將所述一個(gè)或多個(gè)測(cè)試步驟中的變化前的路徑替換為所述第一代碼段中變化后的路徑。
可選地,所述裝置還包括:選取單元205和存儲(chǔ)單元206。
選取單元205,用于根據(jù)用戶輸入的選擇指令,從所述至少一個(gè)代碼段中選中部分代碼段。
存儲(chǔ)單元206,用于將選取單元205選中的所述部分代碼段存儲(chǔ)在后臺(tái)數(shù)據(jù)庫(kù)中。
本申請(qǐng)實(shí)施例裝置的各功能模塊的功能,可以通過上述方法實(shí)施例的各步驟來實(shí)現(xiàn),因此,本申請(qǐng)?zhí)峁┑难b置的具體工作過程,在此不復(fù)贅述。
本申請(qǐng)?zhí)峁┑臏y(cè)試腳本的更新裝置,監(jiān)測(cè)單元201監(jiān)測(cè)所述至少一個(gè)代碼段中的全部或者部分代碼段;當(dāng)所述全部或者部分代碼段中的第一代碼段發(fā)生變化時(shí),讀取單元202從預(yù)設(shè)的存儲(chǔ)單元中讀取對(duì)應(yīng)的一個(gè)或多個(gè)測(cè)試步驟;識(shí)別單元203對(duì)所述第一代碼段中發(fā)生變化的代碼進(jìn)行識(shí)別,以確定所述發(fā)生變化的代碼的變化類型;當(dāng)所述代碼的變化類型屬于預(yù)設(shè)的變化類型時(shí),更新單元204根據(jù)所述發(fā)生變化的代碼對(duì)所述一個(gè)或多個(gè)測(cè)試步驟進(jìn)行更新。由此,實(shí)現(xiàn)了測(cè)試腳本的自動(dòng)更新和維護(hù),減輕了測(cè)試人員的工作量,提高了應(yīng)用程序的測(cè)試效率。
本申請(qǐng)的測(cè)試腳本的更新裝置可以插件的方式嵌入到已有的測(cè)試平臺(tái)中,在已有的測(cè)試平臺(tái)的基礎(chǔ)上,來對(duì)應(yīng)用程序的至少一個(gè)代碼段中的全部或者部分代碼段進(jìn)行監(jiān)測(cè)。
專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的對(duì)象及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能 一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本申請(qǐng)的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動(dòng)磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上所述的具體實(shí)施方式,對(duì)本申請(qǐng)的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本申請(qǐng)的具體實(shí)施方式而已,并不用于限定本申請(qǐng)的保護(hù)范圍,凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。