亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
selenium學習筆記
作者:網絡轉載 發布時間:[ 2013/12/6 16:26:14 ] 推薦標簽:

  Selenium是一款開源的web自動化測試工具,可以運行于IE、Firefox等若干瀏覽器上,驅動web頁面元素,如點擊按鈕、填寫表單等等,可以錄制用戶操作和通過Java、Python等語言來定制,可以說功能相當強大。

  本來這個工具的初衷是用于web開發人員的單元測試或者兼容性測試等,但我發現它對于系統測試也很有用——比如自動化錄制系統測試腳本。隨著web 2.0技術的不斷發展,富客戶端應用層出不窮,這給系統測試帶來了很大問題——測試腳本隨著軟件build的不斷更新(web頁面的很多細節發生變化),無法用于新build的測試,這導致測試人員經常重復性的手動錄制腳本,再加上數據關聯等工作,耗時費力。

  而Selenium則提供了一個很好的解決方案,它是通過識別web頁面元素來定位頁面控件,所以通過Selenium錄制一次測試腳本,以后每次需要錄制腳本時,都使用Selenium驅動第一次的腳本來重新錄制(像RPTLoad Runner都用跟蹤http請求和響應),這樣的話,Selenium基本可以較好的識別修改以后的控件,而RPT等系統測試工具則可以得到正確的http內容,這個過程不再需要測試人員手動錄制,完全靠Selenium自動驅動。

  Selenium包括很多組件,其中我現在用的是Selenium RC和Selenium IDE。Selenium IDE是Firefox的一個插件,我們可以使用它錄制頁面操作。

  Selenium IDE安裝完畢之后,可以從工具菜單中激活,然后我們可以在firefox中訪問需要測試的網頁,進行各種頁面操作,Selenium IDE在這個過程中會記錄我們的頁面控件和動作。完成錄制之后,Selenium IDE生成一個HTML文件保存腳本,比如

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head profile="http://selenium-ide.openqa.org/profiles/test-case">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="selenium.base" href="http://www.baidu.com/" />
    <title>baidu</title>
    </head>
    <body>
    <table cellpadding="1" cellspacing="1" border="1">
    <thead>
    <tr><td rowspan="1" colspan="3">baidu</td></tr>
    </thead><tbody>
    <tr>
            <td>open</td>
            <td>/</td>
            <td></td>
    </tr>
    <tr>
            <td>type</td>
            <td>kw</td>
            <td>ckword</td>
    </tr>
    <tr>
            <td>clickAndWait</td>
            <td>sb</td>
            <td></td>
    </tr>
    </tbody></table>
    </body>
    </html>

  我們可以導出成Java文件,比如:

    package com.example.tests;

    import com.thoughtworks.selenium.*;
    import java.util.regex.Pattern;

    public class NewTest extends SeleneseTestCase {
            public void setUp() throws Exception {
                    setUp("http://www.baidu.com/", "*chrome");
            }
            public void testNew() throws Exception {
                    selenium.open("/");
                    selenium.type("kw", "ckword");
                    selenium.click("sb");
                    selenium.waitForPageToLoad("30000");
            }
    }

  只要導入相應的selenium和Junit包可運行。

  有一點需要注意的是在回放腳本時,應該添加setSpeed方法,參數是ms,因為Selenium IDE雖然可以選擇回放速度(慢——中——快),但實際上即使選擇慢速,Selenium IDE仍然運行的有些快,導致其在順序執行用戶操作時,可以發生沒等到頁面加載完畢執行下一個命令的現象,導致下一個命令找不到響應的頁面控件。除了setSpeed之外,Selenium IDE還可以添加大量的命令。具體見Selenium IDE界面。

  另外一個關鍵是如何識別頁面控件。自動化的核心是錄制的控件識別方法可以復用,Selenium IDE支持的識別格式包括ID、Name、XPath:attributes、DOM index和XPath : position,而且允許正則表達式,所以非常靈活,根據我使用的情況來看,對于富客戶端應用,控件ID通常都增加了一個隨機數,不適合做識別,Name還不錯,但是如何這個控件Name帶有版本信息,比如控件在不斷升級,從1.3升到1.4,那么Name可以會失效,要小心。XPath: position我用的多,也覺得定位準。但是Selenium IDE有時抓不到某些操作,比如,可以某一個Logout鏈接,是由span來實現的,此時Selenium IDE抓不到,此時可以XPath:attributes識別,這樣寫://span[text()='Log out'],搞定。

  對于Selenium IDE,還有很多細節需要學習,比如正則表達式的應用,如何寫出通用的識別方法,等等。我準備使用Selenium IDE錄制腳本,然后導出成java文件,做一些修改之后用Selenium RC驅動。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲天天做日日做天天看2018 | 在线观看黄a大片爽爽影院免费 | 2020久久精品亚洲热综合一本 | 狠狠操成人| 一区二区三区在线播放 | 亚洲欧美精品一中文字幕 | 国产午夜不卡在线观看视频666 | jk制服喷水| 男人下面桶女人视频免费 | 黄网站视频观看免费 | 色视频免费观看 | 亚洲国产精品日韩高清秒播 | 免费国产不卡午夜福在线观看 | 成人黄色一级视频 | 国产精品福利无圣光一区二区 | 中文在线资源链接天堂 | 国产v在线在线观看羞羞答答 | 日韩欧美一区二区三区免费观看 | 国产欧美亚洲精品第二区首页 | 日韩三级观看 | 日韩成人精品日本亚洲 | 欧美成人专区 | 亚洲欧美日韩专区 | 日本中文字幕在线精品 | 欧美草草| 久操视频网站 | 久久国产免费观看精品1 | 97影院秋霞国产精品 | 欧美丝袜自拍 | 成人免费视频视频在线不卡 | 午夜视频在线观看网站 | 久久免费香蕉视频 | 国产高清在线a视频大全 | 久久精品一区二区国产 | 视频一区国产精品 | 黄色免费在线网址 | 青青视频网 | 天天做天天爱天天一爽一毛片 | 欧美freehdvideos性 | 欧美黄www免费 | 日本午夜精品一本在线观看 |