现在的位置: 首页 > 综合 > 正文

testNG 入门

2013年10月21日 ⁄ 综合 ⁄ 共 3870字 ⁄ 字号 评论关闭

这几天学习testNG,很是郁闷,在网上搜索了一些文档,或许自己太菜总是感觉云里雾里的,搞了好几天,今天才感觉有点眉目:
1、最简单的testNG

Java代码 复制代码 收藏代码
  1. import org.apache.commons.lang.StringUtils;    
  2. import org.testng.annotations.Test;   
  3.   
  4. public class StringUtilsTest{   
  5.        
  6.     @Test  
  7.     public void isEmpty()   
  8.     {    
  9.         assert StringUtils.isEmpty(null);   
  10.         assert StringUtils.isEmpty("");   
  11.     }   
  12.     @Test  
  13.     public void trim()   
  14.     {   
  15.         assert "foo".equals(StringUtils.trim("  foo   "));   
  16.     }    
  17. }  

这个例子是在网上找到的,这里挪用一下了

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  就荣耀登场了~

testNG.xml
<?xml version="1.0" encoding="UTF-8"?>

<!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 等相关信息仅是本机的一个测试项目:

TestHRLoginBefore .java:在登录前Start Selenium ,在运行suite结束后,stop Selenium
package test.suite;

import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import test.sample.SeleniumInstance;
import com.thoughtworks.selenium.Selenium;

public class TestHRLoginBefore {
Selenium selenium = SeleniumInstance.getInstance(); //单例模式创建Selenium对象

@BeforeSuite
public void setUp() {
selenium.start();
System.out.println("======== setUp ===========");
}

@AfterSuite
public void tearDown(){
selenium.stop();
System.out.println("======= tearDown ===========");

}

}

 

TestHRAddUser.java :填写必要信息,点击确定按钮

Java代码 复制代码 收藏代码
  1. import org.testng.annotations.Test;    
  2. import test.sample.SeleniumInstance;    
  3. import com.thoughtworks.selenium.Selenium;   
  4.   
  5. public class TestHRAddUser {    
  6.   Selenium selenium = SeleniumInstance.getInstance();      
  7.      
  8.   @Test(groups="HR")   
  9.  public void testAddUser(){   
  10.       selenium.open("/accesscontrol?inpage=listusers");    
  11.       selenium.click("css=a[href=/admin/admin_manage.jsp]");    
  12.       selenium.type("css=input[name=username]""cxr1217");   
  13.       selenium.type("css=input[name=password]""cxr1217");   
  14.       selenium.type("css=input[name=passwordensure]""tianxiaocao");    
  15.       selenium.type("css=input[name=email]""111@163.com");   
  16.       selenium.type("css=input[name=tel]""12345678");   
  17.       selenium.type("css=input[name=mobile]""111");    
  18.       selenium.type("cityvalue","02");    
  19.       selenium.click("css=a[href=\"javaScript:htmlsubmit();\"]");   
  20.   }   
  21.     
  22. }  

 

   相关jar包 是:commons-lang.jar  和 testng-5.8-jdk15.jar

抱歉!评论已关闭.