java+appium的报错-截图功能

我们测试工程师,再做自动化测试的时候,目的就是为了实现机器代替人工,进行繁琐重复的工作,并且通过代码实时保证线上的稳定性,以便能第一时间发现问题,定位问题,解决问题,减小损失.接下来我来简单阐述一下,当遇到错误进行屏幕截图,并且保存图片至本地文件,以便更好地查找问题:

首先:

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方法.从而进行截图保存.

                                                                                                                                                                      -小饼呀

 

你可能感兴趣的:(java+appium的报错-截图功能)