zoukankan      html  css  js  c++  java
  • Appium自动化中截图的问题

    在用Appium做UI自动化过程中,大家会发现测试报告很重要,而在测试报告中截图很重要。

    因为很多公司都是用Jenkins作为持续集成工具,所以要让执行自动化测试的人看明白自动化在跑什么,哪里失败了,关键节点都需要截图。

    怎么做呢,目前项目中是这么实现的:

    1.实现截图功能类:

    	public static String screenShot(ShipperAndroidEmulator ae) {
    		String dir = "screenshot"; // TODO
    		String time = new SimpleDateFormat("yyyyMMdd-HHmmss").format(new Date());
    		String screenShotPath = dir + File.separator + time + ".png";
    
    		AndroidDriver augmentedDriver = null;
    		augmentedDriver = ae.getAndroid();
    
    
    		try {
    			File sourceFile = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
    			FileUtils.copyFile(sourceFile, new File(screenShotPath));
    		} catch (Exception e) {
    			e.printStackTrace();
    			return "Failed to screenshot";
    		}
    
    		return screenShotPath.replace("\", "/");
    	}
    

    2.用screenShot实现错误处理类:

    	private void handleFailure(String notice) {
    		String png = LogTools.screenShot(this);
    		String log = notice + " >> capture screenshot at " + png;
    		logger.error(log);
    		if (GlobalSettings.baseStorageUrl.lastIndexOf("/") == GlobalSettings.baseStorageUrl.length()) {
    			GlobalSettings.baseStorageUrl = GlobalSettings.baseStorageUrl.substring(0, GlobalSettings.baseStorageUrl.length() - 1);
    		}
    		Reporter.log(log + "<br/><img src="" + GlobalSettings.baseStorageUrl + "/" + png + "" />");
    		Assert.fail(log);
    	}
    

    3.对所有appium界面操作类进行处理:

    	public void click(By by) {
    
    		expectElementExistOrNot(true, by, timeout);
    		try{
    			clickTheClickable(by,System.currentTimeMillis(),2500);
    			handleSuccess("Succeed to click " + by);
    		}catch(Exception e){
    			e.printStackTrace();
    			handleFailure("Failed to click " + by);
    		}
    		logger.info("Clicked " + by);
    	}
    

    测试报告如下:

     

    有截图

  • 相关阅读:
    四色定理+dfs(poj 1129)
    栈的应用:表达式求值运算
    多重背包 (poj 1014)
    poj 1080 (LCS变形)
    KMP算法(快速模式匹配)
    贪心+构造( Codeforces Round #344 (Div. 2))
    JavaScript Ajax
    Canvas绘图
    TCP/IP协议
    移动端click事件延迟300ms到底是怎么回事,该如何解决?
  • 原文地址:https://www.cnblogs.com/appstest/p/5088974.html
Copyright © 2011-2022 走看看