本發(fā)明屬于軟件自動化測試技術(shù)領(lǐng)域,特別是涉及一種基于模型驅(qū)動的自動化腳本調(diào)試方法和裝置。
背景技術(shù):
對于軟件自動化測試工作,在自動化測試的整個(gè)周期中最為耗時(shí)的就是自動化腳本的調(diào)試,現(xiàn)有技術(shù)中的調(diào)試手段比較單一,是在測試套中對腳本逐一調(diào)試,如果在調(diào)試腳本過程中修改測試套的數(shù)據(jù)變量,那么測試套就要重新運(yùn)行,由于測試套要初始化設(shè)備的環(huán)境變量和節(jié)點(diǎn)參數(shù),因此運(yùn)行時(shí)間都比較長。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供了一種基于模型驅(qū)動的自動化腳本調(diào)試方法和裝置,能夠縮短腳本和測試套的運(yùn)行時(shí)間,從而降低整個(gè)自動化的調(diào)試時(shí)間。
本發(fā)明提供的一種基于模型驅(qū)動的自動化腳本調(diào)試方法,包括:
利用MBT的圖元,生成業(yè)務(wù)邏輯;
生成自動化腳本;
將腳本調(diào)試插件嵌入到MBT模型工具中;
選擇所述腳本中修改后的語句,在已經(jīng)執(zhí)行過的語句和環(huán)境在緩存中保留的基礎(chǔ)上,直接執(zhí)行所述修改后的語句。
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試方法中,所述將腳本調(diào)試插件嵌入到MBT模型工具中為:
將所述腳本調(diào)試插件以一次編譯動態(tài)連接的方式嵌入到所述MBT模型工具中。
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試方法中,所述利用MBT的圖元,生成業(yè)務(wù)邏輯包括:
采用xml文件的方式,利用所述MBT的圖元控制邏輯節(jié)點(diǎn)參數(shù)到物理節(jié)點(diǎn)參數(shù)的拓?fù)溆成洹?/p>
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試方法中,所述利用MBT的圖元控制邏輯節(jié)點(diǎn)參數(shù)到物理節(jié)點(diǎn)參數(shù)的拓?fù)溆成浒ǎ?/p>
利用動態(tài)鏈接庫,多對一的連接執(zhí)行的所述腳本,在腳本執(zhí)行失敗或完成的同時(shí)釋放所述動態(tài)鏈接庫。
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試方法中,在所述利用MBT的圖元,生成業(yè)務(wù)邏輯之前,還包括:
采用Python語言抽象出用于數(shù)據(jù)的讀、寫和轉(zhuǎn)發(fā)的公共單元,其中,采用代理模式實(shí)現(xiàn)所述數(shù)據(jù)的轉(zhuǎn)發(fā)。
本發(fā)明提供的一種基于模型驅(qū)動的自動化腳本調(diào)試裝置,包括:
第一生成單元,用于利用MBT的圖元,生成業(yè)務(wù)邏輯;
第二生成單元,用于生成自動化腳本;
嵌入單元,用于將腳本調(diào)試插件嵌入到MBT模型工具中;
執(zhí)行單元,用于選擇所述腳本中修改后的語句,在已經(jīng)執(zhí)行過的語句和環(huán)境在緩存中保留的基礎(chǔ)上,直接執(zhí)行所述修改后的語句。
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試裝置中,所述嵌入單元具體用于將所述腳本調(diào)試插件以一次編譯動態(tài)連接的方式嵌入到所述MBT模型工具中。
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試裝置中,所述第一生成單元具體用于采用xml文件的方式,利用所述MBT的圖元控制邏輯節(jié)點(diǎn)參數(shù)到物理節(jié)點(diǎn)參數(shù)的拓?fù)溆成洹?/p>
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試裝置中,所述第一生成單元具體用于利用動態(tài)鏈接庫,多對一的連接執(zhí)行的所述腳本,在腳本執(zhí)行失敗或完成的同時(shí)釋放所述動態(tài)鏈接庫。
優(yōu)選的,在上述基于模型驅(qū)動的自動化腳本調(diào)試裝置中,還包括:
抽象單元,用于采用Python語言抽象出用于數(shù)據(jù)的讀、寫和轉(zhuǎn)發(fā)的公共單元,其中,采用代理模式實(shí)現(xiàn)所述數(shù)據(jù)的轉(zhuǎn)發(fā)。
通過上述描述可知,本發(fā)明提供的上述基于模型驅(qū)動的自動化腳本調(diào)試方法和裝置,由于該方法包括:利用MBT的圖元,生成業(yè)務(wù)邏輯;生成自動化腳本;將腳本調(diào)試插件嵌入到MBT模型工具中;選擇所述腳本中修改后的語句,在已經(jīng)執(zhí)行過的語句和環(huán)境在緩存中保留的基礎(chǔ)上,直接執(zhí)行所述修改后的語句,因此能夠縮短腳本和測試套的運(yùn)行時(shí)間,從而降低整個(gè)自動化的調(diào)試時(shí)間。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實(shí)施例提供的第一種基于模型驅(qū)動的自動化腳本調(diào)試方法的示意圖;
圖2為本申請實(shí)施例提供的第一種基于模型驅(qū)動的自動化腳本調(diào)試裝置的示意圖。
具體實(shí)施方式
本發(fā)明的核心思想在于提供一種基于模型驅(qū)動的自動化腳本調(diào)試方法和裝置,能夠縮短腳本和測試套的運(yùn)行時(shí)間,從而降低整個(gè)自動化的調(diào)試時(shí)間。
該方法和裝置的測試對象為海量存儲設(shè)備,基于模型驅(qū)動的調(diào)試,就是在自動化腳本生成的基礎(chǔ)上,大幅度提高腳本調(diào)試的效率,避免腳本調(diào)試在自動化測試中的大量耗時(shí),降低軟件版本的自動化測試的反饋周期,轉(zhuǎn)變手工測試模式為全自動化測試模式。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請實(shí)施例提供的第一種基于模型驅(qū)動的自動化腳本調(diào)試方法如圖1所示,圖1為本申請實(shí)施例提供的第一種基于模型驅(qū)動的自動化腳本調(diào)試方法的示意圖。該方法包括如下步驟:
S1:利用MBT的圖元,生成業(yè)務(wù)邏輯;
需要說明的是,其中的MBT即Model Based Testing,基于模式驅(qū)動的調(diào)試,首先要基于業(yè)務(wù)模型的理解,利用MBT豐富的圖元畫出業(yè)務(wù)邏輯。
S2:生成自動化腳本;
S3:將腳本調(diào)試插件嵌入到MBT模型工具中;
在該步驟中,自動化腳本生成后嵌入MBT自動化調(diào)試插件,此插件就是腳本調(diào)試核心技術(shù),此插件的設(shè)計(jì)考慮設(shè)備環(huán)境參數(shù)的自動化刷新,設(shè)備邏輯參數(shù)與物理參數(shù)的映射,以及業(yè)務(wù)邏輯的重新自動連接。
S4:選擇所述腳本中修改后的語句,在已經(jīng)執(zhí)行過的語句和環(huán)境在緩存中保留的基礎(chǔ)上,直接執(zhí)行所述修改后的語句。
在實(shí)際的腳本調(diào)試過程中,可以通過鼠標(biāo)復(fù)選已經(jīng)修改好的語句,直接點(diǎn)擊運(yùn)行就可以只執(zhí)行復(fù)選語句,之前已執(zhí)行過的語言和環(huán)境中已經(jīng)完成的賦值不變并在緩存保留,從而運(yùn)行效率大幅度提升。在這種情況下,就可以在不完全重跑測試套和測試腳本的情況下,對指定修改的語句運(yùn)行,在設(shè)備環(huán)境中刷新數(shù)據(jù)和節(jié)點(diǎn)參數(shù)。
通過上述描述可知,本申請實(shí)施例提供的上述第一種基于模型驅(qū)動的自動化腳本調(diào)試方法,由于包括:利用MBT的圖元,生成業(yè)務(wù)邏輯;生成自動化腳本;將腳本調(diào)試插件嵌入到MBT模型工具中;選擇所述腳本中修改后的語句,在已經(jīng)執(zhí)行過的語句和環(huán)境在緩存中保留的基礎(chǔ)上,直接執(zhí)行所述修改后的語句,因此能夠縮短腳本和測試套的運(yùn)行時(shí)間,從而降低整個(gè)自動化的調(diào)試時(shí)間。
本申請實(shí)施例提供的第二種基于模型驅(qū)動的自動化腳本調(diào)試方法,是在上述第一種基于模型驅(qū)動的自動化腳本調(diào)試方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述將腳本調(diào)試插件嵌入到MBT模型工具中為:
將所述腳本調(diào)試插件以一次編譯動態(tài)連接的方式嵌入到所述MBT模型工具中。
在這種情況下,就屏蔽了手工安裝和手工運(yùn)行的報(bào)錯(cuò)風(fēng)險(xiǎn),提高了安全性。
本申請實(shí)施例提供的第三種基于模型驅(qū)動的自動化腳本調(diào)試方法,是在上述第二種基于模型驅(qū)動的自動化腳本調(diào)試方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述利用MBT的圖元,生成業(yè)務(wù)邏輯包括:
采用xml文件的方式,利用所述MBT的圖元控制邏輯節(jié)點(diǎn)參數(shù)到物理節(jié)點(diǎn)參數(shù)的拓?fù)溆成洹?/p>
利用上述方式就能夠把物理節(jié)點(diǎn)和邏輯點(diǎn)對應(yīng)起來,拓?fù)鋱D呈現(xiàn)物理節(jié)點(diǎn)。
本申請實(shí)施例提供的第四種基于模型驅(qū)動的自動化腳本調(diào)試方法,是在上述第三種基于模型驅(qū)動的自動化腳本調(diào)試方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述利用MBT的圖元控制邏輯節(jié)點(diǎn)參數(shù)到物理節(jié)點(diǎn)參數(shù)的拓?fù)溆成浒ǎ?/p>
利用動態(tài)鏈接庫,多對一的連接執(zhí)行的所述腳本,在腳本執(zhí)行失敗或完成的同時(shí)釋放所述動態(tài)鏈接庫。
利用上述方式,就解決了由于業(yè)務(wù)節(jié)點(diǎn)多導(dǎo)致的邏輯節(jié)點(diǎn)到物理節(jié)點(diǎn)映射慢的問題,上述過程不占用內(nèi)存資源。
本申請實(shí)施例提供的第五種基于模型驅(qū)動的自動化腳本調(diào)試方法,是在上述第四種基于模型驅(qū)動的自動化腳本調(diào)試方法的基礎(chǔ)上,還包括如下技術(shù)特征:
在所述利用MBT的圖元,生成業(yè)務(wù)邏輯之前,還包括:
采用Python語言抽象出用于數(shù)據(jù)的讀、寫和轉(zhuǎn)發(fā)的公共單元,其中,采用代理模式實(shí)現(xiàn)所述數(shù)據(jù)的轉(zhuǎn)發(fā)。
需要說明的是,所述Python語言兼容多種成熟的自動化架構(gòu)和編程語言,能夠跨平臺開發(fā)整個(gè)流程。
綜上所述,傳統(tǒng)的腳本調(diào)試是先運(yùn)行自動化測試套,初始化環(huán)境變量后再逐一調(diào)試自動化腳本,如果需要修改腳本,需要整個(gè)腳本重新運(yùn)行,如果修改測試套的話,就需要釋放整個(gè)資源重新運(yùn)行測試套費(fèi)時(shí)費(fèi)力,而本申請實(shí)施例提供的上述方法具有如下優(yōu)勢:無需重新運(yùn)行修改后的腳本,直接運(yùn)行修改后的語句;無需重新運(yùn)行修改后的測試套,直接運(yùn)行修改的測試套語句并映射環(huán)境參數(shù);腳本調(diào)試插件嵌入到MBT模型工具中,屏蔽手工安裝和運(yùn)行報(bào)錯(cuò)的風(fēng)險(xiǎn),采用動態(tài)鏈接庫方式消耗內(nèi)存低,運(yùn)行快等特點(diǎn)。
本申請實(shí)施例提供的第一種基于模型驅(qū)動的自動化腳本調(diào)試裝置如圖2所示,圖2為本申請實(shí)施例提供的第一種基于模型驅(qū)動的自動化腳本調(diào)試裝置的示意圖。該裝置包括:
第一生成單元201,用于利用MBT的圖元,生成業(yè)務(wù)邏輯,需要說明的是,基于模式驅(qū)動的調(diào)試,首先要基于業(yè)務(wù)模型的理解,利用MBT豐富的圖元畫出業(yè)務(wù)邏輯;
第二生成單元202,用于生成自動化腳本;
嵌入單元203,用于將腳本調(diào)試插件嵌入到MBT模型工具中,此插件就是腳本調(diào)試核心技術(shù),此插件的設(shè)計(jì)考慮設(shè)備環(huán)境參數(shù)的自動化刷新,設(shè)備邏輯參數(shù)與物理參數(shù)的映射,以及業(yè)務(wù)邏輯的重新自動連接;
執(zhí)行單元204,用于選擇所述腳本中修改后的語句,在已經(jīng)執(zhí)行過的語句和環(huán)境在緩存中保留的基礎(chǔ)上,直接執(zhí)行所述修改后的語句,可以通過鼠標(biāo)復(fù)選已經(jīng)修改好的語句,直接點(diǎn)擊運(yùn)行就可以只執(zhí)行復(fù)選語句,之前已執(zhí)行過的語言和環(huán)境中已經(jīng)完成的賦值不變并在緩存保留,從而運(yùn)行效率大幅度提升。在這種情況下,就可以在不完全重跑測試套和測試腳本的情況下,對指定修改的語句運(yùn)行,在設(shè)備環(huán)境中刷新數(shù)據(jù)和節(jié)點(diǎn)參數(shù)。
通過上述描述可知,本申請實(shí)施例提供的上述第一種基于模型驅(qū)動的自動化腳本調(diào)試裝置,能夠縮短腳本和測試套的運(yùn)行時(shí)間,從而降低整個(gè)自動化的調(diào)試時(shí)間。
本申請實(shí)施例提供的第二種基于模型驅(qū)動的自動化腳本調(diào)試裝置,是在上述第一種基于模型驅(qū)動的自動化腳本調(diào)試裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
所述嵌入單元具體用于將所述腳本調(diào)試插件以一次編譯動態(tài)連接的方式嵌入到所述MBT模型工具中。在這種情況下,就屏蔽了手工安裝和手工運(yùn)行的報(bào)錯(cuò)風(fēng)險(xiǎn),提高了安全性。
本申請實(shí)施例提供的第三種基于模型驅(qū)動的自動化腳本調(diào)試裝置,是在上述第二種基于模型驅(qū)動的自動化腳本調(diào)試裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
所述第一生成單元具體用于采用xml文件的方式,利用所述MBT的圖元控制邏輯節(jié)點(diǎn)參數(shù)到物理節(jié)點(diǎn)參數(shù)的拓?fù)溆成?。這樣就能夠把物理節(jié)點(diǎn)和邏輯點(diǎn)對應(yīng)起來,拓?fù)鋱D呈現(xiàn)物理節(jié)點(diǎn)。
本申請實(shí)施例提供的第四種基于模型驅(qū)動的自動化腳本調(diào)試裝置,是在上述第三種基于模型驅(qū)動的自動化腳本調(diào)試裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
所述第一生成單元具體用于利用動態(tài)鏈接庫,多對一的連接執(zhí)行的所述腳本,在腳本執(zhí)行失敗或完成的同時(shí)釋放所述動態(tài)鏈接庫。這就解決了由于業(yè)務(wù)節(jié)點(diǎn)多導(dǎo)致的邏輯節(jié)點(diǎn)到物理節(jié)點(diǎn)映射慢的問題,不占用內(nèi)存資源。
本申請實(shí)施例提供的第五種基于模型驅(qū)動的自動化腳本調(diào)試裝置,是在上述第四種基于模型驅(qū)動的自動化腳本調(diào)試裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
還包括:
抽象單元,用于采用Python語言抽象出用于數(shù)據(jù)的讀、寫和轉(zhuǎn)發(fā)的公共單元,其中,采用代理模式實(shí)現(xiàn)所述數(shù)據(jù)的轉(zhuǎn)發(fā)。
需要說明的是,所述Python語言兼容多種成熟的自動化架構(gòu)和編程語言,能夠跨平臺開發(fā)整個(gè)流程。
綜上所述,上述裝置兼容多種自動化架構(gòu),兼容多種自動化編程語言,完全打破了以往自動化腳本的調(diào)試思路,利用模型的強(qiáng)大優(yōu)勢,哪里有問題就調(diào)試哪里,修改哪里就調(diào)試哪里,并不需要重新運(yùn)行整個(gè)自動化測試套和自動化腳本,把耗時(shí)的地方全部剪掉。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。