• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • selenium開源功能測試工具

    發表于:2008-04-17來源:作者:點擊數: 標簽:seleniumSelenium工具開源功能
    1.概述 Selenium是非常非常有用的,對 Java Script支持良好的Web層 功能測試 , 集成測試 工具。 Selenium分為Core與RC(Remote Controll)兩個部分,其中Core是基礎的,直接在HTML Table里編寫測試代碼的模塊,而Remote Controll則支持用Java等語言編寫 測試用
    1.概述
    Selenium是非常非常有用的,對JavaScript支持良好的Web層功能測試,集成測試工具。

    Selenium分為Core與RC(Remote Controll)兩個部分,其中Core是基礎的,直接在HTML Table里編寫測試代碼的模塊,而Remote Controll則支持用Java等語言編寫測試用例,并自動調用FireFox1.5來運行。

    具體的語法見http://www.openqa.org/selenium-core/usage.html

    2.Better Practice
    1. Never use Selenium FIT mode
    Selenium分為兩種運行模式,Driven Mode(現在叫Selenium Remote Control)和FIT Mode(現在叫Selenium Core)。

    FIT Mode顧名思義,就是類似FIT Testing Framework那種使用方式,主要用于QA等非技術人員編寫Web應用的功能測試。FIT Mode的Selenium測試使用HTML來組織測試用例。例如我要測試一個web應用的登陸功能。我可能寫出這樣的HTML 表格。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    openhttp://localhost:8080/login
    typeid=usernamesomeuser
    typeid=passwordpassword
    clickid=login_button
    assertTextPresentWelcome to xxxx

    不同于FIT,Selenium內置了一系列的命令,如上例中的open, type, click以及assertTextPresent,因此QA可以完全拋開DEV獨立地編寫測試(FIT需要DEV提供Behavior Fixture)。因此FIT Mode是相當容易使用的,哪怕不會使用HTML的QA,也可以使用FrontPage畫出三列表格,依次填入數據。

    然而對于大多數team而言——尤其是敏捷team,FIT Mode平易的外表下是令人恐懼的泥沼。大多數團隊往往選擇使用Selenium作為功能測試和集成測試工具而不僅僅是QA測試工具,在不同的迭代間遇到功能流程或UI變化時,必須要重構Selenium測試,或者說,Functional Test Migration。令人遺憾的是,HTML based的Selenium FIT Testing的重構竟然令人難以置信的困難。我們可以使用include等Selenium FIT擴展,使得它可以重用詳細的功能(Log in, Log out諸如此類)。即便如此,在一個真實的項目中,Selenium Test的數量往往在200-500之間(我目前所處的項目在改用Driven Mode前已達350+),對于這么大基數的Selenium測試,手工重構幾乎是不可想象的,而目前尚沒有HTML代碼重構工具。即便存在泛泛意義上的HTML重構工具,對于Selenium測試重構的有效性尚待商榷。而使用Driven Mode上述代碼可以寫為:

    1 public void testShouldShowAWeclomeMessageAfterUserLoggedIn() {
    2 selenium.open("http://localhost:8080/login");
    3 selenium.type("id=username","someuser");
    4 selenium.type("id=password", "password");
    5 selenium.click("id=login_button");
    6 assertTrue(selenium.isTextPresent("Welcome to xxxx"));
    7}

    很自然,一個訓練有素的程序員會重構出如下代碼:

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>