999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Selenium JS UI的自動化測試框架設計與實現

2017-09-22 09:49:30任洪敏
網絡安全與數據管理 2017年17期
關鍵詞:引擎

李 艷,任洪敏,劉 芳

(上海海事大學 信息工程學院,上海 201306)

基于Selenium JS UI的自動化測試框架設計與實現

李 艷,任洪敏,劉 芳

(上海海事大學 信息工程學院,上海 201306)

Web技術的發展,以及Web UI組件的廣泛應用,給自動化測試帶來了挑戰。因此設計了一套基于Selenium JS UI的自動化測試框架。該框架結合了TestNG、Selenium框架,并且利用了關鍵字驅動、數據驅動技術。將框架分為關鍵字、測試用例、執行引擎、配置報告四層,使測試用例、測試腳本、測試數據相分離,跨平臺,不僅解決了自動化測試定位難的問題,而且大大提高了測試效率。

自動化測試框架;Selenium;Web UI組件;關鍵字驅動

0 引言

目前大多數企業的應用系統都是基于Web的應用系統,人們可以通過Internet瀏覽器來訪問它們。當前很多公司采用持續改進的開發模式來應對這種趨勢。在持續開發模式中,需要不斷地進行迭代測試。傳統人工測試會變得缺乏效率,很難滿足需求,這個時候必須引入自動化測試[1]。自動化測試框架是由一些假設、概念和為自動化軟件測試提供支持的實踐組成的集合[2]。目前的自動化測試框架主要分為錄制回放、數據驅動技術、關鍵字驅動技術、數據驅動技術、混合型驅動技術等[3]。

文中提出一種基于Selenium JS UI自動化測試框架,主要針對Web系統頁面頻繁變化問題,提出一種新的UI定位方法,結合混合型驅動測試框架設計一套能適應于不同Web 應用系統的測試方法,該框架將測試腳本及測試數據相分離,提高了測試腳本的可復用性及測試效率。

1 基于Selenium JS UI 自動化測試框架

1.1自動化測試框架工作原理

自動化測試平臺是將多個開源軟件組合進行二次開發,結合不同的框架優勢,從而達到更好的測試性能。主要完成的工作是:調研不同的Web UI組件庫,將UI通用操作設定為關鍵字,并將關鍵字保存在關鍵字庫中,提出一種新的UI定位方法,基于Web應用系統,定位頁面元素和操作,并從關鍵字庫中提取相關關鍵字,實現關鍵字函數,生成一套測試用例的語法規約,編寫執行引擎,由執行引擎去調度測試腳本,并監聽測試結果,按自定義格式生成測試報告。

1.2自動化測試框架架構

自動化測試框架總體架構如圖1所示,主要分為關鍵字層、測試用例層、執行引擎層、配置報告層四大層。

圖1 自動化測試框架結構圖

(1)關鍵字層中主要包含關鍵字的定義、關鍵字函數的實現以及關鍵字庫管理等。關鍵字庫管理主要用來管理關鍵字、對其進行增刪改等操作。

(2)測試用例層中包含測試用例語法規范以及測試用例集,測試用例采用Excel表格維護,一行代表一條測試用例,測試用例由測試例名稱、測試步驟序號、測試步驟描述、關鍵字和操作值,以及測試結果組成。

(3)執行引擎層主要負責解析測試用例,提取關鍵字和操作值并進行整合,以此執行測試腳本,完成自動化測試及生成測試報告等。

(4)配置報告層主要是配置文件的輸入,以及測試報告的輸出。

2 Web UI測試關鍵字定義與實現

2.1界面元素定位技術

Selenium 測試工具操作簡單,功能比較單一,對Web UI 元素支持不全面,最常用的是采用Xpath定位技術,但Xpath定位的不穩定性及冗余性給測試人員帶來諸多麻煩,因此本文提出一種新的UI元素定位技術,在Web UI類庫中存放UI組件庫和接口的方法。Web 應用系統中UI定位從被測系統頁面入手,采用JS 和Web UI庫中組件接口和方法定位頁面元素,代替了Selenium 庫函數中的findElement(By. xpath(“***”))對頁面元素的定位,減少了Xpath的使用,使用Web UI定位技術的優點是定位精確,且效率高。

2.2定義關鍵字

關鍵字的思想是將界面元素名與測試工具對象名的分離、執行動作與具體實現細節的分離以及測試腳本與測試數據的分離[4]。文中提出調研不同的Web UI組件庫,將這些UI庫中都具有的、常用的Web UI組件:執行動作定義為關鍵字,將這些關鍵字保存至關鍵字庫中,除這些關鍵字之外,還會增加一些特定的關鍵字,即檢查點函數。如通常會比較兩個String 數組是否相等以及獲取當前行數等,這些都是與特定的Web程序無關而且本身API沒有提供這些函數[5],將這些自定義的關鍵字收集起來統一放在關鍵字庫中,進而可應用于不同的Web 項目中。表1以jEasy UI中DataGrid 控件為例,說明定義關鍵字的方法。

2.3實現關鍵字

關鍵字的設計是將執行動作與具體實現細節進行分離,為了增強測試腳本的可復用性,需要將測試數據和界面元素從測試腳本中獨立出來并存于專用文件中,形成相

表1 定義關鍵字方法表

應的測試數據集和函數庫。關鍵字的實現是自定義的函數庫,函數的命名是與關鍵字對應的。將頁面元素的關鍵字參數作為函數的參數調用,采用JS框架語言編寫腳本函數。它具體依賴于Selenium 測試工具,Selenium的函數getEval提供了在網頁中執行自定義javaScript腳本的能力[5]。關鍵字函數腳本實現具體如下所示:

function getRows() {

$(‘#showUser’).datagrid(‘getRows’);

}

function selectRow(index) {

$(‘#showUser’).datagrid(‘selectRow’, index);

}

function refreshRow(index) {

$(‘#showUser’).datagrid(‘refreshRow’,index);

}

function deleteRow(index){

$(‘#showUser’).datagrid(‘deleteRow’,index);

}

2.4關鍵字庫

對于關鍵字庫中的關鍵字,在對不同Web應用系統進行測試時,這些關鍵字可以完全復用,根據業務邏輯、測試數據的一些差異選擇關鍵字,不一定所有的關鍵字都能用上,還需進一步篩選。建立關鍵字庫的目的是用來對關鍵字進行維護、擴展及優化。

3 Web UI測試用例的規約

3.1測試用例語法規約

基于上文定義Web UI關鍵字的方法,結合數據驅動思想,提出一套測試用例的定義語法規范,并將此規范用BNF范式描述,用戶可根據此規范來編寫測試用例。語法規約具體如下:

<測試用例>::=”(“<測試用例名稱>”,”<測試步驟序號>”,”<測試步驟描述>”,”<關鍵字>”,”<操作值>”)”

<測試用例名稱> ::= <句子>

<測試步驟序號> ::= <數字>

<測試步驟描述> ::= <句子>

<關鍵字> ::=<標識符>

<操作值> ::= <數字><字符串><數組>

<句子> ::= {{<字母>},{<字母>}}

<標識符> ::= <字母>|<標識符><字母數字串>

<字母數字串>::=<字母><數字><字母數字串><字母><字母數字串><數字>

<字母> ::= -<大寫字母><小寫字母>

<小寫字母> ::= a|b|c|d|e|f|g……

<大寫字母> ::= A|B|C|D|E|F|G……

<數字> ::= 1|2|3|4|5|6|7|8……

<字符串> ::= <字母><字母><字符串>

<數組> ::= <數字><數字><數組>

3.2測試用例結構

本文中提出的測試用例采用Excel表格維護,測試用例文件中包括:測試用例名稱、 測試步驟序號、測試步驟描述、關鍵字、操作值及測試結果。具體如表2所示。

表2 測試用例結構表

4 執行引擎

Web 自動化測試就是通過自動化測試工具打開被測試頁面,通過鍵盤和鼠標,點擊或操作該頁面中的被測試對象,判斷整個程序的正確性[6]。本文中的執行引擎圖如圖2所示。

圖2 執行引擎圖

執行引擎是整個測試的核心,實現了測試框架中所有的功能。主要是測試行為的控制,根據XML 文件配置目標路徑加載測試用例,同時發出數據驅動引擎來解析測試用例文件[7],每一行數據都是測試用例,可被框架解析,實現數據驅動[8],由解析到的測試用例中的測試步驟、關鍵字及操作值,匹配關鍵字腳本,在測試腳本函數庫中調用并執行相應功能函數,組合生成Selenium 測試工具可以執行的腳本。由Selenium 中的WebDriver對象來驅動瀏覽器,按照測試用例的要求,對界面的元素,通過Selenium 的API模擬人工操作,完成與瀏覽器的交互,最終實施自動化測試,執行引擎將測試步驟結果記錄在測試用例文件中,每個測試用例執行完畢之后,檢查點函數對測試用例進行校驗,并記錄每個測試用例的執行結果。

框架中提出的測試報告在TestNG基礎上構建,可通過XML配置文件對測試用例進行設定,比如測試的執行順序以及依賴關系等,同時集成Log4j框架測試詳細信息,結束后會生成一個詳細的測試結果報表,同時框架中設定一個變量對每個測試步驟進行監控,將單個測試結果寫入Excel測試用例特定列中,在這些情況下方便測試人員定位詳細信息。

5 結束語

文中提出了一種基于Selenium JS UI 的自動化測試框架,該框架采用混合型數據驅動技術進行開發設計,以關鍵字為核心,提出一種新的UI定位方法,可以運用在不同Web 程序中。該框架具有獨立性,在運用時可根據Web 程序特點進行擴展及設計,但目前還存在不同之處,如何更好地設計關鍵字庫,更好地設計編寫測試用例,以及更好地輸出詳細的日志報表文件,是以后重點的研究方向。

[1] 溫素劍.零成本實現Web自動化測試-基于Selenium WebDriver和Cucumber[M].北京:電子工業出版社,2015.

[2] 周娟.蔣外文.基于Web的自動化測試框架[J].計算機工程,2009,35(18):65-66.

[3] 吳伶琳.基于關鍵字驅動的自動化測試的研究與實現[J].電腦與信息技術, 2013,12(6):47-48.

[4] 王磊.關鍵字驅動的自動化測試框架設計與實現[J].電子測試,2010,8(8):87-88.

[5] 陳江勇,許力.Web 自動化測試框架的設計實現[J].福建師范大學學報(自然科學版),2013,29(4):42-44.

[6] 陳斌仙,陳佳麗,陳阿妹.基于Selenium的自動化測試研究[J].赤峰學院學報(自然科學版),2016,32(9):19-21.

[7] 馮振華,高菊,曾紅衛.Web應用自動化測試的研究[J].計算機工程與設計,2010,31(1):175-178.

[8] 趙金丹.基于Selenium的Web自動化測試腳本設計研究[J].科技傳播,2014(1):94-95.

Design and implementation of automated testing framework based on Selenium JS UI

Li Yan, Ren Hongmin, Liu Fang

(College of Information Engineering, Shanghai Maritime University, Shanghai 201306, China)

The technological development of Web and the extensive use of its UI components pose great challenges to automated testing. Hence this thesis designs a set of automated testing framework, which is based on Selenium JS UI and integrated with TestNG, Selenium framework under the help of keyword-driven and data driven technologies. Dividing the framework into four parts which are keywords, test case, execution engine and configuration report to segregate testing case, script and data, it not only solves the problem of locating in automated testing, but also greatly improves the testing efficiency.

automated testing framework ; Selenium;Web UI components; keyword-driven

TP92

:A

10.19358/j.issn.1674- 7720.2017.17.007

李艷,任洪敏,劉芳.基于Selenium JS UI的自動化測試框架設計與實現[J].微型機與應用,2017,36(17):24-26,30.

2017-03-14)

李艷(1990-),女,碩士,主要研究方向:軟件開發與項目管理。

任洪敏(1969-),通信作者,男,副教授,主要研究方向:軟件工程。E-mail:hmren@shmtu.edu.cn。

劉芳(1991-),女,碩士,主要研究方向:計算機系統應用。

猜你喜歡
引擎
以學促干 挺膺擔當 激活砥礪前行的紅色引擎
江陰市“三個創新”打造危化品安全監管新引擎
新海珠,新引擎,新活力!
消費繼續發揮經濟增長第一引擎作用
消費導刊(2018年8期)2018-05-25 13:19:23
三生 三大引擎齊發力
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
休閑垂釣 傳統漁業新引擎
中國水產(2017年2期)2017-02-25 07:56:29
信息化,“盛京”加速的新引擎
中國衛生(2015年4期)2015-11-08 11:16:18
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發
主站蜘蛛池模板: 2024av在线无码中文最新| 中文成人在线视频| 欧美啪啪网| 久青草国产高清在线视频| 国产在线自揄拍揄视频网站| 无码综合天天久久综合网| 国产91导航| 久久国产精品国产自线拍| 国产色网站| 天天色天天综合| 黄色a一级视频| 77777亚洲午夜久久多人| 久久精品国产免费观看频道| 国产精品专区第1页| 亚洲成年网站在线观看| 欧美日韩导航| 狠狠色综合网| 无码电影在线观看| 亚洲色图欧美激情| 日韩精品一区二区深田咏美| 欧亚日韩Av| 999国产精品永久免费视频精品久久| 成人在线综合| 日韩一级二级三级| 男女精品视频| 视频在线观看一区二区| 午夜福利在线观看成人| 五月综合色婷婷| 亚洲人成在线精品| 欧美一区二区三区国产精品| 中美日韩在线网免费毛片视频 | 99精品福利视频| 亚洲人视频在线观看| 夜精品a一区二区三区| 亚洲美女视频一区| 热这里只有精品国产热门精品| 国产成人精品午夜视频'| 欧美精品一二三区| 国产永久在线观看| 久久精品这里只有国产中文精品 | 国内精品伊人久久久久7777人| 国产91导航| 久久久久久久久亚洲精品| 黄色成年视频| 在线无码九区| 欧美另类精品一区二区三区| 国产香蕉国产精品偷在线观看| 久久精品人人做人人爽电影蜜月| jizz国产视频| 亚洲狠狠婷婷综合久久久久| 亚洲欧美一区二区三区蜜芽| 国产视频久久久久| 第一页亚洲| 精品午夜国产福利观看| 天天色天天综合网| 伊人欧美在线| 国产成人三级在线观看视频| 精品无码国产自产野外拍在线| 日本三区视频| 无码粉嫩虎白一线天在线观看| 国产嫩草在线观看| 欧美另类一区| 国产区福利小视频在线观看尤物| 免费在线色| 免费在线不卡视频| 72种姿势欧美久久久大黄蕉| 久久频这里精品99香蕉久网址| 婷婷色狠狠干| 久草视频中文| 亚洲第一国产综合| 伊大人香蕉久久网欧美| 国产精品人人做人人爽人人添| 最新日韩AV网址在线观看| 韩国v欧美v亚洲v日本v| 老熟妇喷水一区二区三区| 高潮爽到爆的喷水女主播视频| 91偷拍一区| 欧美v在线| 精品久久国产综合精麻豆| 欧洲一区二区三区无码| 国产正在播放| 日本精品影院|