testNG 学习笔记1
testNG 入门:
这几天学习testNG,很是郁闷,在网上搜索了一些文档,或许自己太菜总是感觉云里雾里的,搞了好几天,今天才感觉有点眉目:
1、最简单的testNG
import org.apache.commons.lang.StringUtils; import org.testng.annotations.Test;public class StringUtilsTest{@Testpublic void isEmpty(){ assert StringUtils.isEmpty(null);assert StringUtils.isEmpty("");}@Testpublic void trim(){assert "foo".equals(StringUtils.trim(" foo "));} }
这个例子是在网上找到的,这里挪用一下了
Eclipse/Myeclipse??(可以在 http://beust.com/eclipse安装插件)直接运行即可:RUN AS >TestNG test
可以运用这样的java 进行单元测试,在这方面 与JUnit 没有太大的区别
?
2、testNG.xml
这个东西让我郁闷了很久,我一直以为任何的一个 testng 例子的运行都需要testNG.xml ,事实上不是这样,这个testNG.xml? 我现在是这样理解的,是针对testNG示例进行管理的 配置。
一个testNG java类,可以对单个功能点 进行单元测试,比如一个系统的 login 是一个testNG-- TestHRLogin.java,
增加用户是一个? testNG --- TestHRAddUser.java
当我测试增加用户是否成功的时候,需要两个testNG都要运行,并且运行有先后顺序的,这个时候,testNG.xml? 就荣耀登场了~
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" ><suite name="suite1">
<test name="testAddUser">
<classes>
<class name="test.suite.TestHRLoginBefore" />? //开始登陆前的一些必要操作
<class name="test.suite.TestHRLogin" />? // 登陆系统
<class name="test.suite.TestHRAddUser" /> //增加用户操作
</classes>
</test>
</suite>
?testNG.xml 将login操作 和增加用户操作 进行配置,这样,不同的两个单元测试就可以一起运行了,而且在编写代码的过程中还可以根据两个测试用例的依赖关系进行设置,来确定 TEST?用例运行时所依赖的方法是哪个(后续~)
然后在testNG.xml上,右键 >Run As >TestNG Suite 即可对该suite进行运行
代码罗列如下,里面配置的IP 等相关信息仅是本机的一个测试项目:
import org.testng.annotations.Test; import test.sample.SeleniumInstance; import com.thoughtworks.selenium.Selenium;public class TestHRAddUser { Selenium selenium = SeleniumInstance.getInstance(); @Test(groups="HR") public void testAddUser(){ selenium.open("/accesscontrol?inpage=listusers"); selenium.click("css=a[href=/admin/admin_manage.jsp]"); selenium.type("css=input[name=username]", "cxr1217"); selenium.type("css=input[name=password]", "cxr1217"); selenium.type("css=input[name=passwordensure]", "tianxiaocao"); selenium.type("css=input[name=email]", "111@163.com"); selenium.type("css=input[name=tel]", "12345678"); selenium.type("css=input[name=mobile]", "111"); selenium.type("cityvalue","02"); selenium.click("css=a[href=\"javaScript:htmlsubmit();\"]"); } }?
?? 相关jar包 是:commons-lang.jar? 和 testng-5.8-jdk15.jar