菜鳥(niǎo)學(xué)自動(dòng)化測(cè)試(二)----selenium IDE 功能擴(kuò)展
通過(guò)上一節(jié)的學(xué)習(xí),相信我們已經(jīng)會(huì)selnium IDE的基本使用了,為了使selenium 更強(qiáng)大,其實(shí)selenium 還提供了良好的擴(kuò)展能力。
----//用戶擴(kuò)展
用戶擴(kuò)展是使用javaScript文件來(lái)創(chuàng)建定制化特性,添加新功能,通常情況下這種擴(kuò)展是定制化命令,但擴(kuò)展并不于命令。
這里有一些列的擴(kuò)展:http://wiki.openqa.org/display/SEL/Contributed+User-Extensions
1.下面我們利用擴(kuò)展的方式,產(chǎn)生一個(gè)用戶隨機(jī)數(shù)字
為了使用用戶擴(kuò)展,我們需要一個(gè)創(chuàng)建一個(gè)文件,當(dāng)然也可以從上面的鏈接中下載。文件名為:user-extention.js
復(fù)制代碼
//產(chǎn)生隨機(jī)數(shù)
Selenium.prototype.doStoreRandom = function(variableName){
random = Math.floor(Math.random()*10000000);
storedVars[variableName] = random;
}
//彈出框
Selenium.prototype.doDisplayAlert = function(value, varName) {
alert(value);
}
//在控件中輸入當(dāng)前日期
Selenium.prototype.doTypeTodaysDate = function(locator){
var dates = new Date();
var day = dates.getDate();
if (day < 10){
day = '0' + day;
}
month = dates.getMonth() + 1;
if (month < 10){
month = '0' + month;
}
var year = dates.getFullYear();
var prettyDay = day + '/' + month + '/' + year;
this.doType(locator, 'dddddd');
}
復(fù)制代碼
將上面代碼復(fù)制到一個(gè)記事本里,并另存為一個(gè):user-extention.js的文件
在selenium IDE 中導(dǎo)入此文件,如下圖:
選中文件后,點(diǎn)擊“確定”按鈕。你必須關(guān)閉再重啟selenium IDE,以便于擴(kuò)展文件被讀取。任何擴(kuò)展的改變,都要求關(guān)閉和重啟selenium IDE.
2.轉(zhuǎn)換代碼形式
選擇Options 菜單下的Format,允許你選擇一種語(yǔ)言來(lái)保護(hù)和戰(zhàn)士測(cè)試案例。默認(rèn)是HTML格式。
如果你使用selenium RC 運(yùn)行測(cè)試案例。這個(gè)特性可以幫助你將測(cè)試案例翻譯成編程語(yǔ)言。
我們可以選擇“文件”----Export test Case As...來(lái)轉(zhuǎn)換我們需要的語(yǔ)言格式。
3.在不同瀏覽器上執(zhí)行selenium IDE測(cè)試。
selenium IDE只能在friefox上運(yùn)行,但是通過(guò)selenium IDE 開(kāi)發(fā)的自動(dòng)化測(cè)試,可以在其他瀏覽器上運(yùn)行。只要使用一條簡(jiǎn)單的命令喚醒 selenium RC 服務(wù)器可以了。
如果瀏覽器不被直接支持,那么通過(guò)使用" *custom "運(yùn)行模式,你依然可以在瀏覽器上運(yùn)行selenium 測(cè)試案例。
cmd=getNewBrowserSession&1=*custom c:Program FilesMozilla FirefoxMyBrowser.exe&2=http://fnng.cnblogs.com
如下一段代碼:
復(fù)制代碼
package com.example.tests;
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class test extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", http://fnng.cnblogs.com/);
//可以用下面一行的代碼來(lái)替換上面一行代碼
//cmd=getNewBrowserSession&1=*custom c:Program FilesMozilla FirefoxMyBrowser.exe&2=http://fnng.cnblogs.com
//如果是IE瀏覽器的話,可以直接修改瀏覽器名稱,代碼如下:
//selenium = new DefaultSelenium("localhost", 4444, " *iexplore", http://fnng.cnblogs.com/); 這種方式更為簡(jiǎn)便。
selenium.start();
}
@Test
public void testTest() throws Exception {
selenium.open("/");
selenium.click("id=homepage1_HomePageDays_DaysList_DayItem_0_DayList_0_TitleUrl_0");
selenium.waitForPageToLoad("30000");
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
注意:如果通過(guò)這種方式啟動(dòng)瀏覽器,你必須手動(dòng)配置瀏覽器,以便將selenium Server 作為代理,通常這僅僅意味著打開(kāi)你的瀏覽器參數(shù)文件,并指明“localhost:4444”作為HTTP代理。但是,不同瀏覽器的指令可能完全不一樣,這需要從你的瀏覽器支持文檔中尋找更多細(xì)節(jié)。