專利名稱::生成腳本文件對Web應(yīng)用軟件進行測試的方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于自動化測試領(lǐng)域,特別涉及一種生成腳本文件對Web應(yīng)用軟件進行測試的方法及裝置。
背景技術(shù):
:自動化測試是借助于測試工具、測試規(guī)范,模擬人工操作,從而局部或全部代替人工進行測試及提高測試效率的過程。自動化測試有很強的優(yōu)勢,它借助計算機的計算能力,可以重復(fù)地、不知疲倦地運行,對于數(shù)據(jù),能進行精確的、大批量的比較,而且不會出錯。自動化測試能把測試人員從繁重的、重復(fù)的測試過程中解脫出來,因此,自動化測試越來越受到大家的重視與青睞。申請?zhí)枮?00710043589的專利"一種Web應(yīng)用系統(tǒng)的自動化測試方法及裝置",其測試方法如下將Web應(yīng)用系統(tǒng)的業(yè)務(wù)流程分解成原子流程的組合,對應(yīng)每個原子流程創(chuàng)建自動化測試構(gòu)建(即相當于為每個原子流程編寫了一個函數(shù),所有函數(shù)構(gòu)成了函數(shù)庫),而各個測試用例中記錄了原子流程序列,對應(yīng)序列中的每個原子流程,調(diào)用相應(yīng)的測試構(gòu)建,對Web應(yīng)用應(yīng)用軟件系統(tǒng)進行測試。例如某Web應(yīng)用軟件的業(yè)務(wù)流程被分解為了A、B、C、D、E這5個原子流程,并為每個原子流程編寫了相應(yīng)的函數(shù)。々!i殳測試用例1對應(yīng)的流程序列為A》B》E,測試用例2對應(yīng)的流程序列為E->C->D。測試才丸行時,測試用例1會依次調(diào)用A、B、E對應(yīng)的函數(shù),測試用例2會依次調(diào)用E、C、D對應(yīng)的函數(shù)。測試用例1和測試用例2都調(diào)用了原子流程E對應(yīng)的函數(shù),提高了代碼的重用性,而且,應(yīng)用軟件升級后,若原子流程E的功能發(fā)生改變,只需要修改原子流程E對應(yīng)的函數(shù),不需要分別^奮改測試用例1和測試用例2,在一定程度上P爭低了應(yīng)用軟件升級后腳本的維護量。這里所說的腳本,英文是Script,實際上就是程序。所有用腳本語言寫的程序(例如函數(shù)庫中的函數(shù)、測試用例中對函數(shù)的調(diào)用)都屬于腳本。腳本和測試用例的關(guān)系如下根據(jù)寫好的測試用例,用腳本實現(xiàn)測試用例中各個測試步驟的功能,封裝成各個函數(shù);測試用例扭^亍的時候,通過調(diào)用各個函數(shù),來驅(qū)動測試按照設(shè)計好的測試步驟逐步執(zhí)行,以達到自動化測試的目的。但是,對于這種通過建立函數(shù)庫,測試用例再調(diào)用函數(shù)庫中函數(shù)來進行測試的方法,仍然存在以下問題Web應(yīng)用軟件升級后,界面的任何改變,都需要修改函數(shù)庫,函數(shù)庫中腳本維護量仍然很大。Web應(yīng)用軟件版本的每次升級,Web頁面都會發(fā)生或多或少的變化(如添加或刪除了一個文本框,按鈕的id發(fā)生了變化,等等)。<叚設(shè)某Web應(yīng)用軟件中存在一個"添加用戶"的原子流程E,添加用戶的界面在版本升級前如下面圖1所示,Web應(yīng)用軟件升級后,添加用戶頁面變成了圖2所示的樣子,"登錄密碼確認"輸入框去掉了,"用戶類型"下拉框變成了輸入框,增加了"是否填寫詳細信息,,復(fù)選框以及"電話號碼"輸入框。此時我們必須修改原子流程E對應(yīng)的函數(shù)。由上述分析,不難發(fā)現(xiàn),在進行Web自動化測試過程中,由于Web應(yīng)用軟件升級所帶來的界面變化,要求我們不斷修改腳本,因此,腳本的維護量較高。
發(fā)明內(nèi)容為了解決Web應(yīng)用軟件自動化測試過程中腳本的維護量較高的問題,本發(fā)明實施例提供了一種生成腳本文件的方法,包括獲取待測Web應(yīng)用軟件中各Web元素;將各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件。同時本發(fā)明實施例還提供一種Web應(yīng)用軟件的自動化測試方法,包括獲取待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素標識信息,及待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素對應(yīng)的操作動作描述信息;根據(jù)測試步驟,通過腳本文件依次調(diào)用對應(yīng)的Web元素標識信息和對應(yīng)的Web元素操作動作描述信息,對待測Web應(yīng)用軟件進行自動化測試,所i^本文件通過Web元素及其對應(yīng)的操作動作集合翻譯而成,所述Web元素為待測Web應(yīng)用軟件中的Web元素。同時本發(fā)明實施例還提供一種Web應(yīng)用應(yīng)用軟件的自動化測試裝置,包括存儲模塊用于存儲待測Web應(yīng)用軟件中各Web元素,和根據(jù)各Web元素及其對應(yīng)的操作動作集合翻譯成的腳本文件;獲取模塊用于獲取待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素標識信息,及待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素對應(yīng)的操作動作描述信息;測試模塊用于根據(jù)測試步驟,通過腳本文件依次調(diào)用對應(yīng)的Web元素標識信息和對應(yīng)的Web元素操作動作描述信息,對待測Web應(yīng)用軟件進行自動化測試。由上述本發(fā)明提供的具體實施方案可以看出,正是由于獲取待測Web應(yīng)用軟件中各Web元素,將各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件,之后根據(jù)測試步驟,通過已生成的腳本文件依次調(diào)用對應(yīng)的Web元素標識信息和操作動作描述信息,使得腳本文件的維護量降低。圖1為Web應(yīng)用軟件升級前界面示意圖;圖2為Web應(yīng)用軟件升級后界面示意圖;圖3為本發(fā)明提供的第一實施例方法流程圖;圖4為本發(fā)明提供的第一實施例中Web應(yīng)用軟件升級前腳本文件運行所需的參數(shù)表示意圖5為本發(fā)明提供的第一實施例中Web應(yīng)用軟件升級后腳本文件運行所需的參數(shù)表示意圖6為本發(fā)明提供的第二實施例裝置結(jié)構(gòu)圖。具體實施例方式本發(fā)明提供的第一實施例是一種Web應(yīng)用軟件的自動化測試方法,方法流程如圖3所示,包括步驟101:獲取待測Web應(yīng)用軟件中各Web元素,生成Web元素庫。步驟102:基于Web元素庫中的各Web元素,生成各Web元素的操作集合,并根據(jù)各個Web元素及對應(yīng)的操作集合生成操作庫。步驟103:逐個讀取操作庫中的Web元素以及其對應(yīng)的操作集合,設(shè)定每個操作執(zhí)行的動作,根據(jù)Web元素以及其操作對應(yīng)的動作生成控制單元(即操作動作庫),并翻譯成腳本文件。步驟104:將一個測試用例根據(jù)控制單元,轉(zhuǎn)換成腳本文件運行所需的參數(shù)表(即自動化測試用例)。步驟105:根據(jù)測試用例的各測試步驟,通過腳本文件依次調(diào)用參數(shù)表中的參數(shù),對待測Web應(yīng)用軟件進行自動化測試。上述步驟中的步驟101、步驟102、步驟103是一種生成腳本文件的方法。其中步驟IOI中的Web元素,既是Html對象,比較常見的有button(按鈕)、text—field(文本輸入框)、select—list(下拉框)、check_box(復(fù)選框)、radio(單選框)、link(鏈接)等。其中又分為與自動化測試用例相關(guān)的Web元素,和與自動化測試用例無關(guān)的Web元素,與自動化測試用例相關(guān)的Web元素是指操作Web應(yīng)用軟件的時候要用到的Html對象,例如text—field,就是要用的Web元素,再例如form(表單)不會直接對其進行操作,所以屬于與自動化測試用例無關(guān)的Web元素。對于一個待測Web應(yīng)用軟件,首先可獲取其全部的Web元素,生成一個Web元素庫,如表1所示。Web元素是否與自動化測試用例相關(guān)button(按鈕)是text—field(文本輸入框)是select—list(下拉框)是radio(單選框)是linkC鏈接)是form(表單)否frame(框架)否span(區(qū)域)是table(表格)是表l作為優(yōu)選方案還可以從獲取的各Web元素中選取出與自動化測試用例相關(guān)的Web元素,將選取出的Web元素放到一起,生成一個Web元素庫,即刪除表1中與自動化測試用例無關(guān)的Web元素。另外需要說明的是,是否是與自動化測試用例相關(guān)的Web元素,會因Web應(yīng)用軟件的不同而不同的。某個Web元素在這個Web應(yīng)用軟件中與自動化測試用例相關(guān),但在另一個Web應(yīng)用軟件中可能就與自動化測試用例無關(guān)。表1僅是本實施例的一個優(yōu)選的方案。步驟102中,基于Web元素庫的基礎(chǔ)上,對元素庫中的各個Web元素進行分析,生成各個Web元素的操作集合,即一個Web元素可能對應(yīng)一個或多個操作,如對應(yīng)Web元素button的操作是"單擊",對應(yīng)Web元素text—field的操作是"輸入值"和"讀取值"。之后根據(jù)各個Web元素的操作集合構(gòu)成操作庫,如表2所示。W<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>表3將表3所示的控制單元翻譯成腳本文件(腳本語言依賴于自動化測試所選擇的工具)。例如,以下是對Web元素text—field(文本輸入框)及其對應(yīng)的操作動作的腳本文件翻譯,表3中的其他Web元素及對應(yīng)的操作動作類似。if(Web元素=="text_field")if(操作=="輸入值")在文本輸入框中輸入相應(yīng)的凄t值elsif(操作=="讀取值,,)讀取出文本輸入框中的數(shù)值end下面對步驟104的步驟進行說明,一個添加用戶的Web應(yīng)用軟件的頁面如圖1所示,測試用例的測試步驟如下A.I俞入用戶名;tester;B.輸入登錄密碼111111111;C.輸入登錄密碼確i人111111111;D.選擇用戶類型系統(tǒng)管理員;E.點擊添加4務(wù)組。預(yù)期結(jié)果提示"添加成功"。將測試用例Testcasel根據(jù)表3的控制單元,轉(zhuǎn)換成步驟103中生成的腳本文件運行所需的參數(shù)表,該參數(shù)表即為自動化測試用例,測試用例和自動化測試用例相對應(yīng),如圖4所示。以下均以圖4中第二行為例進行說明第一列是對操作對象的說明,如操作對象是"用戶名輸入框";第二列是Web元素名稱,如"Text—field";第三列是用來識別該Web元素的屬性名,如id屬性;第四列是屬性值,如"user—name";第五列是相應(yīng)的操作動作(該操作動作從控制單元中獲取),如在文本框中"輸入值";第六列是測試用例中的各測試步驟對應(yīng)的操作的值,如在文本框中輸入的值是"tester"。其中Web元素名稱、屬性名、屬性值作為Web元素標識信息。若存在其它的測試用例(如Testcase2和Testcase3)也才艮據(jù)控制單元,轉(zhuǎn)換成步驟103中生成的腳本文件運行所需的^表。而所有的步驟103中生成的腳本文件運行所需的參數(shù)表,就構(gòu)成了最終的步驟103中生成的腳本文件運行所需的參數(shù)表庫。在步驟105中,根據(jù)測試用例Testcasel的各測試步驟A.輸入用戶名;tester;B.輸入登錄密碼111111111;C.輸入登錄密碼確i人111111111;D.選擇用戶類型系統(tǒng)管理員;E.點擊添加按鈕。通過步驟103中生成的腳本文件依次逐行調(diào)用圖4參數(shù)表中的參數(shù),對圖1的待測Web應(yīng)用軟件進行自動化測試。例如測試用例Testcasel,對于第一行,"Web元素"列為"text—field","操作"列為"輸入值,,,通過對比控制單元,可以知道,要對id為user一name的文本輸入框輸入值(對應(yīng)的操作的值)"tester"。對于下面的各行,進行類似的處理,依次為在id為user_password的文本輸入框中輸入"111111111";在id為user_password—check的文本輸入框中輸入"111111111";在id為user—type的下拉選擇框中選擇"系統(tǒng)管理員"項;單擊value值為"添加,,的按鈕;讀取id為adcLcheck的區(qū)域中的文本值,與預(yù)期結(jié)果"添加成功"進行對比,若一致,則此測試用例通過測試(Web應(yīng)用軟件無bug),否則此測試用例未通過測試(Web應(yīng)用軟件有bug)。若存在其它的測試用例(如Testcase2和Testcase3),同樣可以根據(jù)執(zhí)行類似的步驟實現(xiàn)自動化測試。具體為將其他測試用例也轉(zhuǎn)換成自動化測試用例,所有自動化測試用例,構(gòu)成自動化測試用例庫。將其他的測試用例(如Testcase2和Testcase3)也根據(jù)控制單元,轉(zhuǎn)換成如圖4參數(shù)表格式的自動化測試用例。而所有的自動化測試用例,就構(gòu)成了最終的自動化測試用例庫。從自動化測試用例庫中,挑選出來需要測試的Testcase,形成測試列表;若需要測試其中的Testcasel和Testcase3,則測試列表包括Testcase1和Testcase3。讀取測試列表,逐個測試4丸行才4選出來的Testcase。對于每個Testcase,逐行讀取參數(shù)表中的每行數(shù)據(jù),首先看"Web元素,,列的值,然后讀取"操作"列的值,對比控制單元,執(zhí)行相應(yīng)的動作。繼續(xù)讀取測試列表,若所有的自動化測試用例都已經(jīng)執(zhí)行完畢,則本輪測試結(jié)束;否則重新讀取測試列表,繼續(xù)進行后面自動化測試用例的執(zhí)行。Testcasel執(zhí)行完畢后,繼續(xù)執(zhí)行Testcase3,執(zhí)行完Testcase3,則測試列表中已經(jīng)沒有可測試的測試用例,本輪測試結(jié)束。下面對圖1的待測Web應(yīng)用軟件版本進行升級后,可能存在的各種變化逐一進行分析,見表4:<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>表6同時根據(jù)表6對應(yīng)修改腳本文件。之后通過修改后的腳本文件依次逐行調(diào)用圖5參數(shù)表中的參數(shù),對圖2的待測Web應(yīng)用軟件進行自動化測試。本發(fā)明提供的第二實施例是一種Web應(yīng)用應(yīng)用軟件的自動化測試裝置,如圖6所示,包括存儲模塊201:用于存儲待測Web應(yīng)用軟件中各Web元素,和根據(jù)各Web元素及其對應(yīng)的操作動作集合翻譯成的腳本文件;獲耳又才莫塊202:用于獲取j寺測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素標識信息,及待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素對應(yīng)的操作動作描述信息;測試模塊203:用于根據(jù)測試步驟,通過腳本文件依次調(diào)用對應(yīng)的Web元素標識信息和對應(yīng)的Web元素操作動作描述信息,對待測Web應(yīng)用軟件進行自動化測試。進一步,存儲模塊201還用于存儲從待測Web應(yīng)用軟件的Web元素中選取出與自動化測試用例相關(guān)的Web元素,及根據(jù)選取出的各Web元素及其對應(yīng)的操作動作集合翻i奪成的腳本文件。進一步,存儲才莫塊201還用于存儲待測Web應(yīng)用專欠件更新后各更新的Web元素及其對應(yīng)的操作動作集合,或待測Web應(yīng)用軟件更新后各更新的Web元素對應(yīng)的操作動作集合,以及更新后的操作動作集合翻譯成的腳本文件。進一步,獲取模塊202還用于獲取測試用例中的各測試步驟對應(yīng)的操作值;測試才莫塊203還用于才艮據(jù)測試步驟,通過腳本文件依次調(diào)用對應(yīng)的Web元素標識信息、操作動作描述信息和操作值,對待測Web應(yīng)用軟件進行自動化測試。明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。權(quán)利要求1、一種生成腳本文件的方法,其特征在于,包括獲取待測Web應(yīng)用軟件中各Web元素;將各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件。2、如權(quán)利要求l所述的方法,其特征在于,獲取待測Web應(yīng)用軟件中各Web元素步驟和將各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件步驟之間還包括將各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件具體為將選取出的各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件。3、如權(quán)利要求l所述的方法,其特征在于,獲取待測Web應(yīng)用軟件中各Web元素步驟和將各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件步驟之間還包括生成包括獲取的各Web元素及其對應(yīng)的操作動作集合的操作動作庫;將各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件具體為將操作動作庫中的各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件。4、如權(quán)利要求3所述的方法,其特征在于,還包括更新操作動作庫中的各Web元素及其對應(yīng)的操作動作集合,或更新操作動作庫中的各Web元素對應(yīng)的操作動作集合;將更新后操作動作庫中的各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件。5、一種Web應(yīng)用軟件的自動化測試方法,其特征在于,包括獲取待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素標識信息,及待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素對應(yīng)的操作動作描述信息;根據(jù)測試步驟,通*本文件依次調(diào)用對應(yīng)的Web元素標識信息和對應(yīng)的Web元素操作動作描述信息,對待測Web應(yīng)用軟件進行自動化測試,所述腳本文件通過Web元素及其對應(yīng)的操-作動作集合翻譯而成,所述Web元素為待測Web應(yīng)用軟件中的Web元素。6、如權(quán)利要求5所述的方法,其特征在于,所述Web元素標識信息包括Web元素名稱、屬性名、屬性值。7、如權(quán)利要求6所述的方法,其特征在于,還包括獲取測試用例中的各測試步驟對應(yīng)的操作的值;根據(jù)測試步驟,通*本文件依次讀取對應(yīng)的Web元素標識信息、操作動作描述信息和操作值,對待測Web應(yīng)用軟件進行自動化測試。8、一種Web應(yīng)用軟件的自動化測試裝置,其特征在于,包括存儲模塊用于存儲待測Web應(yīng)用軟件中各Web元素,和根據(jù)各Web元素及其對應(yīng)的操作動作集合翻譯成的腳本文件;獲取4莫塊用于獲取待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素標識信息,及待測Web應(yīng)用軟件測試用例的測試步驟對應(yīng)的Web元素對應(yīng)的操作動作描述信息;測試模塊用于根據(jù)測試步驟,通過腳本文件依次調(diào)用對應(yīng)的Web元素標識信息和對應(yīng)的Web元素操作動作描述信息,對待測Web應(yīng)用軟件進行自動化測試。9、如權(quán)利要求8所述的裝置,其特征在于,所述存儲i^塊還用于存儲從待測Web應(yīng)用軟件的Web元素中選取出與自動化測試用例相關(guān)的Web元素,及根據(jù)選取出的各Web元素及其對應(yīng)的操作動作集合翻譯成的腳本文件。10、如權(quán)利要求8所述的裝置,其特征在于,所述獲^^莫塊還用于獲取測試用例中的各測試步驟對應(yīng)的操作值;所述測試模塊還用于根據(jù)測試步驟,通過腳本文件依次調(diào)用對應(yīng)的Web元素標識信息、操作動作描述信息和操作值,對待測Web應(yīng)用軟件進行自動化測試。全文摘要本發(fā)明公開了一種生成腳本文件對Web應(yīng)用軟件進行測試的方法及裝置,為了解決Web應(yīng)用軟件自動化測試過程中腳本的維護量較高的問題,本發(fā)明公開的方法包括將待測Web應(yīng)用軟件中各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件,獲取測試用例的各測試步驟對應(yīng)的Web元素標識信息,及操作動作描述信息,根據(jù)測試步驟,通過腳本文件依次調(diào)用對應(yīng)的Web元素標識信息和操作動作描述信息,對待測Web應(yīng)用軟件進行自動化測試,由于將待測Web應(yīng)用軟件中各Web元素及其對應(yīng)的操作動作集合翻譯成腳本文件,之后根據(jù)測試步驟,通過已生成的腳本文件依次讀取對應(yīng)的Web元素標識信息和操作動作描述信息,使得腳本文件的維護量降低。文檔編號G06F11/36GK101526919SQ20091013620公開日2009年9月9日申請日期2009年4月29日優(yōu)先權(quán)日2009年4月29日發(fā)明者田秀俠申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司