Testng监.听器

上一篇 / 下一篇  2016-04-11 20:17:15 / 个人分类:TetsNG

51Testing软件测试网'P8sU4y!Q!z-SA
51Testing软件测试网a)r;u;C-F9M1Bx"lda
testng提供的监 听器如下:
IAnnotationTransformer
IAnnotationTransformer2
IHookable
IInvokedMethodListener
IMethodInterceptor
IReporter
ISuiteListener
ITestListener
51Testing软件测试网 Z6A Jb"G;^J`GT
比较常用的几个:
1.ITestListener:在测试方法执行成功、失败、或跳过时执行的监 听
TestListenerAdapter已经实现了该接口,只需要继承该类即可:
如:
public class NewTest2 extends TestListenerAdapter {
  @Override
  public void onTestSuccess(ITestResult tr) {
 super.onTestSuccess(tr);
 long starttime=tr.getStartMillis();
 long endtine=tr.getEndMillis();
 long esplend=endtine-starttime;
 Reporter.log("持续时间:"+String.valueOf(esplend));
  }
  @Override
  public void onTestFailure(ITestResult tr) {
 super.onTestFailure(tr);
 takescreenshot(tr);
  }
  private void takescreenshot(ITestResult tr) {
WebDriver driver = new InternetExplorerDriver();
File scrFile = driver.getScreenshotAs(OutputType.FILE);
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
String filepath="……";
FileUtils.copyFile(srcFile,new File(filepath));
Reporter.setCurrentTestResult(tr);
Reporter.log("<a href=\"../"+filepath+"\">错误截图</a>");
}
}

*w*@Ym}{,EM0
2.ISuiteListener:测试套件在执行前和执行后执行的监 听:
void onFinish(ISuite suite) 
void onStart(ISuite suite)
51Testing软件测试网Gr1Tt'n {'PWz
3.IReporter:默认的测试报表,在所有测试方法执行结束后被调用

0nCV`Ay*IG0
public class CustomReporter implements IReporter{
    @Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites,
        String outputDirectory) {
        for (ISuite suite : suites) {
            String suiteName = suite.getName();
   Map<String ISuiteResult> suiteResults = suite.getResults();
   for (ISuiteResult sr : suiteResults.values()) {
       ITestContext tc = sr.getTestContext();
        Reporter.log(tc.getPassedTests().getAllResults().size());
      
     }
        }
    }
}
51Testing软件测试网p+V%Fr+Y;sb}h+c
4.调用监 听程序
a.testng.xm
<suite name="Sample">
<listeners>
<listener class-name="mytest.mylistener" />
</listeners>
<test name="test">
<classes>
<class name="tests.SampleTest" />
</classes>
</test>
</suite>
b.代码中
@Listeners({ mylistener.class })
public class SampleTest {
51Testing软件测试网~0U;T%i-f}
@Test
public void test1() {
}}
c.run configuation中arguments标签配置
输入:如-mytest.mylistener
d.命令行
java org.testng.TestNG -listener MyListener testng1.xml

Bl vn$X0
e.代码调用testng并加载监 听器
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();
51Testing软件测试网yC!d|:ca:R

TAG:

 

评分:0

我来说两句

Open Toolbar