資源推薦:
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、靖西網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為靖西等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
社區(qū)資源: 自動(dòng)化測(cè)試交流群
為什么需要使用Rollup策略呢?
使用Rollup策略可以使你的測(cè)試腳本看起來(lái)更加簡(jiǎn)潔,測(cè)試命令集合重用性更強(qiáng),使用Rollup可以讓你的腳本看起來(lái)像下面代碼一樣:
其中,rollup命令中l(wèi)oggincommands是一個(gè)selenese指令集合,包含了登錄部分腳本指令,通過(guò)這種方式,可以將任何在多腳本中重復(fù)的部分提取出來(lái),以供更多的測(cè)試腳本重復(fù)使用,這樣做有三大優(yōu)勢(shì):
§ 腳本簡(jiǎn)潔,通俗易懂。
§ 公共部分selenese命令集合得到了最大限度的重用性。
§ 提供了單點(diǎn)訪問(wèn)入口,一處修改,處處使用的效果。
下面我們看一下如何來(lái)定義一組rollup策略,定義rollup需要新建一個(gè).js為結(jié)尾的javascript文件。
var manager = new RollupManager(); manager.addRollupRule({ ... }); manager.addRollupRule({ ... }); ... |
RollupManager作為rollup策略實(shí)現(xiàn)的管理對(duì)象,我們可以向rollup manager中添加多組rollupRule,只需要簡(jiǎn)單的使用RollupManager#addRollupRule(Object)方法就可以完成rollup策略的添加。
添加完rollupRule之后,我們?cè)賮?lái)看一下如何定義rollup對(duì)象:
manager.addRollupRule({ name: 'logincommands', description: 'register & login into newtours.com', args: [ { name: 'email', description: 'register one user account, used it just for the identifier.', exampleValues: ['aa', 'bb', 'cc'] } ,{ name: 'passwd', description: 'register one user account, used it just for the identifier.', exampleValues: ['122', '333', '222'] } ], commandMatchers: [ { command: 'type' , target: 'id=email' , updateArgs: function(command, args) { args.email = command.value; return args; } } , { command: 'type' , target: 'name=password' , updateArgs: function(command, args) { args.passwd = command.value; return args; } } , { command: 'type' , target: 'name=confirmPassword' , updateArgs: function(command, args) { args.passwd = command.value; return args; } } , { command: 'clickAndWait' , target: 'name=register' } ], getExpandedCommands: function(args) { var commands = []; commands.push({ command: 'type' , target: 'id=email' , value: args.email }); commands.push({ command: 'type', target: 'name=password', value: args.passwd }); commands.push({ command: 'clickAndWait', target: 'name=register' }); return commands; } });
以上代碼片段是一個(gè)完整的Rollup策略定義,在rollup對(duì)象中包含多個(gè)屬性:name, description, args, commandMatchers, getExpandedCommands,下面對(duì)這幾個(gè)屬性一一介紹:
Name:rollup策略的名字,需保證在rollup manager中唯一。
Description: 對(duì)該rollup策略的描述,該描述作為幫助文檔顯示給使用者。
Args: array類型,可以有多組args,args用于調(diào)用者傳入rollup策略的參數(shù),比如:,這里調(diào)用logincommand時(shí)傳入了兩個(gè)參數(shù),也就對(duì)應(yīng)了args數(shù)組中存在兩個(gè)args定義,在args定義中包含三個(gè)參數(shù):name(參數(shù)名), description(參數(shù)描述), exampleValues(沒有實(shí)際意義,為用戶展示參數(shù)值類型),Args中的定義的變量應(yīng)用于兩個(gè)位置,commandMatchers中的updateArgs方法,以及getExpandedCommands方法。
CommandMatchers,該參數(shù)用于使用Selenium IDE中應(yīng)用組策略功能,也就是Selenium IDE中,只有當(dāng)定義了commandMatchers時(shí),這里才可用。
commandMatchers用于匹配腳本中符合commandMachers定義的規(guī)則的selenese命令,并一鍵生成rollup命令。
{ command: 'type' , target: 'id=email' , updateArgs: function(command, args) { args.email = command.value; return args; } }
commandMatchers中可以定義多組command,每個(gè)command中可以包含command, target, updateArgs若干參數(shù)。
Command: 即selenese命令,也就是該command matcher所要匹配的命令。
Target: 即元素定位器,這里可以使用正則方式匹配多種target,如果使用正則也就是該command matcher可以匹配多個(gè)selenese命令,當(dāng)然前提是同一個(gè)類型的command。
UpdateArgs:Function, 函數(shù)的實(shí)現(xiàn)用于動(dòng)態(tài)接收rollup調(diào)用者穿來(lái)的參數(shù)及參數(shù)值,并動(dòng)態(tài)的根據(jù)自定義規(guī)則更新args中定義的變量,注意,這里只是根據(jù)調(diào)用者傳過(guò)來(lái)的參數(shù)值動(dòng)態(tài)修改args變量值,最后將args對(duì)象作為方法返回值return.
其中當(dāng)定義rollup時(shí)args的值為空時(shí),如,args:[],此時(shí)updateArgs定義無(wú)效。
GetExpandedCommands
getExpandedCommands參數(shù)用于定義該rollup命令所包含的Selenese命令集合,也就是在運(yùn)行時(shí)真正需要執(zhí)行的命令
該參數(shù)定義為一個(gè)帶有args參數(shù)的函數(shù),且該函數(shù)返回值為數(shù)組,數(shù)組包含所有需要執(zhí)行的命令集合。
commands.push({ command: 'type', target: 'name=password', value: args.passwd });
數(shù)組元素中包含三部分,即selenese指令的三部分,分別為command, target, value, 其中value可以通過(guò)用戶調(diào)用rollup命令時(shí)傳入的參數(shù)進(jìn)行動(dòng)態(tài)更新。
總結(jié),rollup策略是一個(gè)selenium ide提供的一個(gè)非常強(qiáng)大的功能,使用rollup策略有三大好處,掌握rollup策略只需要腳本開發(fā)人員掌握javascript語(yǔ)言,就能輕松靈活運(yùn)用。
文章題目:SeleniumIDE進(jìn)階部分-Rollup策略
網(wǎng)頁(yè)鏈接:http://aaarwkj.com/article24/gihhje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App開發(fā)、小程序開發(fā)、標(biāo)簽優(yōu)化、網(wǎng)站營(yíng)銷、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)