Appium入门自动化测试(6)—— Appium 常用方法的自己动手封装

1123 篇文章 45 订阅
668 篇文章 11 订阅

Appium 常用方法的自己动手封装

前言

阅读此文大概需要5分钟,之后需要自己动手实践。

之前我们已经对Appium的一些常用的API有所了解,在实际测试过程中,大多数自动化测试工程师,尤其是UI自动化测试工程师,遇到更多的问题是Element经常变化和代码复用与维护,有句话叫开发手一抖,auto忙一宿。说的就是Element如果有改变,自动化测试工程师就需要花很多时间和精力维护。而如何能让你的自动化测试体系更容易维护,就需要一个科学合理的测试框架体系。今天我们先不谈框架体系,先去做一些框架基础,先去做基本方法的封装。我希望我能给你带来一些思路。

在测试过程中,一定会遇到很多的手势操作,比如向上下左右滑动屏幕,虽然Appium给出一个swipe方法,但这个方法比较原始,对于实际测试中需要进一步优化,这样我们就可以抽象出几个swipe的方法,专门针对上下左右滑动屏幕。首先获取屏幕的尺寸,可以把手机屏幕当作一个二维坐标体系。如下图:

 

swipe方法封装

根据之前我们了解的swipe的用法,封装为上下左右滑动的这几个方法。

 /**

     * This Method for swipe up

     * 

     * @author Young

     * @param driver

     * @param during

     */

    public void swipeToUp(AndroidDriver<MobileElement> driver, int during)

    {

        int width = driver.manage().window().getSize().width;

        int height = driver.manage().window().getSize().height;

        driver.swipe(width / 2, height * 5 / 8, width / 2, height / 8, during);

    }



    /**

     * This Method for swipe down

     * 

     * @author Young

     * @param driver

     * @param during

     */

    public void swipeToDown(AndroidDriver<MobileElement> driver, int during)

    {

        int width = driver.manage().window().getSize().width;

        int height = driver.manage().window().getSize().height;

        driver.swipe(width / 2, height / 4, width / 2, height * 3 / 4, during);

    }

 /**

     * This Method for swipe Left

     * 

     * @author Young

     * @param driver

     * @param during

     */

    public void swipeToLeft(AndroidDriver<?> driver, int during)

    {

        int width = driver.manage().window().getSize().width;

        int height = driver.manage().window().getSize().height;

        driver.swipe(width * 3 / 4, height / 2, width / 4, height / 2, during);

    }



    /**

     * This Method for swipe Right

     * 

     * @author Young

     * @param driver

     * @param during

     */

    public void swipeToRight(AndroidDriver<MobileElement> driver, int during)

    {

        int width = driver.manage().window().getSize().width;

        int height = driver.manage().window().getSize().height;

        driver.swipe(width / 4, height / 2, width * 3 / 4, height / 2, during);

        // wait for page loading

    }

甚至,你还可以把swipe方法封装为查找元素出现,比如有N个页面滑动到最后一个,查找某个页面的元素。

我们也可以封装一个截屏的方法,将自动化过程中需要的关键步骤截图,或者是失败截图。

截图方法,封装TakeScreenshot,保存到指定路径

 /**

     * 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

                                                             // folder

        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");

        }

    }

今天有事就更新到这里,明天将继续更新。敬请期待!


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值