梦幻小丑灯 发表于 2018-6-15 15:37:31

测试框架设计学习笔记

<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>
</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>
</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>
</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;</p><p>      data = "1st-username";</p><p>      data = "1st-password";</p><p>
</p><p>      data = "2nd-username";</p><p>      data = "2nd-password";</p><p>
</p><p>      return data;</p><p>    }</p><p>
</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>
</p><p>Listeners特性,有点像JUnit里的TestWatcher,典型用法就是失败后截图,具体见代码..</p><p>package com.main;</p><p>
</p><p>import org.testng.ITestContext;</p><p>import org.testng.ITestListener;</p><p>import org.testng.ITestResult;</p><p>
</p><p>public class Listeners implements ITestListener {</p><p>
</p><p>    @Override</p><p>    public void onTestStart(ITestResult result) {</p><p>      // do something when a test just start</p><p>
</p><p>    }</p><p>
</p><p>    @Override</p><p>    public void onTestSuccess(ITestResult result) {</p><p>      // do something when a test success</p><p>    }</p><p>
</p><p>    @Override</p><p>    public void onTestFailure(ITestResult result) {</p><p>      // do something when a test fail</p><p>    }</p><p>
</p><p>    @Override</p><p>    public void onTestSkipped(ITestResult result) {</p><p>      // do something when a test is skipped</p><p>    }</p><p>
</p><p>    @Override</p><p>    public void onTestFailedButWithinSuccessPercentage(ITestResult result) {</p><p>      // TODO Auto-generated method stub</p><p>    }</p><p>
</p><p>    @Override</p><p>    public void onStart(ITestContext context) {</p><p>      // TODO Auto-generated method stub</p><p>    }</p><p>
</p><p>    @Override</p><p>    public void onFinish(ITestContext context) {</p><p>      // TODO Auto-generated method stub</p><p>    }</p><p>}</p><p>
</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>
</p><p><parameter name="URL1" value="www.google.com" /></p><p><parameter name="URL2" value="www.facebook.com" /></p><p>
</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>

页: [1]
查看完整版本: 测试框架设计学习笔记