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里面读取参数,实现参数化。在testng.xml的配置中,test节点需要增加一个属性的配置: preserve-order=”true”。这个preserve-order默认是false,在节点下面的所有方法的执行顺序是无序的。把它设为true以后能保证在节点下的方法是按照顺序执行的。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的更加简洁,会是以后的大趋势。