追求代码质量: 使用 Selenium 和 TestNG 进行编程式测试
2009-11-19 00:00:00 来源:WEB开发网要将实际的值与清单 8 中的参数相关联,我必须在 TestNG 的 testng.xml 文件中定义它们,如清单 9 所示:
清单 9. TestNG 的 testng.xml 文件中定义的特定于 DbUnit 的参数 <parameter name="seed-path" value="test/conf/gt15-seed.xml"/>
<parameter name="db-driver" value="org.hsqldb.jdbcDriver"/>
<parameter name="db-url" value="jdbc:hsqldb:hsql://127.0.0.1"/>
<parameter name="db-user" value="sa"/>
<parameter name="db-psswrd" value=""/>
通用参数值
现在我已经定义了一个灵活的 fixture,它将处理数据库状态和相应测试。现在可以准备使用 TestNG 将所有内容连接起来。通常,第一步是了解希望实现的内容。在本例中,我想完成以下任务:
我希望在运行任何逻辑测试集合前,DbUnit fixture 能够完成自己任务。
我希望将相同的测试集合运行两次:一次用于 Firefox,一次用于 Internet Explorer。
TestNG 的 parameter 元素的作用域是局部的,这对我来说是件好事。这样,我可以很容易地在 TestNG 配置文件中定义通用参数值,并且当需要时在 TestNG 的 test 组元素中重写它们。
比如,要运行两组测试,简单创建两个 test 元素。我可以通过 TestNG 的 package 元素将我的 fixture 和相关测试包括进来,package 元素能够使包结构中所有测试(或 fixture)的查找变得简单。接着,我可以在两个定义了的 test 组中将 Firefox 和 Internet Explorer 的 brwsr-path 参数关联起来。所有这些都显示在了 testng.xml 文件中,如清单 10 所示:
清单 10. 使 DbUnit 运行的灵活的 testng.xml 文件<suite name="User Acceptance Tests" verbose="1" >
<!-- required for DbUnit fixture -->
<parameter name="seed-path" value="test/conf/gt15-seed.xml"/>
<parameter name="db-driver" value="org.hsqldb.jdbcDriver"/>
<parameter name="db-url" value="jdbc:hsqldb:hsql://127.0.0.1"/>
<parameter name="db-user" value="sa"/>
<parameter name="db-psswrd" value=""/>
<!-- required for Selenium fixture -->
<parameter name="selen-svr-addr" value="localhost"/>
<parameter name="aut-addr" value="http://localhost:8080/gt15/"/>
<test name="GT15 CRUDs- Firefox" >
<parameter name="brwsr-path" value="*firefox"/>
<packages>
<package name="test.com.acme.gt15.Web.selenium" />
<package name="test.com.acme.gt15.Web.selenium.fixtures" />
</packages>
</test>
<test name="GT15 CRUDs- IE" >
<parameter name="brwsr-path" value="*iexplore"/>
<packages>
<package name="test.com.acme.gt15.Web.selenium" />
<package name="test.com.acme.gt15.Web.selenium.fixtures" />
</packages>
</test>
</suite>
更多精彩
赞助商链接