基于自定義腳本的自動(dòng)化測試系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了基于自定義腳本的自動(dòng)化測試系統(tǒng),包括加載解析模塊、執(zhí)行控制模塊以及執(zhí)行服務(wù)模塊,其中,所述加載解析模塊,用于加載并解析測試腳本,以備測試執(zhí)行;所述執(zhí)行控制模塊,用于通過調(diào)用所述執(zhí)行服務(wù)模塊執(zhí)行測試腳本,并對測試執(zhí)行過程進(jìn)行控制,以及在測試執(zhí)行過程中完成取值和檢驗(yàn)、錯(cuò)誤處理、報(bào)告生成、日志處理;所述執(zhí)行服務(wù)模塊,用于接受所述執(zhí)行控制模塊的調(diào)度,并在被調(diào)度時(shí)以適配器的形式與被測系統(tǒng)進(jìn)行交互,完成指令/報(bào)文的發(fā)送,以及指令/報(bào)文響應(yīng)的接收。本發(fā)明能夠?qū)崿F(xiàn)指令/報(bào)文的自動(dòng)化測試,并具有高度可擴(kuò)展性和普遍適用性。
【專利說明】基于自定義腳本的自動(dòng)化測試系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件測試【技術(shù)領(lǐng)域】,尤其涉及一種基于自定義腳本的自動(dòng)化測試系統(tǒng)。
【背景技術(shù)】
[0002]軟件測試是用于驗(yàn)證軟件質(zhì)量的活動(dòng)。驗(yàn)證的內(nèi)容包括軟件的功能特性和以及包括性能以及安全等的非功能特性。軟件測試的方式主要分手工測試與自動(dòng)化測試兩種,后者高度依賴于自動(dòng)化測試工具。自動(dòng)化測試是軟件測試部門的一項(xiàng)日常工作,工具的選擇是自動(dòng)化測試成敗的一項(xiàng)關(guān)鍵因素。在實(shí)踐中,針對自動(dòng)化測試工具,測試部門通常有三種選項(xiàng):自行開發(fā)、購買商業(yè)產(chǎn)品、采用開源工具。但是,針對單個(gè)測試項(xiàng)目自行開發(fā)測試工具通常費(fèi)時(shí)費(fèi)力。而商業(yè)產(chǎn)品和開源工具通常具有局限性,存在許多不能使用的測試場合。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明提供了一種基于自定義腳本的自動(dòng)化測試系統(tǒng),能夠?qū)崿F(xiàn)指令/報(bào)文的自動(dòng)化測試,并具有高度可擴(kuò)展性和普遍適用性。
[0004]本發(fā)明提供的基于自定義腳本的自動(dòng)化測試系統(tǒng),包括加載解析模塊、執(zhí)行控制模塊以及執(zhí)行服務(wù)模塊,其中,
[0005]所述加載解析模塊,用于加載并解析測試腳本,以備測試執(zhí)行;
[0006]所述執(zhí)行控制模塊,用于通過調(diào)用所述執(zhí)行服務(wù)模塊執(zhí)行測試腳本,并對測試執(zhí)行過程進(jìn)行控制,以及在測試執(zhí)行過程中完成取值和檢驗(yàn)、錯(cuò)誤處理、報(bào)告生成、日志處理;
[0007]所述執(zhí)行服務(wù)模塊,用于接受所述執(zhí)行控制模塊的調(diào)度,并在被調(diào)度時(shí)以適配器的形式與被測系統(tǒng)進(jìn)行交互,完成指令/報(bào)文的發(fā)送,以及指令/報(bào)文響應(yīng)的接收。
[0008]所述加載解析模塊,還用于驗(yàn)證所述測試腳本語法的合法性;其加載功能支持xml文件、電子表格文件兩種腳本格式,其解析功能將腳本處理為具有所述執(zhí)行控制模塊可執(zhí)行的數(shù)據(jù)結(jié)構(gòu)。
[0009]所述執(zhí)行控制模塊可執(zhí)行的數(shù)據(jù)結(jié)構(gòu),包括:指令/報(bào)文部分、參數(shù)部分、配置部分,其中,
[0010]所述指令/報(bào)文部分,由一個(gè)測試用例序列構(gòu)成,內(nèi)部結(jié)構(gòu)是多行列的二維表結(jié)構(gòu):每一行代表一個(gè)測試用例,每一列代表一種字段類型,行列交叉的單7Π格代表一個(gè)測試用例的一個(gè)字段;其中,每個(gè)測試用例包含多個(gè)字段,字段分為三類:內(nèi)容字段、控制字段、函數(shù)字段;其中,內(nèi)容字段由包括用例序號(hào)字段、指令字段、思考時(shí)間字段的單義字段以及包括指令類型字段的復(fù)合字段構(gòu)成;控制字段用來實(shí)現(xiàn)執(zhí)行中的分支與循環(huán)邏輯;函數(shù)字段用來進(jìn)行取值和校驗(yàn);每個(gè)測試用例,代表一個(gè)指令/報(bào)文的發(fā)送、以及取值、校驗(yàn)、流程控制邏輯;
[0011]所述參數(shù)部分:用于定義腳本參數(shù),并由所述指令/報(bào)文部分進(jìn)行引用,其中,所述腳本參數(shù)包括三種類型:無值參數(shù)、單值參數(shù)、多值參數(shù);
[0012]所述配置部分:包括兩類信息,第一類是與被測系統(tǒng)交互所需的地址、端口、服務(wù)名信息,供執(zhí)行服務(wù)模塊在建立適配器實(shí)例時(shí)使用;第二類是包括迭代次數(shù)的測試元數(shù)據(jù)。
[0013]所述函數(shù)字段包括取值函數(shù)、校驗(yàn)函數(shù)和復(fù)合函數(shù),其中,
[0014]所述取值函數(shù)用來在指令/報(bào)文響應(yīng)中取值,供執(zhí)行控制模塊使用,即取值函數(shù)提供了測試執(zhí)行階段動(dòng)態(tài)獲取變量值的能力;取值邏輯包括:按行、按位、按特征字符、正則表達(dá)式,并提供基于API的擴(kuò)展能力;
[0015]所述校驗(yàn)函數(shù)根據(jù)測試用例中的結(jié)果預(yù)期描述,對指令/報(bào)文響應(yīng)進(jìn)行校驗(yàn),以判斷測試用例的通過/失敗;校驗(yàn)邏輯包括等、不等、數(shù)值比較、字符排序、包含、不包含;校驗(yàn)函數(shù)屬注冊函數(shù),注冊發(fā)生在指令/報(bào)文發(fā)送之前,校驗(yàn)發(fā)生在收到響應(yīng)之后,支持同步校驗(yàn)與異步校驗(yàn);
[0016]所述復(fù)合函數(shù)封裝了常見取值和校驗(yàn)函數(shù)組合。
[0017]所述執(zhí)行控制模塊,用于通過調(diào)用所述執(zhí)行服務(wù)模塊執(zhí)行測試腳本,并對測試執(zhí)行過程進(jìn)行控制,以及在測試執(zhí)行過程中完成取值和檢驗(yàn)、錯(cuò)誤處理、報(bào)告生成、日志處理,包括以下步驟:
[0018]第一步:將參數(shù)值注入測試腳本中,其中,所述參數(shù)值包括靜態(tài)參數(shù)值與動(dòng)態(tài)參數(shù)值,所述靜態(tài)參數(shù)值預(yù)先寫在腳本的參數(shù)部分,所述動(dòng)態(tài)參數(shù)值由測試腳本中的取值函數(shù)在前序指令響應(yīng)或報(bào)文響應(yīng)中獲取;
[0019]第二步:調(diào)用所述執(zhí)行服務(wù)模塊的適配器實(shí)例,進(jìn)行指令/報(bào)文發(fā)送,并接收指令響應(yīng)或報(bào)文響應(yīng);
[0020]第三步:通過測試腳本中的校驗(yàn)函數(shù)判定所述測試用例的通過與失敗,并將判定結(jié)果記錄在測試報(bào)告中;
[0021]第四步:通過測試腳本中的取值函數(shù),從第二步中獲得的指令響應(yīng)/報(bào)文響應(yīng)中取值,以備后續(xù)測試用例使用;
[0022]第五步:繼續(xù)下一個(gè)測試用例的執(zhí)行。
[0023]若在測試腳本執(zhí)行過程發(fā)生異常,則所述執(zhí)行控制模塊終止測試執(zhí)行,并在報(bào)告中給出錯(cuò)誤提示信息。
[0024]所述執(zhí)行控制模塊將弓I擎運(yùn)行信息記錄在日志中。
[0025]所述執(zhí)行服務(wù)模塊以請求-響應(yīng)(request-response)方式與被測系統(tǒng)進(jìn)行交互,包括建立、維護(hù)、終止與被測系統(tǒng)的連接,將指令/報(bào)文發(fā)送至被測系統(tǒng),并接收指令/報(bào)文響應(yīng)。
[0026]所述執(zhí)行服務(wù)模塊在一次測試中,可以建立多個(gè)適配器實(shí)例,同一種適配器可以有零個(gè)到多個(gè)實(shí)例。
[0027]所述被測系統(tǒng)包括操作系統(tǒng)、中間件、數(shù)據(jù)庫或者支持通訊協(xié)議的軟件系統(tǒng)。
[0028]綜上所述,本發(fā)明的自動(dòng)化測試系統(tǒng)與商業(yè)工具、開源工具互為補(bǔ)充,在與業(yè)務(wù)結(jié)合緊密的同時(shí),保持了方案的高度可擴(kuò)展性,可以擴(kuò)展開發(fā)周邊應(yīng)用。此外,由于本發(fā)明的技術(shù)方案面向的問題域是指令/報(bào)文的自動(dòng)化測試,故具有普遍適用性。
【專利附圖】
【附圖說明】[0029]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的方案,下面將對實(shí)施例中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0030]圖1為本發(fā)明一實(shí)施例提供的基于自定義腳本的自動(dòng)化測試系統(tǒng)的結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】
[0031]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0032]優(yōu)利(Unisys)主機(jī)指令(下文簡稱主機(jī)指令)的自動(dòng)化測試,是本發(fā)明的一個(gè)重要實(shí)施例。下文以該實(shí)施例為基礎(chǔ),具體介紹本發(fā)明的原理與細(xì)節(jié)。
[0033]優(yōu)利(http:"www.Unisys, com)是大型主機(jī)系統(tǒng)供應(yīng)商,其主機(jī)系統(tǒng)涵蓋軟硬件解決方案,廣泛應(yīng)用于民航、金融等領(lǐng)域。用戶通過客戶端軟件訪問優(yōu)利主機(jī)系統(tǒng),通過指令交互完成業(yè)務(wù)操作。
[0034]圖1為本發(fā)明一實(shí)施例提供的基于自定義腳本的自動(dòng)化測試系統(tǒng)的結(jié)構(gòu)示意圖,如圖1所示,本實(shí)施例的基于自定義腳本的自動(dòng)化測試系統(tǒng),包括加載解析模塊、執(zhí)行控制模塊以及執(zhí)行服務(wù)模塊,其中,
[0035]所述加載解析模塊,用于加載并解析測試腳本,以備測試執(zhí)行;
[0036]進(jìn)一步地,所述加載解析模塊,還用于驗(yàn)證所述測試腳本語法的合法性;其加載功能支持xml文件、電子表格文件兩種腳本格式,其解析功能將腳本處理為具有所述執(zhí)行控制模塊可執(zhí)行的數(shù)據(jù)結(jié)構(gòu)。在主機(jī)指令測試場合,加載解析模塊的主要任務(wù)有:腳本讀入;腳本初步處理,形成樹型數(shù)據(jù)結(jié)構(gòu);驗(yàn)證腳本各字段的合法性;字段數(shù)據(jù)類型轉(zhuǎn)換;過濾來自主機(jī)的不可見字符,防止后續(xù)執(zhí)行控制模塊出錯(cuò);將客戶端軟件的快捷鍵翻譯成特別指令。
[0037]所述執(zhí)行控制模塊,用于通過調(diào)用所述執(zhí)行服務(wù)模塊執(zhí)行測試腳本,并對測試執(zhí)行過程進(jìn)行控制,以及在測試執(zhí)行過程中完成取值和檢驗(yàn)、錯(cuò)誤處理、報(bào)告生成、日志處理。
[0038]可選地,所述執(zhí)行控制模塊可執(zhí)行的數(shù)據(jù)結(jié)構(gòu),可以包括:指令/報(bào)文部分、參數(shù)部分、配置部分,其中,
[0039]所述指令/報(bào)文部分,由一個(gè)測試用例序列構(gòu)成,內(nèi)部結(jié)構(gòu)是多行列的二維表結(jié)構(gòu):每一行代表一個(gè)測試用例,每一列代表一種字段類型,行列交叉的單7Π格代表一個(gè)測試用例的一個(gè)字段;其中,每個(gè)測試用例包含多個(gè)字段,字段分為三類:內(nèi)容字段、控制字段、函數(shù)字段;其中,內(nèi)容字段由包括用例序號(hào)字段、指令字段、思考時(shí)間字段的單義字段以及包括指令類型字段的復(fù)合字段構(gòu)成;控制字段用來實(shí)現(xiàn)執(zhí)行中的分支與循環(huán)邏輯;函數(shù)字段包括取值函數(shù)字段和校驗(yàn)函數(shù)字段,分別用來進(jìn)行取值和校驗(yàn);每個(gè)測試用例,代表一個(gè)指令/報(bào)文的發(fā)送、以及取值、校驗(yàn)、流程控制邏輯(順序、分支、循環(huán))。在主機(jī)指令測試場合,指令字段(單義字段)代表將被執(zhí)行的主機(jī)指令,如查詢航班、訂座、輸入身份信息、支付、出票、改期、換開;指令類型字段(復(fù)合字段)由6位數(shù)字組成,每2位代表一類信息,從高位到低位分別是指令大類一優(yōu)利主機(jī)指令、將使用的執(zhí)行適配器序號(hào)一01、指令小類一全屏指令或普通指令;取值函數(shù)字段用于從指令響應(yīng)中取值;校驗(yàn)函數(shù)字段用于根據(jù)指令響應(yīng)的預(yù)期值進(jìn)行校驗(yàn),作為用例是否通過、分支與循環(huán)控制的依據(jù)。校驗(yàn)函數(shù)通常會(huì)與取值函數(shù)組合使用,先取值再校驗(yàn):如從出票指令的響應(yīng)中,通過取值函數(shù)得到新生成的客票編號(hào),再通過檢驗(yàn)函數(shù)判斷該客票編號(hào)是否以屬于特定航空公司;
[0040]測試是以驗(yàn)證為目的的活動(dòng),自動(dòng)化測試工具的取值和校驗(yàn)?zāi)芰κ枪ぞ叩暮诵母偁幜χ弧1景l(fā)明定義了一種取值校驗(yàn)語言,并提供了函數(shù)庫。測試人員可以通過了解語法語義后,通過使用函數(shù)字段將取值和校驗(yàn)功能方便地插入到腳本中。
[0041]具體地,所述函數(shù)字段包括取值函數(shù)、校驗(yàn)函數(shù)和復(fù)合函數(shù),其中,
[0042]所述取值函數(shù)用來在指令/報(bào)文響應(yīng)中取值,供執(zhí)行控制模塊使用,即取值函數(shù)提供了測試執(zhí)行階段動(dòng)態(tài)獲取變量值的能力;取值邏輯包括:按行、按位、按特征字符、正則表達(dá)式,并提供基于API的擴(kuò)展能力;
[0043]所述校驗(yàn)函數(shù)根據(jù)測試用例中的結(jié)果預(yù)期描述,對指令/報(bào)文響應(yīng)進(jìn)行校驗(yàn),以判斷測試用例的通過/失敗;校驗(yàn)邏輯包括等、不等、數(shù)值比較、字符排序、包含、不包含;校驗(yàn)函數(shù)屬注冊函數(shù),注冊發(fā)生在指令/報(bào)文發(fā)送之前,校驗(yàn)發(fā)生在收到響應(yīng)之后,支持同步校驗(yàn)與異步校驗(yàn);
[0044]所述復(fù)合函數(shù)封裝了常見取值和校驗(yàn)函數(shù)組合。
[0045]在主機(jī)指令測試場合,需要獲取和校驗(yàn)的值通常有:出票指令響應(yīng)中的客票編號(hào)、訂座封口指令響應(yīng)中的旅客訂座記錄編號(hào)PNR及狀態(tài)、成人/兒童/嬰兒旅客類型標(biāo)識(shí)、旅客序號(hào)標(biāo)識(shí)、打票機(jī)標(biāo)識(shí)、航空公司代碼和航班號(hào)、客票狀態(tài)。
[0046]實(shí)施中開發(fā)了一套通用函數(shù)庫,包括多個(gè)以Z(Zoom)為前綴的取值函數(shù)、以C(Check)為前綴的校驗(yàn)函數(shù),以F(Function)為前綴的復(fù)合函數(shù)。下面是該套函數(shù)庫在主機(jī)指令測試場合的用法示例:出票指令執(zhí)行后,F(xiàn)l函數(shù)可用來獲取和校驗(yàn)客票編號(hào)。Fl函數(shù)定義為Fl = Z1*Z3*(C2+C2),應(yīng)用在出票指令后其含義是:在出票指令的響應(yīng)中,先使用Zl函數(shù)通過行號(hào)取到客票編號(hào)所在行的字符串值,再使用Z3函數(shù)通過前綴+長度的方式精確取到客票編號(hào),最后使用兩個(gè)C2函數(shù)對客票編號(hào)進(jìn)行校驗(yàn),確認(rèn)客票是否屬于兩家期望航空公司中的其中一家。函數(shù)名較短且支持函數(shù)間邏輯運(yùn)算的特性,便于將函數(shù)以字段的形式使用在腳本中,并表達(dá)豐富的取值與校驗(yàn)語義;
[0047]所述參數(shù)部分:用于定義腳本參數(shù),并由所述指令/報(bào)文部分進(jìn)行引用,其中,所述腳本參數(shù)包括三種類型:無值參數(shù)、單值參數(shù)、多值參數(shù);
[0048]在主機(jī)指令測試場合,無值參數(shù)表示計(jì)劃在指令響應(yīng)中獲取值的參數(shù),單值參數(shù)是最常見的參數(shù)類型,多值參數(shù)在腳本迭代執(zhí)行時(shí)使用。在本發(fā)明中使用術(shù)語“腳本參數(shù)”而不使用“函數(shù)參數(shù)”,是因?yàn)閰?shù)可出現(xiàn)在腳本“指令/報(bào)文部分”的任意位置,而不僅限于所述三類函數(shù)中。
[0049]所述配置部分:包括兩類信息,第一類是與被測系統(tǒng)交互所需的地址、端口、服務(wù)名信息,供執(zhí)行服務(wù)模塊在建立適配器實(shí)例時(shí)使用;第二類是包括迭代次數(shù)的測試元數(shù)據(jù);
[0050]在主機(jī)指令測試場合,配置信息包括主機(jī)服務(wù)器IP地址、端口號(hào)、賬號(hào)、密碼、會(huì)話標(biāo)識(shí)、缺省思考時(shí)間。配置信息可以建立多條,以滿足多會(huì)話的測試需求。[0051]腳本語言在設(shè)計(jì)時(shí),最重要的是考慮表達(dá)能力,是否能夠充分表達(dá)測試需求。本發(fā)明充分考慮了各種被測系統(tǒng)指令/報(bào)文形式的特性,設(shè)計(jì)腳本語法、語義時(shí)將支持多種指令/報(bào)文類型作為基本需求,將不同指令、報(bào)文統(tǒng)一在同一種腳本格式下。
[0052]此處所述的主機(jī)指令測試實(shí)施例具有典型性。對于其他支持指令/報(bào)文交互的被測系統(tǒng),使用本發(fā)明實(shí)施自動(dòng)化測試需要完成的工作有:定義新的指令/報(bào)文類型編碼、定義配置部分的內(nèi)容、增加新的適配器類型、編寫測試腳本并執(zhí)行。
[0053]綜上所述,本發(fā)明腳本語言的特點(diǎn)是:
[0054]使用簡潔的語法,提供了腳本對測試需求的強(qiáng)大表達(dá)能力;
[0055]與取值校驗(yàn)邏輯無縫集成;
[0056]支持多種指令/報(bào)文類型的自動(dòng)化測試,可擴(kuò)展性強(qiáng);
[0057]不同指令/報(bào)文類型,擁有一致的腳本形式。
[0058]本發(fā)明的自動(dòng)化測試系統(tǒng)會(huì)根據(jù)配置信息將不同的指令/報(bào)文分發(fā)至不同的服務(wù)端。腳本支持混合指令/報(bào)文類型,如多操作系統(tǒng)(UNISYS主機(jī)、UNIX、LINUX、WINDOWS)、多協(xié)議(TCP、HTTP、WEBSERVICE)、多平臺(tái)(TLH 等)、多數(shù)據(jù)庫(Oracle、PostgreSQL、MySQL等。
[0059]進(jìn)一步地,所述執(zhí)行控制模塊的運(yùn)行包括以下步驟:
[0060]第一步:將參數(shù)值注入測試腳本中,其中,所述參數(shù)值包括靜態(tài)參數(shù)值與動(dòng)態(tài)參數(shù)值,所述靜態(tài)參數(shù)值預(yù)先寫在腳本的參數(shù)部分,所述動(dòng)態(tài)參數(shù)值由測試腳本中的取值函數(shù)在前序指令響應(yīng)或報(bào)文響應(yīng)中獲??;
[0061]第二步:調(diào)用所述執(zhí)行服務(wù)模塊的適配器實(shí)例,進(jìn)行指令/報(bào)文發(fā)送,并接收指令響應(yīng)或報(bào)文響應(yīng);
[0062]在主機(jī)指令測試場合,主機(jī)指令測試適配器有兩項(xiàng)關(guān)鍵工作:一是建立與維護(hù)主機(jī)系統(tǒng)的會(huì)話,二是分別處理普通指令與全屏指令。
[0063]第三步:通過測試腳本中的校驗(yàn)函數(shù)判定所述測試用例的通過與失敗,并將判定結(jié)果記錄在測試報(bào)告中;
[0064]第四步:通過測試腳本中的取值函數(shù),從第二步中獲得的指令響應(yīng)/報(bào)文響應(yīng)中取值,以備后續(xù)測試用例使用;
[0065]第五步:繼續(xù)下一個(gè)測試用例的執(zhí)行。
[0066]進(jìn)一步地,若在測試腳本執(zhí)行過程發(fā)生異常,則所述執(zhí)行控制模塊終止測試執(zhí)行,并在報(bào)告中給出錯(cuò)誤提示信息。
[0067]可選地,所述執(zhí)行控制模塊將引擎運(yùn)行信息記錄在日志中;
[0068]在主機(jī)指令測試場合,測試報(bào)告服務(wù)于測試工程師,主要記錄如下信息:用例序號(hào)、執(zhí)行時(shí)間、發(fā)送指令、指令響應(yīng)、取值結(jié)果、校驗(yàn)結(jié)果、用例成功失敗統(tǒng)計(jì)。測試日志服務(wù)于測試工具開發(fā)工程師,主要記錄程序的正常、異常運(yùn)行日志,不涉及測試和業(yè)務(wù)邏輯。
[0069]所述執(zhí)行服務(wù)模塊,用于接受所述執(zhí)行控制模塊的調(diào)度,并在被調(diào)度時(shí)以適配器的形式與被測系統(tǒng)進(jìn)行交互,完成指令/報(bào)文的發(fā)送,以及指令/報(bào)文響應(yīng)的接收;
[0070]不同的適配器類型適用于不同測試場合,直接負(fù)責(zé)與被測系統(tǒng)交互,因此具體實(shí)現(xiàn)差異較大。適配器實(shí)現(xiàn)的復(fù)雜度主要取決于與被測系統(tǒng)交互的復(fù)雜度:會(huì)話建立與管理方式、同步交互或是異步交互、指令/報(bào)文復(fù)雜度。在主機(jī)指令測試場合,適配器實(shí)現(xiàn)難點(diǎn)在于全屏指令的處理。
[0071]可選地,所述執(zhí)行服務(wù)模塊可以以請求-響應(yīng)(request-response)方式與被測系統(tǒng)進(jìn)行交互,包括建立、維護(hù)、終止與被測系統(tǒng)的連接,將指令/報(bào)文發(fā)送至被測系統(tǒng),并接收指令/報(bào)文響應(yīng)。
[0072]可選地,所述執(zhí)行服務(wù)模塊在一次測試中,可以建立多個(gè)適配器實(shí)例,同一種適配器可以有零個(gè)到多個(gè)實(shí)例。
[0073]可選地,所述被測系統(tǒng)包括操作系統(tǒng)、中間件、數(shù)據(jù)庫或者支持通訊協(xié)議的軟件系統(tǒng)。
[0074]綜上所述,本發(fā)明的自動(dòng)化測試系統(tǒng)的特點(diǎn)是:
[0075]針對多種指令/報(bào)文類型、多個(gè)服務(wù)端配置建立多個(gè)連接,對不同指令/報(bào)文類型、服務(wù)端類型進(jìn)行綜合調(diào)度執(zhí)行;
[0076]具有腳本順序、分支、循環(huán)三種程序結(jié)構(gòu)的運(yùn)行控制能力;
[0077]支持同步/異步兩種執(zhí)行方式;
[0078]具有強(qiáng)大的報(bào)告生成能力、日志支持能力;
[0079]支持多種指令/報(bào)文類型的自動(dòng)化測試,可擴(kuò)展性強(qiáng);
[0080]本發(fā)明的自動(dòng)化測試系統(tǒng)對不同指令/報(bào)文類型采用一致的執(zhí)行處理方式。
[0081]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換,而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述系統(tǒng)包括加載解析模塊、執(zhí)行控制模塊以及執(zhí)行服務(wù)模塊,其中, 所述加載解析模塊,用于加載并解析測試腳本,以備測試執(zhí)行; 所述執(zhí)行控制模塊,用于通過調(diào)用所述執(zhí)行服務(wù)模塊執(zhí)行測試腳本,并對測試執(zhí)行過程進(jìn)行控制,以及在測試執(zhí)行過程中完成取值和檢驗(yàn)、錯(cuò)誤處理、報(bào)告生成、日志處理; 所述執(zhí)行服務(wù)模塊,用于接受所述執(zhí)行控制模塊的調(diào)度,并在被調(diào)度時(shí)以適配器的形式與被測系統(tǒng)進(jìn)行交互,完成指令/報(bào)文的發(fā)送,以及指令/報(bào)文響應(yīng)的接收。
2.根據(jù)權(quán)利要求1所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述加載解析模塊,還用于驗(yàn)證所述測試腳本語法的合法性;其加載功能支持xml文件、電子表格文件兩種腳本格式,其解析功能將腳本處理為具有所述執(zhí)行控制模塊可執(zhí)行的數(shù)據(jù)結(jié)構(gòu)。
3.根據(jù)權(quán)利要求2所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述執(zhí)行控制模塊可執(zhí)行的數(shù)據(jù)結(jié)構(gòu),包括:指令/報(bào)文部分、參數(shù)部分、配置部分,其中, 所述指令/報(bào)文部分,由一個(gè)測試用例序列構(gòu)成,內(nèi)部結(jié)構(gòu)是多行列的二維表結(jié)構(gòu):每一行代表一個(gè)測試用例,每一列代表一種字段類型,行列交叉的單兀格代表一個(gè)測試用例的一個(gè)字段;其中,每個(gè)測試用例包含多個(gè)字段,字段分為三類:內(nèi)容字段、控制字段、函數(shù)字段;其中,內(nèi)容字段由包括用例序號(hào)字段、指令字段、思考時(shí)間字段的單義字段以及包括指令類型字段的復(fù)合字段構(gòu)成;控制字段用來實(shí)現(xiàn)執(zhí)行中的分支與循環(huán)邏輯;函數(shù)字段用來進(jìn)行取值和校驗(yàn);每個(gè)測試用例,代表一個(gè)指令/報(bào)文的發(fā)送、以及取值、校驗(yàn)、流程控制邏輯; 所述參數(shù)部分:用于定義腳本參數(shù),并由所述指令/報(bào)文部分進(jìn)行引用,其中,所述腳本參數(shù)包括三種類型:無值參數(shù)、單值參數(shù)、多值參數(shù); 所述配置部分:包括兩類信息,第一類是與被測系統(tǒng)交互所需的地址、端口、服務(wù)名信息,供執(zhí)行服務(wù)模塊在建立適配器實(shí)例時(shí)使用;第二類是包括迭代次數(shù)的測試元數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述函數(shù)字段包括取值函數(shù)、校驗(yàn)函數(shù)和復(fù)合函數(shù),其中, 所述取值函數(shù)用來在指令/報(bào)文響應(yīng)中取值,供執(zhí)行控制模塊使用,即取值函數(shù)提供了測試執(zhí)行階段動(dòng)態(tài)獲取變量值的能力;取值邏輯包括:按行、按位、按特征字符、正則表達(dá)式,并提供基于API的擴(kuò)展能力; 所述校驗(yàn)函數(shù)根據(jù)測試用例中的結(jié)果預(yù)期描述,對指令/報(bào)文響應(yīng)進(jìn)行校驗(yàn),以判斷測試用例的通過/失??;校驗(yàn)邏輯包括等、不等、數(shù)值比較、字符排序、包含、不包含;校驗(yàn)函數(shù)屬注冊函數(shù),注冊發(fā)生在指令/報(bào)文發(fā)送之前,校驗(yàn)發(fā)生在收到響應(yīng)之后,支持同步校驗(yàn)與異步校驗(yàn); 所述復(fù)合函數(shù)封裝了常見取值和校驗(yàn)函數(shù)組合。
5.根據(jù)權(quán)利要求4所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述執(zhí)行控制模塊,用于通過調(diào)用所述執(zhí)行服務(wù)模塊執(zhí)行測試腳本,并對測試執(zhí)行過程進(jìn)行控制,以及在測試執(zhí)行過程中完成取值和檢驗(yàn)、錯(cuò)誤處理、報(bào)告生成、日志處理,包括以下步驟: 第一步:將參數(shù)值注入測試腳本中,其中,所述參數(shù)值包括靜態(tài)參數(shù)值與動(dòng)態(tài)參數(shù)值,所述靜態(tài)參數(shù)值預(yù)先寫在腳本的參數(shù)部分,所述動(dòng)態(tài)參數(shù)值由測試腳本中的取值函數(shù)在前序指令響應(yīng)或報(bào)文響應(yīng)中獲?。坏诙?調(diào)用所述執(zhí)行服務(wù)模塊的適配器實(shí)例,進(jìn)行指令/報(bào)文發(fā)送,并接收指令響應(yīng)或報(bào)文響應(yīng); 第三步:通過測試腳本中的校驗(yàn)函數(shù)判定所述測試用例的通過與失敗,并將判定結(jié)果記錄在測試報(bào)告中; 第四步:通過測試腳本中的取值函數(shù),從第二步中獲得的指令響應(yīng)/報(bào)文響應(yīng)中取值,以備后續(xù)測試用例使用; 第五步:繼續(xù)下一個(gè)測試用例的執(zhí)行。
6.根據(jù)權(quán)利要求5所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,若在測試腳本執(zhí)行過程發(fā)生異常,則所述執(zhí)行控制模塊終止測試執(zhí)行,并在報(bào)告中給出錯(cuò)誤提示信息。
7.根據(jù)權(quán)利要求5所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述執(zhí)行控制模塊將引擎運(yùn)行信息記錄在日志中。
8.根據(jù)權(quán)利要求5所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述執(zhí)行服務(wù)模塊以請求-響應(yīng)(request-response)方式與被測系統(tǒng)進(jìn)行交互,包括建立、維護(hù)、終止與被測系統(tǒng)的連接,將指令/報(bào)文發(fā)送至被測系統(tǒng),并接收指令/報(bào)文響應(yīng)。
9.根據(jù)權(quán)利要求8所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述執(zhí)行服務(wù)模塊在一次測試中,可以建立多個(gè)適配器實(shí)例,同一種適配器可以有零個(gè)到多個(gè)實(shí)例。
10.根據(jù)權(quán)利要求1-9之一所述的基于自定義腳本的自動(dòng)化測試系統(tǒng),其特征在于,所述被測系統(tǒng)包括操作系統(tǒng)、中間件、數(shù)據(jù)庫或者支持通訊協(xié)議的軟件系統(tǒng)。
【文檔編號(hào)】G06F11/36GK104021080SQ201410266121
【公開日】2014年9月3日 申請日期:2014年6月13日 優(yōu)先權(quán)日:2014年6月13日
【發(fā)明者】孫峰, 閆勇 申請人:中國民航信息網(wǎng)絡(luò)股份有限公司