Testng监.听器

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


*z5Q/bC7n_0
51Testing软件测试网4o0F6Q6eR!AYP
testng提供的监 听器如下:
IAnnotationTransformer
IAnnotationTransformer2
IHookable
IInvokedMethodListener
IMethodInterceptor
IReporter
ISuiteListener
ITestListener

1nL*]u5q$c,]?)q0
比较常用的几个:
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>");
}
}

^'@G?&W.hY0
2.ISuiteListener:测试套件在执行前和执行后执行的监 听:
void onFinish(ISuite suite) 
void onStart(ISuite suite)
51Testing软件测试网/Yy+AI7ISA e/}1K
3.IReporter:默认的测试报表,在所有测试方法执行结束后被调用
51Testing软件测试网 h+[ K&Ki ~4gX
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软件测试网dBo0Fn_
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软件测试网+g`-a!h&B,B0R$`&u
@Test
public void test1() {
}}
c.run configuation中arguments标签配置
输入:如-mytest.mylistener
d.命令行
java org.testng.TestNG -listener MyListener testng1.xml
51Testing软件测试网/M2n-a6S&i1L'AD9G&_(]
e.代码调用testng并加载监 听器
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();
51Testing软件测试网pB1^9`$o;[ [?g

TAG:

 

评分:0

我来说两句

Open Toolbar