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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > TestNG
WebDriver + TestNG 應用
作者:網絡轉載 發布時間:[ 2013/12/19 10:31:26 ] 推薦標簽:

Selenium 2 大的更新是集成了WebDriver。這兩者是什么關系呢?如果你搜索WebDriver,第一條結果是Selenium。其實WebDriver和Selenium可以說是在實現UI Automation的競爭對手。Selenium是運行在JavaScript的sandbox里面,所以很容易支持不同的瀏覽器;而WebDriver則是直接操作瀏覽器本身,更接近用戶的真實操作,但正因為如此,所以WebDriver在多瀏覽器/操作系統的支持上要落后于Selenium。不過從Selenium 2開始,這兩個項目合并了,可以繼續用原來的Selenium,也可以考慮遷移到WebDriver。我個人認為WebDriver應該是以后的大趨勢,還是值得遷移的。至于你信不信,我反正是信了。

作為一個輕量級的UI Automation框架,需要寫一些驅動它的代碼,大部分人會選擇JUnit,因為JUnit是單元測試的事實標準;但是我會用TestNG。這些UI Automation的東西,它們本身不是單元測試,而且也沒有太多單元測試的風格。

從一段簡單的測試開始

publicclassGoogleTest{@Testpublicvoidsearch(ITestContext context){WebDriver driver=newFirefoxDriver();
        driver.get("http://www.google.com");
        WebElement element=driver.findElement(By.name("q"));
        element.sendKeys("magus");element.submit(); Assert.assertTrue(driver.getTitle().contains("magus"),"Something wrong with title");}}

TestNG應用了Java的Annotations,只需要在測試方法上面打上@Test可以標示出search是一個測試方法。用TestNG運行測試還需要一個testng.xml的文件,文件名其實可以隨便起,沒有關系的。

<suitename="Magus demo"verbose="2"><testname="Search function"><classes><classname="test.GoogleTest"><methods><includename="search"/></methods></class></classes></test></suite>

我想讓測試更加靈活,1. 可以配置使用任意支持的瀏覽器進行測試;2. 配置所有Google的URL;3. 配置搜索的關鍵字。修改后的代碼:

publicclassGoogleTest{WebDriver driver;
    @Parameters({"browser"})@BeforeTestpublicvoidsetupBrowser(Stringbrowser){if(browser.equals("firefox")){driver=newFirefoxDriver();}else{driver=newChromeDriver();}}
    @Parameters({"url","keyword"})@Testpublicvoidsearch(Stringurl,Stringkeyword, ITestContext context){driver.get(url);WebElement element=driver.findElement(By.name("q"));element.sendKeys(keyword);element.submit();Assert.assertTrue(driver.getTitle().contains(keyword),"Something wrong with title");}}

testng.xml

<suitename="Magus demo"verbose="2"><parametername="browser"value="firefox"/><parametername="url"
value="http://www.google.com"/><parametername="keyword"value="magus"/><testname="Search function"preserve-order="true"><classes><classname="test.GoogleTest"><methods><includename="setupBrowser"/><includename="search"/>
</methods></class></classes></test></suite>

利用TestNG的@Parameters標簽,讓測試方法從testng.xml里面讀取參數,實現參數化。在testng.xml的配置中,test節點需要增加一個屬性的配置: preserve-order=”true”。這個preserve-order默認是false,在節點下面的所有方法的執行順序是無序的。把它設為true以后能保證在節點下的方法是按照順序執行的。TestNG的這個功能可以方便我們在testng.xml里面拼裝測試。假設我們有很多獨立的測試方法,例如

    navigateCategory
    addComment
    addFriend
    login
    logout

可以在testng.xml里面拼出不同的測試,例如

<testname="Add friend"preserve-order="true"><classes><classname="test.GoogleTest"><methods><includename="login"/><includename="addFriend"/>
<includename="logout"/></methods></class></classes></test><testname="Add comment to category"preserve-order="true"><classes><classname="test.GoogleTest"><methods><includename="login"/><includename="navigateCategory"/>
<includename="addComment"/><includename="logout"/></methods></class></classes></test>

TestNG比JUnit更加適合做一些非單元測試的事情,不是說JUnit不好,而是不能把JUnit當成的錘子,到處釘釘子。WebDriver的API比Selenium的更加簡潔,會是以后的大趨勢。

之后打算分享一下如何用ant把自動化測試自動化起來。
http://magustest.com/blog/automationtesting/webdriver-testng/

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产一级片视频 | 中文字幕日本一区波多野不卡 | 久久综合精品视频 | 一级生活录像 | 伦理片在线观看网站资源 | 成人免费视屏 | 欧美日韩大片在线观看 | 一级国产精品一级国产精品片 | baoyu131成人免费视频 | 日韩毛片网 | 欧美日韩一区二区三区在线观看 | 国产婷婷色一区二区三区深爱网 | 99精品国产成人一区二区在线 | 久久亚洲网 | 国产精品欧美一区二区 | 动漫成年美女黄漫网站小视频 | 日韩精品欧美视频 | 欧美日韩国产在线成人网 | 中文字幕一区精品欧美 | 国产成人精品18 | 午夜网站在线观看免费网址免费 | 色偷偷人人澡久久天天 | 亚洲三级成人 | 色干干 | 亚洲一区二区三区高清不卡 | 3344a毛片在线看 | 最新的国产成人精品2022 | aaaaaaa一级毛片 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 一级国产在线观看高清 | 免费午夜影院 | 免费小视频网站 | 国产成人综合洲欧美在线 | 欧美午夜性春 | 毛片网站在线看 | 亚洲综合激情 | 中文字幕第四页 | 欧美三级又粗又硬 | 亚洲高清在线看 | 伊人狠狠色j香婷婷综合 | 欧美人与物videos另类3d |