您的位置:首页 > 其它

测试框架设计学习笔记 - 2

2018-02-12 15:38 393 查看
学习到18节,完成了testNG的部分,其中包括了以下testNG的特性:

group,例如加上tag @Test(groups={“smoke”}),就表示这个test属于smoke group,可以属于多个group,然后相应的在xml文件中,做如下定义,即可使用group,这里可以include也可以exclude。

<suite name="Test - 1">
<test name="My Test modul">
<groups>
<run>
<include name="smoke" />
</run>
</groups>
<classes>
<class name="com.main.MainTest01" />
<class name="com.test.NGTest01" />
</classes>
</test>
</suite>


定义test之间的依赖执行,例如加上tag @Test(dependsOnMethods={“Main03”}),即表示这个test依赖于另一个test Main03,将在其之后执行。

参数化,例如以下tag的定义,和xml里的定义,这样即可让Main03 test使用xml里定义的变量值。

// 属于 com.main package里的 MainTest class
@Parameters({"URL1", "URL2"})
@Test
public void Main03(String url1, String url2) {
System.out.println("main 03");
System.out.println(url1);
System.out.println(url2);
}


<suite name="My Tet Suite">
<parameter name="URL1" value="www.google.com" />
<parameter name="URL2" value="www.facebook.com" />

<test name="My Test modul">
<packages>
<package name="com.main" />
</packages>
</test>
</suite>


@DataProvider特性,具体还是见代码

@DataProvider
public String[][] getData() {
String[][] data = new String[2][2];
data[0][0] = "1st-username";
data[0][1] = "1st-password";

data[1][0] = "2nd-username";
data[1][1] = "2nd-password";

return data;
}

//这个test会被执行2次,以便使用getData()里提供的,所有的2组测试数据
@Test(dataProvider="getData")
public void Main05(String username, String password) {
System.out.println(username);
System.out.println(password);
}


Listeners特性,有点像JUnit里的TestWatcher,典型用法就是失败后截图,具体见代码..

package com.main;

import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;

public class Listeners implements ITestListener {

@Override
public void onTestStart(ITestResult result) {
// do something when a test just start

}

@Override
public void onTestSuccess(ITestResult result) {
// do something when a test success
}

@Override
public void onTestFailure(ITestResult result) {
// do something when a test fail
}

4000
@Override
public void onTestSkipped(ITestResult result) {
// do something when a test is skipped
}

@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// TODO Auto-generated method stub
}

@Override
public void onStart(ITestContext context) {
// TODO Auto-generated method stub
}

@Override
public void onFinish(ITestContext context) {
// TODO Auto-generated method stub
}
}


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="My Tet Suite">
<listeners>
<listener class-name="com.main.Listeners" />
</listeners>

<parameter name="URL1" value="www.google.com" />
<parameter name="URL2" value="www.facebook.com" />

<test thread-count="5" name="My Test modul">
<packages>
<package name="com.main"></package>
</packages>
</test>
</suite>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: