qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          關(guān)于使用TestNG的retry問題

          總體是利用TestNG里面的IRetryAnalyzer、TestListenerAdapter接口來實現(xiàn)相關(guān)問題
            1、定義一個自己的retryanalyzer
          import org.testng.ITestResult;
          import org.testng.util.RetryAnalyzerCount;
          //這里集成自抽象類RetryAnalyzerCount,該抽象類實現(xiàn)了IRetryAnalyzer
          public class TestRetryAnalyzer extends RetryAnalyzerCount{
          public TestRetryAnalyzer(){
          setCount(1);
          }
          @Override
          public boolean retryMethod(ITestResult arg0) {
          // TODO Auto-generated method stub
          return true;
          }
          }
            2、定義自己的監(jiān)聽器,集成自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)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

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

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 潢川县| 乌鲁木齐市| 本溪| 北安市| 外汇| 怀宁县| 杂多县| 客服| 定西市| 璧山县| 清新县| 礼泉县| 英德市| 武鸣县| 黎川县| 芜湖市| 朝阳区| 綦江县| 鲁山县| 郎溪县| 久治县| 济宁市| 密山市| 白河县| 嘉兴市| 平武县| 林甸县| 大新县| 读书| 四会市| 社会| 枞阳县| 汶川县| 黔西| 湘阴县| 大埔县| 佛冈县| 隆回县| 扎赉特旗| 无锡市| 逊克县|