<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    blogjava's web log

    blogjava's web log
    ...

    Selenium測試 使用筆記

    看了江南白衣 Selenium--透明反復(fù)推介的集成測試工具(Pragmatic系列)
    確實(shí)不錯。值得推薦使用。但是有的時候確實(shí)也挺麻煩。
    比如說,我一個頁面可能有上百個文本框。等很多動作。
    那在Junit 里可能要 寫 一段很長的代碼了。

    ??? test.open("/");
    ???
    test.click("");
    ???
    test.type("");
    。。。。。
    。。。。。。。
    。。。。。
    ?我想在稍微大點(diǎn)的項(xiàng)目中 這樣寫測試代碼 可能也是個噩夢。。


    解決辦法

    1.如果沒有安裝firefox 下載fireFox ?

    2.Selenium IDE

    1. 下載? Selenium IDE https://addons.mozilla.org/firefox/2079/
    2. Firefox > Tools > Selenium IDE
    3. Selenium IDE > Options > Options...
      1. 選擇 Format 選項(xiàng).
      2. 點(diǎn)擊添加按鈕.
      3. (Name of the fommat )給新添的起個名字 testSelenium
      4. 粘貼下面JS代碼到文本恇
      5. 點(diǎn)擊確定
    4. 點(diǎn)擊工具 菜單 Selenium IDE > Options > Format > testSelenium
    5. 可以錄腳本了

    testSelenium.js

    var? SEPARATORS?=?{
    ??pipe:?
    "|",
    ??comma:?
    ",",
    ??tab:?
    "\t"
    };

    function?formatCommands(commands)?{
    ??
    var?result?=?'';
    ??
    var?sep?=?SEPARATORS[options.separator];
    ??
    var?prefix?=?options.wrap?==?'true'???sep?:?"";
    ??
    var?postfix?=?prefix;
    ??
    for?(var?i?=?0;?i?<?commands.length;?i++)?{
    ????
    var?command?=?commands[i];
    ????
    if?(command.type?==?'command')?{
    ??????result?
    +=?prefix?+?command.command?+?sep?+?command.target?+?sep?+?command.value?+?postfix?+?"\n";
    ????}
    ??}
    ??
    return?result;
    }

    function?parse(testCase,?source)?{
    ??
    var?doc?=?source;
    ??
    var?commands?=?[];
    ??
    var?sep?=?SEPARATORS[options.separator];
    ??
    var?base?=?options.wrap?==?'true'???1?:?0;
    ??
    while?(doc.length?>?0)?{
    ????
    var?line?=?/(.*)(\r\n|[\r\n])?/.exec(doc);
    ????
    var?array?=?line[1].split(sep);
    ????
    if?(array.length?>=?(base+3))?{
    ??????
    var?command?=?new?Command();
    ??????command.command?
    =?array[base+0];
    ??????command.target?
    =?array[base+1];
    ??????command.value?
    =?array[base+2];
    ??????commands.push(command);
    ????}
    ????doc?
    =?doc.substr(line[0].length);
    ??}
    ??testCase.setCommands(commands);
    }

    function?format(testCase,?name)?{
    ??
    return?formatCommands(testCase.commands);
    }

    options?
    =?{
    ????separator:?'pipe',
    ????wrap:?'
    true'
    };

    configForm?
    =?
    ????'
    <description>Separator</description>'?+?
    ????'
    <menulist?id="options_separator">'?+
    ????'
    <menupopup>'?+
    ????'
    <menuitem?label="Pipe"?value="pipe"/>'?+
    ????'
    <menuitem?label="Comma"?value="comma"/>'?+
    ????'
    <menuitem?label="Tab"?value="tab"/>'?+
    ????'
    </menupopup>'?+
    ????'
    </menulist>'?+
    ????'
    <checkbox?id="options_wrap"?label="Wrap?command?with?separator"/>';


    最后 錄制的 腳本 如下

    base?url?http://www.cnblogs.com/

    |open|/||
    |clickAndWait|link=注冊||
    |type|ctl00_cphMain_tbApplicant|junmy|
    |type|ctl00_cphMain_tbEmail|wunjunlove(At)gmial.com|
    |type|ctl00_cphMain_tbCompany|msSonft|
    |type|ctl00_cphMain_tbCity|shenzhen|
    |type|ctl00_cphMain_tbApplyText|teeee詳細(xì)申請理由(比如:技術(shù)專長,感興趣的技術(shù),在Blog中寫哪方面的內(nèi)容|
    |click|ctl00_cphMain_btnSend||


    把此錄制的腳本 保存為一個文件。

    再寫一個類專門來處理分析 這個腳本

    就不用 在Junit測試 寫 那么長的

    ??? test.open(
    "/");
    ???
    test.click("");
    ???
    user.type("");

    等特長的代碼了 。



    posted on 2006-10-29 12:09 record java and net 閱讀(4015) 評論(4)  編輯  收藏 所屬分類: Springjava

    評論

    # re: Selenium測試 使用筆記 2006-10-30 09:56 inlife.cn

    沒聽過。  回復(fù)  更多評論   

    # re: Selenium測試 使用筆記 2006-10-30 21:28 Tin

    先后和nemo、limo、raimudox、nicholas討論:
    selenium的Remote Control比較適合在需求階段就撰寫,作為驗(yàn)收的測試。好處是RC對重構(gòu)支持相對好一些,而且你可以換Agent,也可以做瀏覽器兼容測試。(但是由于RC的限制,兼容側(cè)試兼容性并不好:)
    按照raimudox所說RC是更加Pragmatic的實(shí)踐,更能體現(xiàn)敏捷軟件開發(fā)的測試先行的特性。功能測試可以說是溝通用戶與開發(fā)者的最佳契約。
    Selenium IDE適合作為基線保留,作為某次重構(gòu)之前的樣本。或者說,如果覺得手寫測試腳本太麻煩,而喜歡本末倒置(沒有貶義,純技術(shù)上)的人設(shè)計(jì)的。更現(xiàn)實(shí)的說,這很有用,比如一個項(xiàng)目從一半開始敏捷改造,引入功能測試、單元測試,對以后的迭代進(jìn)行基線的衡量,給新引入的CI(持續(xù)集成)一個更有實(shí)際意義的測試保障,用Selenium IDE幫助生成一下Script,然后再使用RC或者直接用Core執(zhí)行一下都是不錯的實(shí)踐。
    還有,據(jù)Nicholas同學(xué)實(shí)踐,Selenium IDE所錄制的script在IDE中執(zhí)行比RC方式兼容性要好,尤其對于跨域的情況,RC很有可能是無法工作的。還有一個問題,就是Selenium實(shí)際上是ThoughtWorks和BEA牽頭的項(xiàng)目,TW負(fù)責(zé)Core,目前Core的代碼發(fā)展的必較快,而RC由BEA負(fù)責(zé),發(fā)展比較緩慢,所以,有些時候選擇也就成為無奈了。  回復(fù)  更多評論   

    # re: Selenium測試 使用筆記 2006-11-19 13:09 苗春利

    仿宋  回復(fù)  更多評論   

    # re: Selenium測試 使用筆記 2007-07-05 10:43 Jackei

    對于有開發(fā)經(jīng)驗(yàn)的人來說,RC 模式的確更合適一些,特別是 RC 模式對于腳本的可擴(kuò)展性和可維護(hù)性會好很多。而且腳本可以通過抽象和封裝來提高可重用性。 Core 模式下幾乎就無法實(shí)現(xiàn)這些特性了。  回復(fù)  更多評論   

    導(dǎo)航

    常用鏈接

    留言簿(44)

    新聞檔案

    2.動態(tài)語言

    3.工具箱

    9.文檔教程

    友情鏈接

    搜索

    最新評論

    主站蜘蛛池模板: 亚洲第一黄色网址| 91免费资源网站入口| 亚洲暴爽av人人爽日日碰| 在线免费中文字幕| 亚洲AV综合色一区二区三区| 一级毛片成人免费看a| 四虎国产精品免费视| 麻豆亚洲AV成人无码久久精品 | 日本精品久久久久久久久免费| 毛片免费在线观看网站| 亚洲精品蜜夜内射| 国产网站在线免费观看| 日韩亚洲人成在线综合日本| 西西人体免费视频| 成人片黄网站色大片免费| 日韩亚洲产在线观看| 少妇无码一区二区三区免费| 亚洲人成在线影院| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 国产国拍亚洲精品mv在线观看| 99久久免费国产特黄| 亚洲av日韩av无码| 永久免费av无码网站韩国毛片 | 亚洲人成77777在线播放网站| 国产午夜精品久久久久免费视| 久久久久亚洲av无码专区导航 | 亚洲成人在线网站| 丁香花免费完整高清观看| 亚洲av无码一区二区三区人妖 | 精品视频在线免费观看| 久久久久久亚洲AV无码专区| 99久久免费国产精品特黄 | 春意影院午夜爽爽爽免费| 亚洲av之男人的天堂网站| 免费v片在线观看视频网站| 久久国产亚洲观看| 丁香花在线观看免费观看| 男男gay做爽爽免费视频| 亚洲av永久无码精品秋霞电影影院 | 8888四色奇米在线观看免费看| 色偷偷噜噜噜亚洲男人|