今天
我们继续研究Appium,今天我们要实现的是截图功能。自动化框架中的截图功能是一个很方便很实用的功能,用过QTP的朋友一定会注意到,从最简单的录制回放中,可以看到QTP对关键点的的截图,能够让查看测试报告的人一目了然的看到你测试执行的情况,也是做对比和验证的一个依据。
那么如何实现Appium截图呢?
其实Appium的截图功能是借助于TakesScreenshot接口
截图方法
AppiumDriver继承Selenium的RemoteWebDriver,因此直接使用TakeScreenshot接口(⚠️shot是小写字母开头)。那么怎么用呢?
首先通过生成截图:
File screenShort=driver.getScreenshotAs(OutputType.FILE)
然后把截图保存到指定路径:
FileUtils.copyFile(screenShot, new File(newPath));
我这里封装一个截图方法:
/**
* This Method create for take screenshot
*
* @author Young
* @param drivername
* @param filename
*/
public static void snapshot(TakesScreenshot drivername, String filename) {
// this method will take screen shot ,require two parameters ,one is
// driver name, another is file name
String currentPath = System.getProperty("user.dir"); // get current work
File scrFile = drivername.getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy
// somewhere
try {
System.out.println("save snapshot path is:" + currentPath + "/"
+ filename);
FileUtils
.copyFile(scrFile, new File(currentPath + "\\" + filename));
} catch (IOException e) {
System.out.println("Can't save screenshot");
e.printStackTrace();
} finally {
System.out.println("screen shot finished, it's in " + currentPath
+ " folder");
}
}
而这种方式截图需要主动调用,不能够在测试失败自动截图。大多数情况我们的需求往往是失败的时候实现自动截图,知道挂在什么地方,哪个页面。那么如何实现失败截图呢?
原理很简单,前提是你得使用testng,override一下TestListenerAdapter,在onTestFailure方法中添加截图方法。今天的学习到此结束,码个资料送给你
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。