qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          關于使用TestNG的retry問題

          總體是利用TestNG里面的IRetryAnalyzer、TestListenerAdapter接口來實現相關問題
            1、定義一個自己的retryanalyzer
          import org.testng.ITestResult;
          import org.testng.util.RetryAnalyzerCount;
          //這里集成自抽象類RetryAnalyzerCount,該抽象類實現了IRetryAnalyzer
          public class TestRetryAnalyzer extends RetryAnalyzerCount{
          public TestRetryAnalyzer(){
          setCount(1);
          }
          @Override
          public boolean retryMethod(ITestResult arg0) {
          // TODO Auto-generated method stub
          return true;
          }
          }
            2、定義自己的監聽器,集成自TestListenerAdapter
          import java.util.ArrayList;
          import java.util.Collections;
          import java.util.List;
          import org.testng.IResultMap;
          import org.testng.ITestContext;
          import org.testng.ITestResult;
          import org.testng.Reporter;
          import org.testng.TestListenerAdapter;
          import org.testng.ITestNGMethod;
          import org.testng.collections.Lists;
          import org.testng.collections.Objects;
          public class RetryTestListener extends TestListenerAdapter {
          private List<ITestNGMethod> m_allTestMethods =
          Collections.synchronizedList(Lists.<ITestNGMethod>newArrayList());
          private List<ITestResult> m_passedTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList());
          private List<ITestResult> m_failedTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList());
          private List<ITestResult> m_skippedTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList());
          private List<ITestResult> m_failedButWSPerTests = Collections.synchronizedList(Lists.<ITestResult>newArrayList());
          private List<ITestContext> m_testContexts= Collections.synchronizedList(new ArrayList<ITestContext>());
          private List<ITestResult> m_failedConfs= Collections.synchronizedList(Lists.<ITestResult>newArrayList());
          private List<ITestResult> m_skippedConfs= Collections.synchronizedList(Lists.<ITestResult>newArrayList());
          private List<ITestResult> m_passedConfs= Collections.synchronizedList(Lists.<ITestResult>newArrayList());
          public synchronized void onTestFailure(ITestResult arg0) {
          m_allTestMethods.add(arg0.getMethod());
          m_failedTests.add(arg0);
          }
          @Override
          public void onFinish(ITestContext context) {
          for(int i=0;i<context.getAllTestMethods().length;i++){
          System.out.println("~~~~~~~~~~"+context.getAllTestMethods()[i].getCurrentInvocationCount());
          if(context.getAllTestMethods()[i].getCurrentInvocationCount()==2){
          System.out.println("~~~~~~~~~~~~~~~~~"+context.getAllTestMethods()[i].getParameterInvocationCount());
          System.out.println(context.getAllTestMethods()[i].ignoreMissingDependencies());
          if
          (context.getFailedTests().getResults(context.getAllTestMethods()[i]).size()
          == 2 ||
          context.getPassedTests().getResults(context.getAllTestMethods()[i]).size()
          == 1){
          context.getFailedTests().removeResult(context.getAllTestMethods()[i]);
          }
          }
          }
          }
          ...
          }

          posted on 2014-11-04 10:22 順其自然EVO 閱讀(790) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洱源县| 滁州市| 杨浦区| 江华| 安丘市| 徐汇区| 绥宁县| 房山区| 金华市| 临湘市| 吉隆县| 宝丰县| 陆丰市| 姚安县| 黄骅市| 三门县| 牡丹江市| 马山县| 上高县| 平远县| 海林市| 武乡县| 白玉县| 泌阳县| 宿州市| 龙岩市| 苗栗市| 清丰县| 门源| 洛阳市| 个旧市| 辽中县| 炉霍县| 隆林| 囊谦县| 鲁山县| 贡觉县| 洮南市| 大新县| 嵩明县| 平罗县|