利用tcl 實現(xiàn)網(wǎng)頁自動化測試的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法及系統(tǒng),該方法包括:從selenium支持的語言中選取一種作為中間語言,在系統(tǒng)中安裝中間語言的語言環(huán)境;在中間語言的語言環(huán)境中安裝setuptools,使setuptools能自動查找中間語言的語言環(huán)境的安裝目錄;將語言環(huán)境的安裝目錄和setuptools的安裝目錄添加到系統(tǒng)變量中的路徑變量中;在系統(tǒng)運行中,setuptools自動安裝富媒體窗體;利用富媒體窗體安裝selenium,形成中間語言selenium環(huán)境;在中間語言selenium環(huán)境中安裝TCL的運行環(huán)境;TCL通過自身提供的文件I/O接口調用中間語言實現(xiàn)網(wǎng)頁自動化測試。本發(fā)明既不會出現(xiàn)錄制腳本的刻板和不可控,又不需要重新開發(fā)自動化平臺,實現(xiàn)了網(wǎng)頁自動化測試的快速部署。
【專利說明】利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于網(wǎng)頁自動化測試領域,涉及一種網(wǎng)頁自動化測試方法,特別是涉及一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法及系統(tǒng)。
【背景技術】
[0002]目前國內大多數(shù)自動化平臺對WEB頁面的操作主要采用以下兩種方案,一種是腳本錄制,如winRunner、QTP (Quick Test Professional)等等,另外一種是利用工具對頁面元素進行操作和反饋,如selenium等等。
[0003]WinRunner與QTP同為MI公司開發(fā)的功能強大的功能測試工具,但他們使用的腳本語言不同。WinRunner使用的是TSL語言,這是MI公司獨有的語言,有特殊性,因此在學習上會有一定難度,不過好在它與C語言比較類似,如果測試人員有一定的C語言編程基礎,會相對容易一些。而QTP使用的則是微軟的VBScript語言,比較通用,而且也相對簡單易學。從語言上的比較上來看,在編程能力上,WinRunner更勝一籌,因為它擁有相當豐富的C語言函數(shù)庫,而相對而言,QTP則更大眾化,它面向的是沒有太多技術背景和編程經驗的測試人員。
[0004]Selenium也是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE、Mozilla Firefox, MozillaSuite等。Selenium工具的主要功能包括:1)測試與瀏覽器的兼容性——測試應用程序是否能夠很好的工作在不同瀏覽器和操作系統(tǒng)之上;2)測試系統(tǒng)功能一創(chuàng)建衰退測試檢驗軟件功能和用戶需求;3)支持自動錄制動作和自動生成Net、Java、Perl等不同語言的測試腳本。Selenium是ThoughtWorks專門為Web應用程序編寫的一個驗收測試工具。Selenium測試可以在 Windows、Linux 和 Macintosh 上的 Internet Explorer、Mozilla 和 Firefox 中運行。其他測試工具都不能覆蓋如此多的平臺。
[0005]現(xiàn)有的測試方案的缺點是沒有考慮到自動化平臺的維護成本,且沒有考慮到自動化平臺的整合性問題,形成了各自獨立的和分散的測試方法。
【發(fā)明內容】
[0006]鑒于以上所述現(xiàn)有技術的缺點,本發(fā)明的目的在于提供一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法及系統(tǒng),用于解決現(xiàn)有網(wǎng)頁測試方法沒有考慮自動化平臺的維護成本和整合性的問題。
[0007]為實現(xiàn)上述目的及其他相關目的,本發(fā)明提供一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,所述利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法包括:從selenium支持的語言中選取一種作為中間語言,在系統(tǒng)中安裝所述中間語言的語言環(huán)境;在所述中間語言的語言環(huán)境中安裝setuptools,使setuptools能自動查找所述中間語言的語言環(huán)境的安裝目錄;設置所述語言環(huán)境的環(huán)境變量,將所述語言環(huán)境的安裝目錄和setuptools的安裝目錄添加到系統(tǒng)變量中的路徑變量中;在系統(tǒng)運行中,setuptools自動安裝富媒體窗體;利用所述富媒體窗體安裝selenium,形成中間語言selenium環(huán)境;在所述中間語言selenium環(huán)境中安裝TCL的運行環(huán)境;TCL通過自身提供的文件I/O接口調用中間語言實現(xiàn)網(wǎng)頁自動化測試。
[0008]優(yōu)選地,所述selenium 支持的語言包括 Java、C#、Ruby、Python 及 JavaScript。
[0009]優(yōu)選地,在系統(tǒng)中,setuptools自動安裝富媒體窗體的具體過程包括:所述setuptools調用自身安裝包中的easy_install命令實現(xiàn)富媒體窗體的安裝。
[0010]優(yōu)選地,所述網(wǎng)頁由一系列的文件元素構成;對網(wǎng)頁進行自動化測試即對所述文件元素進行操作。
[0011]優(yōu)選地,所述selenium的網(wǎng)頁驅動器提供了一種對象定位方法,即利用對象的屬性對所述文件元素進行定位;所述對象的屬性包括id、name、class name、link text、partial link text> tag name、xpath、css selector 中的一種或多種。
[0012]優(yōu)選地,當所述中間語言為Python時,若Python語言環(huán)境的安裝目錄為D: \Python27,則setuptools在目錄D: \Python27下進行安裝,并在目錄D: \Python27下生成Scripts 文件夾,即 Scripts 文件夾的目錄為 D:\Python27\Scripts。
[0013]優(yōu)選地,所述TCL的運行環(huán)境的安裝目錄是系統(tǒng)自動添加到系統(tǒng)變量中的路徑變量中的。
[0014]一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的系統(tǒng),包括根據(jù)權利要求1至7任意一項所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法形成的系統(tǒng)。
[0015]如上所述,本發(fā)明所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法及系統(tǒng),具有以下有益效果:
[0016]本發(fā)明針對網(wǎng)頁自動化測試提出了一種包容的解決方案,既不會出現(xiàn)錄制腳本的那種刻板和不可控,又不需要重新開發(fā)新的自動化平臺,從而為網(wǎng)頁自動化測試實現(xiàn)了快速的部署,符合降低成本和快速開發(fā)的需求。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法流程示意圖。
【具體實施方式】
[0018]以下通過特定的具體實例說明本發(fā)明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節(jié)也可以基于不同觀點與應用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。
[0019]請參閱附圖。需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構想,遂圖式中僅顯示與本發(fā)明中有關的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復雜。
[0020]下面結合實施例和附圖對本發(fā)明進行詳細說明。
[0021]實施例
[0022]本發(fā)明提供一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,如圖1所示,所述利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法包括:[0023]SI,從selenium支持的語言中選取一種作為中間語言,在系統(tǒng)中安裝所述中間語言的語言環(huán)境。其中所述selenium支持的語言包括Java、C#、Ruby、Python及JavaScript,本發(fā)明可以選取其中的任何一種作為中間語言。
[0024]例如:若選擇Python作為中間語言,則首先在Python主頁(http: //pyp1.python, org/)下載 Python2.7.3 安裝包和 Setuptools (setuptools 是 Python EnterpriseApplication Kit (PEAK)的一個副項目,它是一組Python的distutilsde工具的增強工具)安裝包(http://pyp1.python.0rg/pypi/setuptools#files)。下載完畢后,進行軟件安裝,首先安裝python語言環(huán)境,然后持續(xù)點擊下一步即可完成安裝,也可以中途改變安裝路徑,如 D:\Python27。
[0025]S2,在所述中間語言的語言環(huán)境中安裝setuptools,使setuptools能自動查找所述中間語言的語言環(huán)境的安裝目錄。
[0026]例如:若Python語言環(huán)境的安裝目錄為D:\Python27,貝丨J setuptools在目錄D: \Python27下進行安裝,并在目錄D: \Python27下生成Scripts文件夾,即Scripts文件夾的目錄為 D: \Python27\Scripts。
[0027]S3,設置所述語言環(huán)境的環(huán)境變量,將所述語言環(huán)境的安裝目錄和setuptools的安裝目錄添加到系統(tǒng)變量中的路徑變量中。設置環(huán)境變量的通常過程為:系統(tǒng)屬性一〉高級一〉環(huán)境變量一〉系統(tǒng)變量。在系統(tǒng)變量中找到變量名為PATH或者Path的變量名(WINDOWS是不檢查大小寫的),將python和setuptools的安裝目錄(如D: \Python27和D:\Python27\Scripts)都添加到Path的變量名中去。此步驟的目的是為了系統(tǒng)方便查找python 和 easy_install 命令。easy_install 是由 PEAK (Python Enterprise ApplicationKit)開發(fā)的setuptools包自帶的一個命令,所以使用easy_install實際上是在調用setuptools來完成安裝模塊的工作。
[0028]S4,在系統(tǒng)運行中,setuptools自動安裝富媒體窗體。在系統(tǒng)中,setuptools自動安裝富媒體窗體的具體過程包括:所述setuptools調用自身安裝包中的easy_install命令實現(xiàn)富媒體窗體的安裝。
[0029]設置環(huán)境變量后,在系統(tǒng)CMD (command I ine操作系統(tǒng)命令行)運行中,setuptools 就可以直接使用 easy_install 命令來安裝 pip (pip:A tool for installingand managing Python packages,即安裝和管理 python 包的工具)。
[0030]經過查閱網(wǎng)站相關消息,pip安裝文件實際網(wǎng)站在http://pyp1.python, org/pypi/pip 下,查閱 easy_install 命令的相關用法(C:\Documents and Settings\jinwen.lin>easy_install - h)發(fā)現(xiàn),有的選項可以指定在特定的頁面下尋找相關文件,于是安裝pip的方式就成為如下格式:
[0031]C:\Documents and Settings\j inwen.1in>easy_instal1-f http://pyp1.python.0rg/pypi/pip pip
[0032]# 在 http://pyp1.python, org/pypi/pip 中尋找并安裝 pip,
[0033]具體安裝過程如下:
[0034]Searching for pip
[0035]Reading http://pyp1.python.0rg/pypi/pip
[0036]Best match:pipl.5.4[0037]Downloading https: //pyp1.python, org/packages/source/p/pip/pip-1.5.4.tar.gz#md5 = 8
[0038]34b2904f92d46aaa333267fblc922bb
[0039]以上命令正確返回,pip就可以正確的安裝了。
[0040]S5,利用所述富媒體窗體安裝selenium,形成中間語言selenium環(huán)境。
[0041]安裝完pip后,就可以通過pip安裝selenium,命令如下:
[0042]C:\Documents and Settings\jinwen.lin>pip install selenium
[0043]# 利用 pip 安裝 selenium,
[0044]具體安裝過程如下: [0045]Downloading/unpacking selenium
[0046]Running setup.py(path:c:\docume ~l\jinwen.lin\locals ~l\temp\pip_build」.inwen.1
[0047]in\selenium\setup.py)egg_info for package selenium
[0048]Installing collected packages: selenium
[0049]Running setup, py install for selenium
[0050]Successfully installed selenium
[0051]Cleaning up...[0052]S6,在所述中間語言selenium環(huán)境中安裝TCL的運行環(huán)境。
[0053]準備好python selenium的環(huán)境后,最后要安裝TCL的運行環(huán)境。TCL版本可以選用功能比較完備的TCL8.6版本。直接下載,持續(xù)點擊下一步,直到安裝完畢;當然也可以改變安裝目錄。和python不同的是,不需要在系統(tǒng)變量中添加TCL的安裝目錄,系統(tǒng)會自動添加。即所述TCL的運行環(huán)境的安裝目錄是系統(tǒng)自動添加到系統(tǒng)變量中的路徑變量中的。
[0054]S7,TCL通過自身提供的文件1/0接口調用中間語言實現(xiàn)網(wǎng)頁自動化測試。
[0055]TCL語言提供了我們平時比較忽視的接口,文件1/0接口。Open是打開文件或者管道命令,返回文件描述符fileID ;read是讀取整個文件命令,讀取管道文件的返回值并輸出。open調用和打開一個文件的同時,也返回一個文件描述符。如果文件名變量的第一個字符是“ I ”,open命令則將此變量剩余部分當作是一個程序名,并運行exec (exec命令是從Tcl解釋器中運行其它進程)來處理,而輸入、輸出被重定向到了文件描述符。管道則可被子進程打開用以只讀、只寫或者讀寫。而對于未知命令,TCL語言會自動查找系統(tǒng)的相關命令,這就是步驟S3為什么要把相關的路徑加入系統(tǒng)變量PATH中。
[0056]本發(fā)明通過下述實驗來驗證是否能夠通過TCL來調用python文件,本實施例以python(其他中間語言亦可)為例,如下列打印傳入的參數(shù)文件。我另存為D:/test.py
[0057]import sys# 加載 sys 模塊
[0058]print sys.argv#打印調用文件參數(shù)
[0059]我們在TCL的環(huán)境下調用嘗試這個命令,命令結果如下:
[0060](j inwen.1 in) 28% set cmcTpython D: / test.py-web_url www.baidu.com-web_username j inwen.lin〃 ;#把需要執(zhí)行的python語句賦值給變量cmd
[0061]python D: /test.py-web_url www.baidu.com-web_username j inwen.1in ;# 執(zhí)行
結果[0062](j inwen.1 in) 29% set hf ile [open〃 | $cmd〃] ;#tcl 利用通道執(zhí)行命令
[0063]filel205850;# 執(zhí)行結果
[0064](j inwen.1 in) 30% set res [read$hfile] ;# 獲取 python 語句的執(zhí)行結果
[0065][’ D: /test, py’ , ’ _web_url’ , ’ www.baidu.com’ , ’ _web_username’ , ’ j inwen.1in ] ;#結果輸出
[0066]從以上的說明和實驗中可以得知,通過TCL調用其他語言環(huán)境是簡單而且可行的,那么只要如果已經存在通過其他類型的語言來實現(xiàn)網(wǎng)頁的測試工作,最后只需要本發(fā)明進行簡單的調用即可。
[0067]所述網(wǎng)頁由一系列的文件元素構成;對網(wǎng)頁進行自動化測試即對所述文件元素進行操作。所述selenium的網(wǎng)頁驅動器提供了一種對象定位方法,即利用對象的屬性對所述文件元素進行定位;所述對象的屬性包括id、name、class name、link text>partial linktext> tag name、xpath、css selector 中的一種或多種。
[0068]假如本發(fā)明要定位一個百度的輸入框,可以有如下方法去定位,如:
[0069]
【權利要求】
1.一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,其特征在于,所述利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法包括: 從selenium支持的語言中選取一種作為中間語言,在系統(tǒng)中安裝所述中間語言的語言環(huán)境; 在所述中間語言的語言環(huán)境中安裝setuptools,使setuptools能自動查找所述中間語言的語言環(huán)境的安裝目錄; 設置所述語言環(huán)境的環(huán)境變量,將所述語言環(huán)境的安裝目錄和setuptools的安裝目錄添加到系統(tǒng)變量中的路徑變量中; 在系統(tǒng)運行中,setuptools自動安裝富媒體窗體; 利用所述富媒體窗體安裝selenium,形成中間語言selenium環(huán)境; 在所述中間語言selenium環(huán)境中安裝TCL的運行環(huán)境; TCL通過自身提供的文件I/O接口調用中間語言實現(xiàn)網(wǎng)頁自動化測試。
2.根據(jù)權利要求1所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,其特征在于:所述selenium 支持的語言包括 Java、C#、Ruby、Python 及 JavaScript。
3.根據(jù)權利要求1所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,其特征在于,在系統(tǒng)中,setuptools自動安裝富媒體窗體的具體過程包括: 所述setuptools調用自身安裝包中的easy_install命令實現(xiàn)富媒體窗體的安裝。
4.根據(jù)權利要求1所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,其特征在于:所述網(wǎng)頁由一系列的文件元素構成;對網(wǎng)頁進行自動化測試即對所述文件元素進行操作。
5.根據(jù)權利要求4所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,其特征在于:所述selenium的網(wǎng)頁驅動器提供了一種對象定位方法,即利用對象的屬性對所述文件元素進行定位;所述對象的屬性包括id、 name、class name、link text、partial link text、tagname、xpath、css selector 中的一種或多種。
6.根據(jù)權利要求1所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,其特征在于:當所述中間語言為Python時,若Python語言環(huán)境的安裝目錄為D: \Python27,則setuptools在目錄D: \Python27下進行安裝,并在目錄D: \Python27下生成Scripts文件夾,即Scripts文件夾的目錄為 D: \Python27\Scripts。
7.根據(jù)權利要求1所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法,其特征在于:所述TCL的運行環(huán)境的安裝目錄是系統(tǒng)自動添加到系統(tǒng)變量中的路徑變量中的。
8.一種利用TCL實現(xiàn)網(wǎng)頁自動化測試的系統(tǒng),其特征在于:所述系統(tǒng)包括根據(jù)權利要求I至7任一項所述的利用TCL實現(xiàn)網(wǎng)頁自動化測試的方法形成的系統(tǒng)。
【文檔編號】G06F11/36GK103984629SQ201410224987
【公開日】2014年8月13日 申請日期:2014年5月26日 優(yōu)先權日:2014年5月26日
【發(fā)明者】林金文 申請人:上海斐訊數(shù)據(jù)通信技術有限公司