51Testing软件测试论坛

标题: 测试框架设计学习笔记 [打印本页]

作者: 梦幻小丑灯    时间: 2018-6-15 15:37
标题: 测试框架设计学习笔记
  1. <p>group,例如加上tag @Test(groups={“smoke”}),就表示这个test属于smoke group,可以属于多个group,然后相应的在xml文件中,做如下定义,即可使用group,这里可以include也可以exclude。</p><p><suite name="Test - 1"></p><p>  <test name="My Test modul"></p><p>    <groups></p><p>        <run></p><p>            <include name="smoke" /></p><p>        </run></p><p>    </groups></p><p>    <classes></p><p>      <class name="com.main.MainTest01" /></p><p>      <class name="com.test.NGTest01" /></p><p>    </classes></p><p>  </test></p><p></suite></p><p>
  2. </p><p>定义test之间的依赖执行,例如加上tag @Test(dependsOnMethods={“Main03”}),即表示这个test依赖于另一个test Main03,将在其之后执行。</p><p>参数化,例如以下tag的定义,和xml里的定义,这样即可让Main03 test使用xml里定义的变量值。</p><p>    // 属于 com.main package里的 MainTest class</p><p>    @Parameters({"URL1", "URL2"})</p><p>    @Test</p><p>    public void Main03(String url1, String url2) {</p><p>        System.out.println("main 03");</p><p>        System.out.println(url1);</p><p>        System.out.println(url2);</p><p>    }</p><p>
  3. </p><p><suite name="My Tet Suite">  </p><p>  <parameter name="URL1" value="www.google.com" /></p><p>  <parameter name="URL2" value="www.facebook.com" /></p><p>
  4. </p><p>  <test name="My Test modul"></p><p>    <packages></p><p>        <package name="com.main" /></p><p>    </packages></p><p>  </test></p><p></suite></p><p>@DataProvider特性,具体还是见代码</p><p>    @DataProvider</p><p>    public String[][] getData() {</p><p>        String[][] data = new String[2][2];</p><p>        data[0][0] = "1st-username";</p><p>        data[0][1] = "1st-password";</p><p>
  5. </p><p>        data[1][0] = "2nd-username";</p><p>        data[1][1] = "2nd-password";</p><p>
  6. </p><p>        return data;</p><p>    }</p><p>
  7. </p><p>    //这个test会被执行2次,以便使用getData()里提供的,所有的2组测试数据</p><p>    @Test(dataProvider="getData")</p><p>    public void Main05(String username, String password) {</p><p>        System.out.println(username);</p><p>        System.out.println(password);</p><p>    }</p><p>
  8. </p><p>Listeners特性,有点像JUnit里的TestWatcher,典型用法就是失败后截图,具体见代码..</p><p>package com.main;</p><p>
  9. </p><p>import org.testng.ITestContext;</p><p>import org.testng.ITestListener;</p><p>import org.testng.ITestResult;</p><p>
  10. </p><p>public class Listeners implements ITestListener {</p><p>
  11. </p><p>    @Override</p><p>    public void onTestStart(ITestResult result) {</p><p>        // do something when a test just start</p><p>
  12. </p><p>    }</p><p>
  13. </p><p>    @Override</p><p>    public void onTestSuccess(ITestResult result) {</p><p>        // do something when a test success</p><p>    }</p><p>
  14. </p><p>    @Override</p><p>    public void onTestFailure(ITestResult result) {</p><p>        // do something when a test fail</p><p>    }</p><p>
  15. </p><p>    @Override</p><p>    public void onTestSkipped(ITestResult result) {</p><p>        // do something when a test is skipped</p><p>    }</p><p>
  16. </p><p>    @Override</p><p>    public void onTestFailedButWithinSuccessPercentage(ITestResult result) {</p><p>        // TODO Auto-generated method stub</p><p>    }</p><p>
  17. </p><p>    @Override</p><p>    public void onStart(ITestContext context) {</p><p>        // TODO Auto-generated method stub</p><p>    }</p><p>
  18. </p><p>    @Override</p><p>    public void onFinish(ITestContext context) {</p><p>        // TODO Auto-generated method stub</p><p>    }</p><p>}</p><p>
  19. </p><p><?xml version="1.0" encoding="UTF-8"?></p><p><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"></p><p><suite name="My Tet Suite"></p><p>  <listeners></p><p>    <listener class-name="com.main.Listeners" /></p><p>  </listeners></p><p>
  20. </p><p>  <parameter name="URL1" value="www.google.com" /></p><p>  <parameter name="URL2" value="www.facebook.com" /></p><p>
  21. </p><p>  <test thread-count="5" name="My Test modul"></p><p>    <packages></p><p>        <package name="com.main"></package></p><p>    </packages></p><p>  </test></p><p></suite></p>
复制代码







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2