專利名稱:軟件自動(dòng)測(cè)試的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)通信領(lǐng)域,尤其涉及一種軟件的自動(dòng)測(cè)試方法和系統(tǒng)。
背景技術(shù):
軟件自動(dòng)測(cè)試已廣泛應(yīng)用到各種軟件測(cè)試活動(dòng)中,通過自動(dòng)測(cè)試不僅能方便的模擬各種正?;虍惓G闆r的測(cè)試,同時(shí)也可以節(jié)省大量的時(shí)間和人力,提高測(cè)試效率。軟件自動(dòng)測(cè)試系統(tǒng)從結(jié)構(gòu)上多數(shù)可以分為控制模塊、驅(qū)動(dòng)模塊和樁模塊,其中控制模塊協(xié)調(diào)整個(gè)自動(dòng)測(cè)試流程,驅(qū)動(dòng)模塊根據(jù)測(cè)試用例構(gòu)造請(qǐng)求消息驅(qū)動(dòng)到被測(cè)對(duì)象,樁模塊用于響應(yīng)給被測(cè)對(duì)象運(yùn)行需要的數(shù)據(jù)支持。目前軟件測(cè)試中,軟件模塊往往有多種輸入以及多種輸出,需要與多個(gè)外部模塊和系統(tǒng)進(jìn)行交互,輸入輸出方式不僅只有函數(shù)調(diào)用接口,目前常見的還有網(wǎng)絡(luò)消息/文件/ 數(shù)據(jù)庫(kù)記錄等輸入輸出接口。但現(xiàn)有的軟件測(cè)試技術(shù)大部分都是單一消息輸入、單一消息類型輸出,或者是從函數(shù)級(jí)別對(duì)軟件模塊和系統(tǒng)進(jìn)行測(cè)試,難以從流程上對(duì)多種輸入多輸出接口交互和數(shù)據(jù)處理進(jìn)行有效自動(dòng)測(cè)試。另外,目前軟件自動(dòng)測(cè)試系統(tǒng)中的各模塊受結(jié)構(gòu)限制不能分開部署在不同的測(cè)試環(huán)境中運(yùn)行,難以模擬被測(cè)對(duì)象真實(shí)的運(yùn)行環(huán)境,往往使測(cè)試效果大打折扣。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種軟件自動(dòng)測(cè)試方法和系統(tǒng),能夠?qū)Χ噍斎攵噍敵龇绞降母鞣N接口進(jìn)行有效自動(dòng)測(cè)試,支持網(wǎng)絡(luò)消息/文件/數(shù)據(jù)庫(kù)等多種輸入輸出接口類型,支持1+N方式(即1個(gè)驅(qū)動(dòng)模塊+N個(gè)樁模塊)的靈活部署。為了實(shí)現(xiàn)發(fā)明目的,本發(fā)明提供一種軟件自動(dòng)測(cè)試的方法,包括以下步驟控制模塊將所有的測(cè)試用例保存在緩存中;所述測(cè)試用例包括響應(yīng)用例、請(qǐng)求用例和期待響應(yīng)用例;測(cè)試開始后,控制模塊根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;驅(qū)動(dòng)模塊調(diào)用預(yù)置的消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象,以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊;樁模塊根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,調(diào)用預(yù)置的消息協(xié)議模塊對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要;驅(qū)動(dòng)模塊接收被測(cè)對(duì)象的響應(yīng)消息,調(diào)用消息協(xié)議模塊解析該響應(yīng)消息,將其與所述期待響應(yīng)用例消息進(jìn)行比對(duì),確認(rèn)本次用例是否通過測(cè)試。優(yōu)選地,所述驅(qū)動(dòng)模塊調(diào)用消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象,以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊包括調(diào)用消息協(xié)議模塊封裝由控制模塊通知的請(qǐng)求用例;調(diào)用消息通信模塊將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象;
判斷是否接收到被測(cè)對(duì)象的響應(yīng)。優(yōu)選地,所述樁模塊根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要包括調(diào)用消息協(xié)議模塊封裝由控制模塊通知的響應(yīng)用例;接收被測(cè)對(duì)象的請(qǐng)求消息,調(diào)用消息解析模塊對(duì)請(qǐng)求消息進(jìn)行解析;對(duì)原先封裝的響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)需要;將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象。優(yōu)選地,在執(zhí)行所有步驟之后還包括控制模塊將本次用例執(zhí)行情況記錄入測(cè)試日志;控制模塊檢查是否所有用例執(zhí)行完畢,若還有測(cè)試用例,則調(diào)取下一個(gè)測(cè)試用例, 進(jìn)行下一輪用例自動(dòng)測(cè)試;否則,結(jié)束測(cè)試。優(yōu)選地,所述樁模塊為復(fù)數(shù)個(gè)。本發(fā)明提供一種軟件自動(dòng)測(cè)試的系統(tǒng),包括控制模塊、驅(qū)動(dòng)模塊、樁模塊、消息通信模塊和消息協(xié)議模塊,其中控制模塊,用于將所有的測(cè)試用例保存在緩存中;所述測(cè)試用例包括響應(yīng)用例、請(qǐng)求用例和期待響應(yīng)用例;測(cè)試開始后,控制模塊根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;驅(qū)動(dòng)模塊,用于調(diào)用預(yù)置的消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象,以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊;樁模塊,用于根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,調(diào)用預(yù)置的消息協(xié)議模塊對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要;所述驅(qū)動(dòng)模塊還用于接收被測(cè)對(duì)象的響應(yīng)消息,調(diào)用消息協(xié)議模塊解析該響應(yīng)消息,將其與所述期待響應(yīng)用例消息進(jìn)行比對(duì),確認(rèn)本次用例是否通過。優(yōu)選地,所述驅(qū)動(dòng)模塊具體用于調(diào)用消息協(xié)議模塊封裝由控制模塊通知的請(qǐng)求用例;調(diào)用消息通信模塊將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象;判斷是否接收到被測(cè)對(duì)象的響應(yīng)。優(yōu)選地,所述樁模塊具體用于調(diào)用消息協(xié)議模塊封裝由控制模塊通知的響應(yīng)用例;接收被測(cè)對(duì)象的請(qǐng)求消息,調(diào)用消息解析模塊對(duì)請(qǐng)求消息進(jìn)行解析;對(duì)原先封裝的響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)需要;將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象。優(yōu)選地,所述控制模塊具體用于根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;將本次用例執(zhí)行情況記錄入測(cè)試日志;檢查是否所有用例執(zhí)行完畢,若還有測(cè)試用例,則調(diào)取下一個(gè)測(cè)試用例,進(jìn)行下一輪用例自動(dòng)測(cè)試;否則,結(jié)束測(cè)試。本發(fā)明所提供的軟件自動(dòng)測(cè)試的方法或系統(tǒng),能夠處理一端輸入用例,多端輸出到各種類型樁的情況,消息字段可自定義,響應(yīng)用例可支持正則通配符比對(duì),使得測(cè)試用例能支持多消息類型、配置靈活。相關(guān)測(cè)試用例可統(tǒng)一保存,方便保存、傳送和加載,極大地提升了代碼重構(gòu)后做功能快速回歸測(cè)試的效率。此外,本發(fā)明還可根據(jù)需要可將驅(qū)動(dòng)模塊和樁模塊分離部署,使得測(cè)試環(huán)境更符合實(shí)際運(yùn)行環(huán)境。
圖1為本發(fā)明一實(shí)施方式中軟件自動(dòng)測(cè)試的方法的流程圖;圖2為本發(fā)明一實(shí)施方式中軟件自動(dòng)測(cè)試的方法的流程圖;圖3為本發(fā)明另一實(shí)施方式中軟件自動(dòng)測(cè)試的方法的流程圖;圖4為本發(fā)明一實(shí)施方式中軟件自動(dòng)測(cè)試的系統(tǒng)的結(jié)構(gòu)示意圖;圖5為本發(fā)明一實(shí)施例中軟件自動(dòng)測(cè)試的系統(tǒng)的工作流程圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施例方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖1示出了本發(fā)明的一個(gè)實(shí)施方式中軟件自動(dòng)測(cè)試的方法流程。該流程基于包括有控制模塊、驅(qū)動(dòng)模塊、多個(gè)樁模塊、消息協(xié)議模塊和消息通信模塊的測(cè)試系統(tǒng)。該方法包括以下步驟步驟S10,預(yù)置用以發(fā)送或接收消息的消息通信模塊以及用以封裝或解析消息的消息協(xié)議模塊;具體的,消息協(xié)議模塊用于按消息類型封裝或解析請(qǐng)求用例或響應(yīng)用例。消息通信模塊用于發(fā)送封裝后的請(qǐng)求用例和接收響應(yīng)用例。例如,消息協(xié)議模塊封裝來自驅(qū)動(dòng)模塊的請(qǐng)求用例和樁模塊的響應(yīng)用例;解析來自被測(cè)對(duì)象的請(qǐng)求消息和響應(yīng)消息。消息通信模塊將消息協(xié)議模塊封裝好的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象,或接收被測(cè)對(duì)象發(fā)來的請(qǐng)求消息送給消息協(xié)議模塊解析。步驟S20,控制模塊將所有的測(cè)試用例保存在緩存中;所述測(cè)試用例包括響應(yīng)用例、請(qǐng)求用例和期待響應(yīng)用例;控制模塊包括用例管理子塊,用于各種鏈路信息、請(qǐng)求用例、 響應(yīng)用例和期待響應(yīng)用例的管理,本步驟中,控制模塊調(diào)用用例管理子塊加載所有的測(cè)試用例保存在緩存中。步驟S30,測(cè)試開始后,控制模塊根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;通知方式不限于函數(shù)調(diào)用、Socket通知等。在一實(shí)施例中,步驟S20可包括首先,控制模塊調(diào)取當(dāng)前需要執(zhí)行的測(cè)試用例;然后將測(cè)試用例中的響應(yīng)用例通知給樁模塊,并等待樁模塊的反饋。若通知樁模塊成功則將測(cè)試用例中的請(qǐng)求用例和期待響應(yīng)用例通知驅(qū)動(dòng)模塊。樁模塊可有N個(gè),N為大于1的整數(shù),按需配置, 控制模塊根據(jù)消息類型可自動(dòng)通知到具體的哪個(gè)樁模塊。步驟S40,驅(qū)動(dòng)模塊調(diào)用消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象, 以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊;步驟S50,樁模塊根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要;步驟S60,驅(qū)動(dòng)模塊接收被測(cè)對(duì)象的響應(yīng)消息,調(diào)用消息協(xié)議模塊解析該響應(yīng)消息,將其與所述期待響應(yīng)用例消息進(jìn)行比對(duì),確認(rèn)本次用例是否通過測(cè)試。本發(fā)明中消息字段可自定義,響應(yīng)用例支持正則通配符比對(duì),使得測(cè)試用例能支持多消息類型、配置靈活。參照?qǐng)D2,示出了本發(fā)明一具體示例中軟件自動(dòng)測(cè)試系統(tǒng)的工作流程,該流程依次包括以下步驟步驟SlOl,控制模塊將響應(yīng)用例通知樁模塊;步驟S102,控制模塊將請(qǐng)求用例和期待響應(yīng)用例通知控制模塊。步驟S103,驅(qū)動(dòng)模塊調(diào)用消息協(xié)議模塊封裝請(qǐng)求用例。步驟S104,驅(qū)動(dòng)模塊調(diào)用消息通信模塊將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象。步驟S105,被測(cè)對(duì)象接收到請(qǐng)求用例,引起被測(cè)對(duì)象做內(nèi)部操作。步驟S106,被測(cè)對(duì)象發(fā)送請(qǐng)求消息到樁模塊請(qǐng)求數(shù)據(jù)支持,此步驟不限于只發(fā)送給一個(gè)樁,可以不發(fā)送給樁僅在被測(cè)對(duì)象內(nèi)部操作,也可以發(fā)送給多個(gè)樁。步驟S107,樁模塊接收被測(cè)對(duì)象請(qǐng)求消息,解析、對(duì)原先控制模塊通知的響應(yīng)用例做必要調(diào)整。步驟S108,樁模塊將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象。步驟S109,被測(cè)對(duì)象接收到樁模塊的響應(yīng)用例后,引起被測(cè)對(duì)象內(nèi)部操作。步驟S110,被測(cè)對(duì)象做內(nèi)部操作運(yùn)算后,響應(yīng)給驅(qū)動(dòng)模塊消息。步驟S111,驅(qū)動(dòng)模塊調(diào)用消息協(xié)議模塊解析響應(yīng)消息,將解析后的響應(yīng)消息和原先控制模塊通知的期待響應(yīng)用例消息進(jìn)行比對(duì)、確定本次用例是否通過。至此,完成一次自動(dòng)測(cè)試流程,根據(jù)用例的數(shù)目,將自動(dòng)繼續(xù)進(jìn)行下一個(gè)用例自動(dòng)測(cè)試。上述步驟S40中,驅(qū)動(dòng)模塊的處理過程具體包括調(diào)用消息協(xié)議模塊封裝由控制模塊通知的請(qǐng)求用例;調(diào)用消息通信模塊將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象;進(jìn)入等待被測(cè)對(duì)象響應(yīng)狀態(tài),判斷是否接收到被測(cè)對(duì)象的響應(yīng)。如果是,則執(zhí)行步驟S60,如果否,則接收被測(cè)對(duì)象響應(yīng)消息失敗的消息,例如接收消息有錯(cuò)誤、被測(cè)對(duì)象超時(shí)無(wú)響應(yīng)等。上述步驟S50中,樁模塊的處理過程具體包括調(diào)用消息協(xié)議模塊封裝由控制模塊通知的響應(yīng)用例;接收被測(cè)對(duì)象的請(qǐng)求消息,調(diào)用消息協(xié)議模塊對(duì)請(qǐng)求消息進(jìn)行解析;對(duì)原先封裝的響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)需要;將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象。參照?qǐng)D3,在一實(shí)施例中,在執(zhí)行圖1所示的所有步驟之后還包括步驟S70,控制模塊將本次用例執(zhí)行情況記錄入測(cè)試日志;本實(shí)施例中,控制模塊還包括測(cè)試日志子塊,用于實(shí)時(shí)記錄測(cè)試操作日志,將日志格式化顯示在界面上,輸出最終的測(cè)試結(jié)果日志。步驟S80,控制模塊檢查是否所有用例執(zhí)行完畢,若還有測(cè)試用例,則調(diào)取下一個(gè)測(cè)試用例,進(jìn)行下一輪用例自動(dòng)測(cè)試;否則,結(jié)束測(cè)試。本發(fā)明所提供的軟件自動(dòng)測(cè)試的方法,能夠處理一端輸入用例,多端輸出到各種類型樁的情況,消息字段可自定義,響應(yīng)用例支持正則通配符比對(duì),使得測(cè)試用例能支持多消息類型、配置靈活。相關(guān)測(cè)試用例可統(tǒng)一保存,方便保存、傳送和加載,極大地提升了代碼重構(gòu)后做功能快速回歸測(cè)試的效率。此外,本發(fā)明還可根據(jù)需要可將驅(qū)動(dòng)模塊和樁模塊分離部署,使得測(cè)試環(huán)境更符合實(shí)際運(yùn)行環(huán)境。本發(fā)明還提供一種軟件自動(dòng)測(cè)試系統(tǒng),用以實(shí)現(xiàn)上述方法。參照?qǐng)D4,該系統(tǒng)包括控制模塊10、驅(qū)動(dòng)模塊20、樁模塊30、消息通信模塊40以及消息協(xié)議模塊50,其中控制模塊10,用于將所有的測(cè)試用例保存在緩存中;所述測(cè)試用例包括響應(yīng)用例、請(qǐng)求用例和期待響應(yīng)用例;控制模塊10包括用例管理子塊11,用于各種鏈路信息、請(qǐng)求用例、響應(yīng)用例和期待響應(yīng)用例的管理,本步驟中,控制模塊10調(diào)用用例管理子塊11加載所有的測(cè)試用例保存在緩存中。測(cè)試開始后,控制模塊10根據(jù)消息類型將響應(yīng)用例通知到樁模塊30,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊20 ;控制模塊10的通知方式不限于函數(shù)調(diào)用、Socket通知等。在一實(shí)施例中,控制模塊10首先調(diào)取當(dāng)前需要執(zhí)行的測(cè)試用例;然后將測(cè)試用例中的響應(yīng)用例通知給樁模塊30,并等待樁模塊30的反饋。若通知樁模塊30成功則將測(cè)試用例中的請(qǐng)求用例和期待響應(yīng)用例通知驅(qū)動(dòng)模塊20。樁模塊30可有N個(gè),N為大于1的整數(shù), 按需配置,控制模塊10根據(jù)消息類型可自動(dòng)通知到具體的哪個(gè)樁模塊。驅(qū)動(dòng)模塊20,用于調(diào)用預(yù)置的消息通信模塊40將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象,以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊30 ;本發(fā)明中,消息協(xié)議模塊50用于按消息類型封裝或解析請(qǐng)求用例或響應(yīng)用例。消息通信模塊40用于發(fā)送封裝后的請(qǐng)求用例和接收響應(yīng)用例。例如,消息協(xié)議模塊50封裝來自驅(qū)動(dòng)模塊20的請(qǐng)求用例和樁模塊的響應(yīng)用例;解析來自被測(cè)對(duì)象的請(qǐng)求消息和響應(yīng)消息。消息通信模塊40將消息協(xié)議模塊50封裝好的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象,或接收被測(cè)對(duì)象發(fā)來的請(qǐng)求消息送給消息協(xié)議模塊50解析。樁模塊30,用于根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,調(diào)用預(yù)置的消息協(xié)議模塊50對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要;驅(qū)動(dòng)模塊20還用于接收被測(cè)對(duì)象的響應(yīng)消息,調(diào)用消息協(xié)議模塊50解析該響應(yīng)消息,將其與所述期待響應(yīng)用例消息進(jìn)行比對(duì),確認(rèn)本次用例是否通過。在一實(shí)施例中,上述驅(qū)動(dòng)模塊20具體用于調(diào)用消息協(xié)議模塊50封裝由控制模塊通知的請(qǐng)求用例;調(diào)用消息通信模塊40將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象;判斷是否接收到被測(cè)對(duì)象的響應(yīng)。在一實(shí)施例中,上述樁模塊30具體用于調(diào)用消息協(xié)議模塊50封裝由控制模塊10通知的響應(yīng)用例;接收被測(cè)對(duì)象的請(qǐng)求消息,調(diào)用消息解析模塊50對(duì)請(qǐng)求消息進(jìn)行解析;對(duì)原先封裝的響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)需要;將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象。在一實(shí)施例中,控制模塊10還用于將本次用例執(zhí)行情況記錄入測(cè)試日志;本實(shí)施例中,控制模塊10還包括測(cè)試日志子塊12,用于實(shí)時(shí)記錄測(cè)試操作日志,將日志格式化顯示在界面上,輸出最終的測(cè)試結(jié)果日志。
檢查是否所有用例執(zhí)行完畢,若還有測(cè)試用例,則調(diào)取下一個(gè)測(cè)試用例,進(jìn)行下一輪用例自動(dòng)測(cè)試;否則,結(jié)束測(cè)試。參照?qǐng)D5,為本發(fā)明軟件自動(dòng)測(cè)試系統(tǒng)一實(shí)施例的工作流程圖。該流包括以下步驟步驟S201,控制模塊10調(diào)取當(dāng)前需要執(zhí)行的測(cè)試用例;步驟S202,控制模塊10將測(cè)試用例中的響應(yīng)用例通知給樁模塊30,然后等待樁模塊30的反饋;通知方式不限于函數(shù)調(diào)用、Socket通知等。若通知樁模塊成功則進(jìn)入步驟 S203,否則經(jīng)步驟S401進(jìn)入步驟S204。步驟S401,樁模塊30等待控制模塊10響應(yīng)用例通知,若成功接收到響應(yīng)用例通知,則進(jìn)入步驟402,同時(shí)反饋給控制模塊10,由控制模塊10進(jìn)入步驟203 ;否則若通知失敗,則反饋給控制模塊10,進(jìn)入步驟204,響應(yīng)用例通知樁模塊30失敗不限于調(diào)用失敗、 Socket超時(shí)無(wú)響應(yīng)等。步驟S203,控制模塊10將測(cè)試用例中的請(qǐng)求用例和期待響應(yīng)用例通知驅(qū)動(dòng)模塊 20 ;至此,控制模塊10完成將本次用例通知到樁模塊30和驅(qū)動(dòng)模塊20。樁模塊30和驅(qū)動(dòng)模塊20同時(shí)進(jìn)入待命和驅(qū)動(dòng)狀態(tài)。步驟S301,驅(qū)動(dòng)模塊20調(diào)用消息協(xié)議模塊50封裝由控制模塊10通知的請(qǐng)求用例;步驟S302,驅(qū)動(dòng)模塊20調(diào)用消息通信模塊40將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象,引起被測(cè)對(duì)象內(nèi)部操作,將請(qǐng)求消息發(fā)送給樁模塊30 ;步驟S303,驅(qū)動(dòng)模塊20發(fā)送請(qǐng)求用例完畢,進(jìn)入等待被測(cè)對(duì)象響應(yīng)狀態(tài);步驟S404,樁模塊30接收到被測(cè)對(duì)象的請(qǐng)求消息,調(diào)用消息協(xié)議模塊50進(jìn)行消息解析;步驟S405,樁模塊30根據(jù)被測(cè)對(duì)象請(qǐng)求消息解析結(jié)果,對(duì)原先封裝后的響應(yīng)用例進(jìn)行必要的消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)需要;步驟S406,樁模塊30將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象;步驟S304,驅(qū)動(dòng)模塊20判斷是否接收到被測(cè)對(duì)象的響應(yīng);如果接收成功則進(jìn)入步驟S305,如果失敗則進(jìn)入步驟S306,接收失敗不限于接收消息有錯(cuò)誤、被測(cè)對(duì)象超時(shí)無(wú)響應(yīng)等。步驟S305,驅(qū)動(dòng)模塊20成功接收到被測(cè)對(duì)象響應(yīng)消息,調(diào)用消息協(xié)議模塊50解析響應(yīng)消息,將響應(yīng)消息和原先由控制模塊10通知的期待響應(yīng)用例進(jìn)行比對(duì),確認(rèn)本次用例是否通過;然后進(jìn)入步驟204。步驟S306,驅(qū)動(dòng)模塊10接收被測(cè)對(duì)象響應(yīng)消息失敗,接收失敗不限于接收消息有錯(cuò)誤、被測(cè)對(duì)象超時(shí)無(wú)響應(yīng)等,進(jìn)入步驟S204。步驟S204,控制模塊10將本次用例執(zhí)行情況記錄入測(cè)試日志。步驟S205,控制模塊10檢查是否所有用例執(zhí)行完畢,若還有測(cè)試用例,則取下一個(gè)測(cè)試用例,返回到步驟S201繼續(xù)下一輪用例自動(dòng)測(cè)試;否則所有用例執(zhí)行完畢,結(jié)束測(cè)
試ο以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種軟件自動(dòng)測(cè)試的方法,其特征在于,包括以下步驟控制模塊將所有的測(cè)試用例保存在緩存中;所述測(cè)試用例包括響應(yīng)用例、請(qǐng)求用例和期待響應(yīng)用例;測(cè)試開始后,控制模塊根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;驅(qū)動(dòng)模塊調(diào)用預(yù)置的消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象,以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊;樁模塊根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,調(diào)用預(yù)置的消息協(xié)議模塊對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要;驅(qū)動(dòng)模塊接收被測(cè)對(duì)象的響應(yīng)消息,調(diào)用消息協(xié)議模塊解析該響應(yīng)消息,將其與所述期待響應(yīng)用例消息進(jìn)行比對(duì),確認(rèn)本次用例是否通過測(cè)試。
2.如權(quán)利要求1所述的方法,其特征在于,所述驅(qū)動(dòng)模塊調(diào)用消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象,以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊包括調(diào)用消息協(xié)議模塊封裝由控制模塊通知的請(qǐng)求用例; 調(diào)用消息通信模塊將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象; 判斷是否接收到被測(cè)對(duì)象的響應(yīng)。
3.如權(quán)利要求1所述的方法,其特征在于,所述樁模塊根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息, 對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要包括調(diào)用消息協(xié)議模塊封裝由控制模塊通知的響應(yīng)用例; 接收被測(cè)對(duì)象的請(qǐng)求消息,調(diào)用消息協(xié)議模塊對(duì)請(qǐng)求消息進(jìn)行解析; 對(duì)原先封裝的響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)需要; 將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象。
4.如權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,在執(zhí)行所有步驟之后還包括 控制模塊將本次用例執(zhí)行情況記錄入測(cè)試日志;控制模塊檢查是否所有用例執(zhí)行完畢,若還有測(cè)試用例,則調(diào)取下一個(gè)測(cè)試用例,進(jìn)行下一輪用例自動(dòng)測(cè)試;否則,結(jié)束測(cè)試。
5.如權(quán)利要求4所述的方法,其特征在于,所述樁模塊為復(fù)數(shù)個(gè)。
6.一種軟件自動(dòng)測(cè)試的系統(tǒng),其特征在于,包括控制模塊、驅(qū)動(dòng)模塊、樁模塊、消息通信模塊和消息協(xié)議模塊,其中控制模塊,用于將所有的測(cè)試用例保存在緩存中;所述測(cè)試用例包括響應(yīng)用例、請(qǐng)求用例和期待響應(yīng)用例;測(cè)試開始后,控制模塊根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;驅(qū)動(dòng)模塊,用于調(diào)用預(yù)置的消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象, 以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊;樁模塊,用于根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,調(diào)用預(yù)置的消息協(xié)議模塊對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要;所述驅(qū)動(dòng)模塊還用于接收被測(cè)對(duì)象的響應(yīng)消息,調(diào)用消息協(xié)議模塊解析該響應(yīng)消息,將其與所述期待響應(yīng)用例消息進(jìn)行比對(duì),確認(rèn)本次用例是否通過。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述驅(qū)動(dòng)模塊具體用于 調(diào)用消息協(xié)議模塊封裝由控制模塊通知的請(qǐng)求用例;調(diào)用消息通信模塊將封裝后的請(qǐng)求用例發(fā)送到被測(cè)對(duì)象; 判斷是否接收到被測(cè)對(duì)象的響應(yīng)。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述樁模塊具體用于 調(diào)用消息協(xié)議模塊封裝由控制模塊通知的響應(yīng)用例;接收被測(cè)對(duì)象的請(qǐng)求消息,調(diào)用消息解析模塊對(duì)請(qǐng)求消息進(jìn)行解析; 對(duì)原先封裝的響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)需要; 將調(diào)整后的響應(yīng)用例響應(yīng)給被測(cè)對(duì)象。
9.如權(quán)利要求6至8中任一項(xiàng)所述的系統(tǒng),其特征在于,所述控制模塊具體用于 根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;將本次用例執(zhí)行情況記錄入測(cè)試日志;檢查是否所有用例執(zhí)行完畢,若還有測(cè)試用例,則調(diào)取下一個(gè)測(cè)試用例,進(jìn)行下一輪用例自動(dòng)測(cè)試;否則,結(jié)束測(cè)試。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述樁模塊為復(fù)數(shù)個(gè)。
全文摘要
本發(fā)明提供一種軟件自動(dòng)測(cè)試的方法,包括控制模塊根據(jù)消息類型將響應(yīng)用例通知到樁模塊,將請(qǐng)求用例和期待響應(yīng)用例通知到驅(qū)動(dòng)模塊;驅(qū)動(dòng)模塊調(diào)用預(yù)置的消息通信模塊將封裝后的請(qǐng)求用例消息發(fā)送到被測(cè)對(duì)象,以引起被測(cè)對(duì)象發(fā)送請(qǐng)求數(shù)據(jù)支持的請(qǐng)求消息至樁模塊;樁模塊根據(jù)被測(cè)對(duì)象發(fā)送的請(qǐng)求消息,調(diào)用預(yù)置的消息協(xié)議模塊對(duì)所述響應(yīng)用例進(jìn)行消息字段調(diào)整,以符合被測(cè)對(duì)象運(yùn)行數(shù)據(jù)的需要;驅(qū)動(dòng)模塊接收被測(cè)對(duì)象的響應(yīng)消息,調(diào)用消息協(xié)議模塊解析該響應(yīng)消息,將其與所述期待響應(yīng)用例消息進(jìn)行比對(duì),確認(rèn)本次用例是否通過測(cè)試。本發(fā)明還提供一種軟件自動(dòng)測(cè)試的系統(tǒng)。本發(fā)明所提供的方法或系統(tǒng),支持1個(gè)驅(qū)動(dòng)模塊+多個(gè)樁模塊的靈活部署。
文檔編號(hào)G06F11/36GK102214140SQ201110168160
公開日2011年10月12日 申請(qǐng)日期2011年6月21日 優(yōu)先權(quán)日2011年6月21日
發(fā)明者林明東 申請(qǐng)人:中興通訊股份有限公司