testng.xml
<suite name="Magus demo" verbose="2">
<parameter name="browser" value="firefox" />
<parameter name="url" value="
http://www.google.com" />
<parameter name="keyword" value="magus" />
<test name="Search function" preserve-order="true">
<classes>
<class name="test.GoogleTest">
<methods>
<include name="setupBrowser" />
<include name="search" />
</methods>
</class>
</classes>
</test>
</suite>
利用TestNG的@Parameters標簽,讓測試方法從testng.xml里面讀取參數(shù),實現(xiàn)參數(shù)化。在testng.xml的配置中,test節(jié)點需要增加一個屬性的配置: preserve-order=”true”。這個preserve-order默認是false,在節(jié)點下面的所有方法的執(zhí)行順序是無序的。把它設為true以后能保證在節(jié)點下的方法是按照順序執(zhí)行的。TestNG的這個功能可以方便我們在testng.xml里面拼裝測試。假設我們有很多獨立的測試方法,例如
navigateCategory
addComment
addFriend
login
logout
可以在testng.xml里面拼出不同的測試,例如
<test name="Add friend" preserve-order="true">
<classes>
<class name="test.GoogleTest">
<methods>
<include name="login" />
<include name="addFriend" />
<include name="logout" />
</methods>
</class>
</classes>
</test>
<test name="Add comment to category" preserve-order="true">
<classes>
<class name="test.GoogleTest">
<methods> <include name="login" />
<include name="navigateCategory" />
<include name="addComment" />
<include name="logout" />
</methods>
</class>
</classes>
</test>
TestNG比JUnit更加適合做一些非單元測試的事情,不是說JUnit不好,而是不能把JUnit當成的錘子,到處釘釘子。WebDriver的API比Selenium的更加簡潔,會是以后的大趨勢。