<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

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

    TestNG開源插件Arrow介紹

    TestNG是一個設計用來簡化廣泛測試需求的 測試框架,旨在涵蓋所有類型的測試,包括單元測試功能測試、端到端集成測試等,而我們在基于TestNG搭建自動化測試框架,編寫測試用例時,為保證測 試用例的穩定性,需要增加測試用例失敗自動重跑功能,這便促成了Arrow的誕生。 Arrow是基于TestNG監聽器擴展的插件,如果把TestNG比作一把強勁的弓,那么插件就是配合弓使用的箭,這也是Arrow命名的由來。
      當前Arrow插件已開源,可通過以下地址訪問:https://github.com/NetEase/arrow
      一、Arrow功能介紹
      1、  支持通過簡單配置實現失敗的測試用例自動重跑
      2、  支持Html結果報告中展示測試用例運行次數
      3、  支持自動解析源代碼中的@author標簽,在Html結果報告中展示(失敗用例可以方便查找維護者)
      4、  修復TestNG原生Html報告中錨點跳轉不正確的Bug
      俗話說,眼見為實耳聽為虛,下面就帶大家看看實際效果圖吧!
      二、Arrow使用效果
      使用Arrow插件運行基于TestNG的測試用例后會生成我們自定義的報告power-emailable-report.html,下圖1顯示 在測試用例中書寫@author標簽,使用arrow執行完用例后生成如圖2的結果報告,報告中會自動讀取authors信息以及running counts運行次數,通過authors信息方便自動獲取到該用例的維護者,通過running counts方便知道當前用例是否失敗重跑。
      圖1
      圖2
      三、如何使用Arrow
      使用Arrow無需修改原有的測試代碼
      1、  首先你需要有一套TestNG編寫的測試用例
      2、  測試工程中需要testng.jar(核心不能忘!),log4j.jar(用于日志的輸出)以及我們提供的arrow.jar
      3、  測試工程根目錄下新建config.properties文件,同時配置如下參數
      retrycount=1 #定義重跑次數,不是必填項, 默認值是0,即失敗不重跑
      sourcecodedir=src #定義源代碼路徑,不是必填項, 默認值是src
      sourcecodeencoding=UTF-8 #定義源代碼編碼,不是必填項,默認值是utf-8
     4、  在build.xml文件中加入監聽器,配置如下,配置完成后通過ant運行TestNG測試用例后可以在生成的Html結果報告中查看效果
    <target name="testng">
    <mkdir dir="test-output" />
    <testng outputDir="test-output"
    haltonfailure="false" listeners="com.netease.qa.testng.PowerEmailableReporter,
    com.netease.qa.testng.RetryListener, com.netease.qa.testng.TestResultListener">
    <xmlfileset dir="." includes="testng.xml" />
    </testng>
    </target>
      5、  如果您不習慣4的做法,可以在testng.xml中加入如下的監聽器,配置完成后右鍵testng.xml文件運行測試用例即可
    <listeners>
    <listener class-name="com.netease.qa.testng.TestResultListener" />
    <listener class-name="com.netease.qa.testng.RetryListener" />
    <listener class-name="com.netease.qa.testng.PowerEmailableReporter" />
    </listeners>
      四、Arrow擴展-失敗用例自動截圖
      由于截圖功能在不同的測試框架上API會不同,所以當前Arrow中沒有把這個功能集成進來,但是如果你需要該功能也可以很方便的進行擴展。
      1、 在這里下載Arrow的源代碼
      2、 修改TestResultListener類,在onTestSkipped以及onTestFailure方法中加入如下代碼
    @Override
    public void onTestFailure(ITestResult tr) {
    super.onTestFailure(tr);
    saveScreenShot(tr);
    }
    @Override
    public void onTestSkipped(ITestResult tr) {
    super.onTestSkipped(tr);
    saveScreenShot(tr);
    }
    private void saveScreenShot(ITestResult tr) {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
    String mDateTime = formatter.format(new Date());
    String fileName = mDateTime + "_" + tr.getName();
    String filePath = "";
    try {
    //這里可以調用不同框架的截圖功能
    File screenshot = ((TakesScreenshor)webdriver).getScreenshotas(OutputType.FILE);
    filePath = “screenshot/” + filename + “.jpg”
    File destFile = new File(filePath);
    FileUtils.copyFile(screenshot, destFile);
    } catch (Exception e) {
    filePath = fileName + " firefox tackScreentshot Failure:" + e.getMessage();
    logger.error(filePath);
    }
    if (!"".equals(filePath)) {
    Reporter.setCurrentTestResult(tr);
    Reporter.log(filePath);
    //把截圖寫入到Html報告中方便查看
    Reporter.log("<img src=\"../" + filePath + "\"/>");
    }
    }
      3、修改完成后重新運行測試用例,即可實現失敗自動截圖,同時會把截圖寫入到Html結果報告中,方便定位問題,如圖3。
      圖3
      最后,歡迎大家使用以及共同改進Arrow,方便大家基于TestNG的測試工作。

    posted on 2014-03-20 11:24 順其自然EVO 閱讀(2413) 評論(4)  編輯  收藏 所屬分類: 測試學習專欄

    評論

    # re: TestNG開源插件Arrow介紹 2014-04-23 16:36 11

    ((TakesScreenshor)webdriver)

    這個webdriver 你是怎么處理的啊?我的總是失敗。  回復  更多評論   

    # re: TestNG開源插件Arrow介紹 2014-04-23 17:37 11

    有email或QQ沒?
    上面的問題麻煩幫解答下唄。  回復  更多評論   

    # re: TestNG開源插件Arrow介紹 2014-04-24 16:09 11

    問題已解決。需要傳入driver對象。  回復  更多評論   

    # re: TestNG開源插件Arrow介紹 2014-05-14 17:34 22

    怎么傳入webdriver呢
    @11  回復  更多評論   

    <2014年3月>
    2324252627281
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费理论片51人人看电影| 久久青草精品38国产免费| 四虎影院在线免费播放| 亚洲人成片在线观看| h在线观看视频免费网站| 久久久久亚洲AV片无码下载蜜桃| 四虎国产精品免费永久在线| 亚洲熟妇av一区二区三区| 99re6在线精品免费观看| 亚洲第一极品精品无码久久| 无码囯产精品一区二区免费 | 香港特级三A毛片免费观看| 国产成人在线观看免费网站| 美女又黄又免费的视频| 亚洲综合最新无码专区| 91成人免费观看在线观看| 无码欧精品亚洲日韩一区| 亚洲一区二区三区免费在线观看| 亚洲欧洲国产精品久久| 成人最新午夜免费视频| 美女羞羞免费视频网站| 久久精品亚洲男人的天堂| 无码A级毛片免费视频内谢| 亚洲毛片基地4455ww| 国产又长又粗又爽免费视频| A国产一区二区免费入口| 久久亚洲精品中文字幕| 在线天堂免费观看.WWW| 国产亚洲精品91| 亚洲国产精品VA在线观看麻豆| 18级成人毛片免费观看| 亚洲精华液一二三产区| 国产L精品国产亚洲区久久| 91香蕉国产线观看免费全集| 亚洲国产精品成人综合色在线| 亚洲国产精品自产在线播放| 亚欧免费无码aⅴ在线观看| 亚洲精品无码成人片久久不卡| 在线亚洲精品自拍| 免费观看成人毛片a片2008| 精品人妻系列无码人妻免费视频|