测试框架设计学习笔记 - 2
2018-02-12 15:38
393 查看
学习到18节,完成了testNG的部分,其中包括了以下testNG的特性:
group,例如加上tag @Test(groups={“smoke”}),就表示这个test属于smoke group,可以属于多个group,然后相应的在xml文件中,做如下定义,即可使用group,这里可以include也可以exclude。
定义test之间的依赖执行,例如加上tag @Test(dependsOnMethods={“Main03”}),即表示这个test依赖于另一个test Main03,将在其之后执行。
参数化,例如以下tag的定义,和xml里的定义,这样即可让Main03 test使用xml里定义的变量值。
@DataProvider特性,具体还是见代码
Listeners特性,有点像JUnit里的TestWatcher,典型用法就是失败后截图,具体见代码..
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>
相关文章推荐
- 测试框架设计学习笔记 - 4
- 测试框架设计学习笔记 - 3
- 测试框架设计学习笔记 - 1
- Java学习笔记38:通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项
- 软件测试基础课程学习笔记4--测试用例设计方法技巧
- 设计模式学习笔记——原型(Prototype)框架
- Robot Framework测试框架学习笔记
- 黑盒测试框架学习笔记
- CEH学习笔记之渗透测试框架
- eclipse初步学习笔记(快捷键 运行调试 junit测试框架)
- jasmine测试框架学习笔记
- 『框架设计(第2版)CLR Via C#』学习笔记(001)——将源代码编译成托管模块
- hibernate框架学习笔记1:搭建与测试
- jBPM-jPDL学习笔记—框架设计简介(四)
- C# Hadoop学习笔记(四)—设计自己的云计算框架
- CLR Via C#(框架设计)学习笔记 总结
- jBPM-jPDL学习笔记—框架设计简介(五)
- 『框架设计(第2版)CLR Via C#』学习笔记(002)——将托管代码合并到程序集
- Python unittest 测试框架学习笔记
- jBPM-jPDL学习笔记—框架设计简介(一)