我们测试工程师,再做自动化测试的时候,目的就是为了实现机器代替人工,进行繁琐重复的工作,并且通过代码实时保证线上的稳定性,以便能第一时间发现问题,定位问题,解决问题,减小损失.接下来我来简单阐述一下,当遇到错误进行屏幕截图,并且保存图片至本地文件,以便更好地查找问题:
首先:
1.我们封装方法,创建一个Screenshot的方法名称 因为封装方法,所以我们需要提供参数,首先第一个参数就是,androiddriver的参数.
我们做过自动化的同学都知道,在主代码内会有driver的对象,以便来driver.findeve....来查找元素 在调用方法的时候需要将这个driver传入到这个方法内. 第二个参数就是图片的名称,用字符串的形式来接收,string 传进来的图片是什么名称最后生成的就是什么,以便用来更好的查找.
上述是大体创建类以及参数的讲解:接下来我们来在这个类里面编写方法逻辑 通过这段代码,我们就可以生成截图jpg
下面我以代码的形式编写,同时增加备注,这样容易理解:
public static void Screenshot(AndroidDriver driver,String Picturename) throm IOException{
上面就是类的外部.接下来我们首先需要设置一个时间的格式: Timeformat 就是时间格式的对象.
SimpleDateFormat Timeformat = new SimDateFormat("yyy-MM-dd-HH-mm-ss")
接下来我们生成时间戳; 括号内的参数 new Date 是java内部的源码类 不是我们封装的.
String dateString = Timeformat.format(new Date);
生成图片的目录
String dir_name = System.getProperty("user.dir")+"\\异常图片";
由于可能会存在图片的目录被删除的可能,,所以我们先判断目录是否存在, 如果不在的话:
if( !(new File(dir_name ).isDirectory())){
不存在的话就进行创建目录.
new File(dir_name ).mkdir();
}
调用方法捕捉画面;
File Screen = driver.getScreenshotAs(OutputType.FILE);
复制文件到本地目录, 图片的最后存放地址为::
FileUtils.copyFile(screen,new File(dir_name+"\\"+dateString +Picturename+".jpg"));
}
上述就是我们通过报错或者出现不正常情况 调用我们的截图方法 保存到本地.
那么这个是怎么用呢,在我们的主方法里面,有一个方法叫try cache的方法不知道大家有没有用过.try cache 是为了处理异常用的
我们在try里面放入我们被测的代码,在cache里面放入我们的截图方法,当页面异常 就会走cache方法.从而进行截图保存.
-小饼呀