一、TestNg的数据驱动
1. 数据驱动
1)什么是数据驱动?
·数据驱动是指在一个脚本固定的情况下,用数据来控制该脚本是否运行,以及运行的次数,还有每次运行时对应的参数
2)数据驱动的应用场景:
·比如我们在测试登录时,要测试用不同的账户登录,难道我们需要针对每一个账户去写一个脚本吗?这样显然是不明智的,于是,testng为我们提供了这个注脚,让我们只需要提供出数据,就可以控制脚本运行次数及相应的参数。
2. TestNg数据驱动(数据源)
1)实现方式:
·用注脚: @DataProvider
2)示例:
第一种实现方式:不指定name
运行结果:
第二种方式:指定name
运行结果:
二、TestNg用XML运行
TestNg的几种运行方式:
1. 以method为基点
<?xml version="1.0" encoding="UTF-8"?> <suite name="Suite" verbose="1" parallel="false" thread-count="1"> <test name="test1"> <classes> <class name="com.test.ng1.test1"> <methods> <include name="test2"/> <include name="test1"/> </methods> </class> </classes> </test> </suite>
运行结果:
2. 以class为基点
<?xml version="1.0" encoding="UTF-8"?> <suite name="Suite" verbose="1" parallel="false" thread-count="1"> <test name="test1"> <classes> <class name="com.test.ng1.test1"> </class> </classes> </test> </suite>
运行结果:
3. 以package为基点
<?xml version="1.0" encoding="UTF-8"?> <suite name="Suite" verbose="1" parallel="false" thread-count="1"> <test name="test1"> <packages> <package name="com.test.ng1"/> </packages> </test> </suite>
三、TestNg用例管理
1. 用例管理原则——用例独立少依赖
package com.test.ng1; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; public class test1 { //无名的数据驱动,调用可以使用方法名 @DataProvider public Object[][] logindata(){ return new Object[][]{{"a"},{"b"}}; } //因为数据驱动没有名字,搜易可以写方法名 @Test(dataProvider="logindata") public void test1(String info){ System.out.println(info); } //为数据驱动定义名字 @DataProvider(name="longoutdata") public Object[][] logoutDataInfo(){ return new Object[][]{{"1"},{"2"}}; } //指定数据驱动的名字,而非方法名 @Test(dataProvider="longoutdata") public void test2(String info){ System.out.println(info); } @BeforeClass public void bClass(){ System.out.println("BeforeClass"); } @AfterClass public void aClass(){ System.out.println("AfterClass"); } @BeforeMethod public void setUp(){ System.out.println("beforemethod,setUp"); } @AfterMethod public void tearDown(){ System.out.println("aftermethod,tearDown"); } }
————————————————
版权声明:本文为CSDN博主「jffhy2017」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jffhy2017/article/details/60972253