亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 >
WebDriver之測試失敗自動截圖
作者:網絡轉載 發布時間:[ 2013/4/9 17:09:56 ] 推薦標簽:

  然后,我們在加一個封裝類, 將截圖方法放進去。

  WebDriverWrapper.screenShot :

  /**

  * Function to take the screen shot and save it to the classpath dir.

  * Usually, you will find the png file under the project root.

  *

  * @param driver

  * Webdriver instance

  * @param desc

  * The description of the png

  */

  public static void screenShot(WebDriver driver, String desc) {

  Date currentTime = new Date();

  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");

  String dateString = formatter.format(currentTime);

  File scrFile = ((TakesScreenshot) driver)

  .getScreenshotAs(OutputType.FILE);

  try {

  desc = desc.trim().equals("") ? "" : "-" + desc.trim();

  File screenshot = new File("screenshot" + File.separator

  + dateString + desc + ".png");

  FileUtils.copyFile(scrFile, screenshot);

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  下面,是添加 Junit 的 TestRule:

  import org.junit.rules.TestRule;

  import org.junit.runner.Description;

  import org.junit.runners.model.Statement;

  import org.openqa.selenium.WebDriver;

  public class TakeScreenshotOnFailureRule implements TestRule {

  private final WebDriver driver;

  public TakeScreenshotOnFailureRule(WebDriver driver) {

  this.driver = driver;

  }

  @Override

  public Statement apply(final Statement base, Description description) {

  return new Statement() {

  @Override

  public void evaluate() throws Throwable {

  try {

  base.evaluate();

  }

  catch (Throwable throwable) {

  WebDriverWrapper.screenShot(driver, "assert-fail");

  throw throwable;

  }

  }

  };

  }

  }

  代碼很簡單,在拋出 evalate 方法的錯誤之前,截圖。

  然后是使用這個 TestRule, 很簡單,只要在你的 測試用例里面加入:

  public class MyTest {

  ...

  @Rule

  public TestRule myScreenshot = new TakeScreenshotOnFailureRule(driver);

  ...

  @Test

  public void test1() {}

  @Test

  public void test2() {}

  ...

  }

  即可。關于 Junit 的 Rule 請自行 google!

  兩則的比較

  總得來說,兩種方法都很方便, 也很有效果, 基本都能截圖成功。

  不同之處在于,

  RemoteWebDriver 監聽器是在 RemoteWebDriver 拋出異常的時候截圖。

  TestRule 是在 assert 失敗的時候截圖。

  我在項目中早是用第一種方法,后來改用第二種,主要是因為,在自定義的監聽器里, 它遇到所有的異常都會截圖,這個時候,如果你用了 condition wait 一個 Ajax 的元素, 那會很悲劇,你會發現在你的目錄下面有無數的截圖。當初我沒有找到解決方法,期待有人提出。

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日韩大片观看网址 | 欧美色噜噜 | videos欧美黑白爆交 | 欧美一区二区视频高清转区 | 欧美久在线观看在线观看 | 欧美操操 | www.天堂网.com | 亚洲高清中文字幕一区二区三区 | 欧美第一页在线 | 好好的日视频www | 黄色短视频在线免费观看 | 午夜精品一区 | 又黄又爽的视频免费看 | 成人免费在线观看 | 超级碰人人 | 一级大片免费 | 日本h片在线 | 国产年成美女网站视频免费看 | 亚洲一区中文字幕在线观看 | 国产精品2020 | 日韩欧美二区 | 男人和女人日皮的视频 | 在线看成人片 | 99精品视频在线播放2 | 天天综合在线视频 | 狠狠看| 最近中文字幕2019免费版日本 | 性中国xxx | 日韩 视频在线播放 | 色综合天天综合网国产成人网 | 国产成人夜间影院在线观看 | 久久久五月天 | 噜噜噜色 | 精品日韩在线视频 | 亚洲视频在线精品 | 欧美日韩国产成人综合在线影院 | 国产一级a毛片高清 | 特级黄色免费片 | 18女人水真多免费高清毛片 | 国产成人精品永久免费视频 | 成年男人永久免费看片 |