一个简单的自动化测试用例


前言:

       假如你已经确认了XX 项目适合做自动化测试,那么接下来你要做的就是选测试辅助工具了。

  首先要先确认你所测试的产品是桌面程序(C/S)还是web应用(B/S)。

  桌面程序的工具有:QTP、 AutoRunner

  web应用的工具有:QTP、AutoRunner、Robot Framework、watir、selenium

     但如果项目没有明确要求我们用Jubit或者更成熟的 TestNG就可以了。


基本环境的配置

java环境变量配置:

因为前人已经整理的很好了没必要再单独写了直接帖上表示敬意

http://blog.csdn.net/chinajobs/article/details/52755542?%3E


用来做自动化测试的框架TestNG要求:

Eclipse plug-in

Java 1.7+ is required for running the TestNG for Eclipse plugin.

Eclipse 4.2 and above is required. Eclipse 3.x is NOT supported any more, please update your Eclipse to 4.2 or above.

You can use either the Eclipse Marketplace or the update site:


导入和下载方式:

打开Eclipse Help ->MarketPlace,在搜索框里面输入TestNG搜索,然后安装TestNG插件。打开Eclipse Help ->MarketPlace,在搜索框里面输入TestNG搜索,然后安装TestNG插件。

新建测试用例:

一个简单的自动化测试用例_第1张图片

一个简单的自动化测试用例_第2张图片

测试代码:

import static org.junit.Assert.*;

import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;

public class NewTest {
  @Test(dataProvider = "dp")
  public void f(String n, String s) {
 if (n.equals("a")) {
 System.out.println("第一个参数是"+n+",第二个参数是"+s);
 }
 if (s.equals("李四")) {
 System.out.println("333");
 }
  }

  @DataProvider
  public Object[][] dp() {
    return new Object[][] {
      new Object[] {"a", "张三"},
      new Object[] {"b", "李四"},
      new Object[] {"c", 333},
    };
  }
  @BeforeTest
  public void beforeTest() {
 System.out.println("测试用例开始");
  }

  @AfterTest
  public void afterTest() {
 System.out.println("测试用例结束");
  }
}


执行Run As:

一个简单的自动化测试用例_第3张图片

在eclipse端查看日志:

一个简单的自动化测试用例_第4张图片

打开在web端查看信息:

一个简单的自动化测试用例_第5张图片

注解方法:
  @BeforeSuite: 被此注解的方法将在所有测试运行之前运行该方法。
  @AfterSuite: 被此注解的方法将在所有测试运行之后运行该方法。
  @BeforeTest: 被此注解的方法,将在测试运行之前运行。
  @AfterTest: 被此注解的方法,将在测试运行之后运行。
  @BeforeClass: 被此注解的方法,将在当前类的第一个测试方法调用之前运行
  @AfterClass: 被此注解的方法,将在当前类的所有测试方法调用之后运行
  @BeforeMethod: 被此注解的方法,将在每个测试方法调用之前运行
  @AfterMethod: 被此注解的方法,将在每个测试方法调用之后运行。
  @DataProvider: 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。

我们的用例执行了“f这个方法,在执行过程中我们传递了3组数据用来验证是否存在错误。

      new Object[] {"a", "张三"},
      new Object[] {"b", "李四"},
      new Object[] {"c", 333},

这3组数据在f的方法中依次执行,日志信息提示:

PASSED: f("a", "张三")     成功
PASSED: f("b", "李四")     成功
FAILED: f                       失败


Method: f([Parameter{index=0, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=1, type=java.lang.String, declaredAnnotations=[]}])
Arguments: [(java.lang.String) c,(java.lang.Integer) 333]


这段信息告诉我们错误的原因:

并指出方法中第1个参数是String类型,第二个也是String类型
传递的参数Arguments第一个是String类型值是"c",第二个参数是Integer类型值是333



一个简单的测试用例基本完成。





你可能感兴趣的:(一个简单的自动化测试用例)