TA的每日心情 | 奋斗 2021-8-16 14:04 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
前言:
假如你已经确认了XX 项目适合做自动化测试,那么接下来你要做的就是选测试辅助工具了。
首先要先确认你所测试的产品是桌面程序(C/S)还是web应用(B/S)。
桌面程序的工具有:QTP、 AutoRunner
web应用的工具有:QTP、AutoRunner、Robot Framework、watir、selenium
但如果项目没有明确要求我们用Jubit或者更成熟的TestNG就可以了。
基本环境的配置
java环境变量配置:
用来做自动化测试的框架TestNG要求:
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插件。
测试代码:
- <p>
- </p><p>import static org.junit.Assert.*;</p><p>
- </p><p>import org.testng.annotations.Test;</p><p>import org.testng.annotations.DataProvider;</p><p>import org.testng.annotations.BeforeTest;</p><p>import org.testng.annotations.AfterTest;</p><p>
- </p><p>public class NewTest {</p><p> @Test(dataProvider = "dp")</p><p> public void f(String n, String s) {</p><p> if (n.equals("a")) {</p><p> System.out.println("第一个参数是"+n+",第二个参数是"+s);</p><p> }</p><p> if (s.equals("李四")) {</p><p> System.out.println("333");</p><p> }</p><p> }</p><p>
- </p><p> @DataProvider</p><p> public Object[][] dp() {</p><p> return new Object[][] {</p><p> new Object[] {"a", "张三"},</p><p> new Object[] {"b", "李四"},</p><p> new Object[] {"c", 333},</p><p> };</p><p> }</p><p> @BeforeTest</p><p> public void beforeTest() {</p><p> System.out.println("测试用例开始");</p><p> }</p><p>
- </p><p> @AfterTest</p><p> public void afterTest() {</p><p> System.out.println("测试用例结束");</p><p> }</p><p>}</p>
复制代码
执行Run As:
在eclipse端查看日志:
打开在web端查看信息:
注解方法:
@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("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
一个简单的测试用例基本完成。
|
|