概述

前面的3篇博文分别对lazyAndroid的框架简介、元素抓取和核心API进行了说明,本文将基于框架给出的测试模板工程,详细阐述下使用该框架进行安卓UI自动化测试的步骤。

模板工程

先来看一下模板工程中包含哪些东西:

图中标注说明:

1是bean层,是lazy-uiautomaterviewer自动生成的java代码,是基于目标控件xpath自动定义的变量。

2是page层,是基于bean层代码封装的基本操作,一般以页面为单位。

3是test层代码,是基于page层操作写的测试case。

4是待测试的目标apk。

5是测试失败的截图,主要是方便排查case挂掉的原因。



6是工程的pom文件,主要是不要忘了引入lazyAndroid的jar包。

7是一个配置文件,里面有3个参数,含义看看注释就能明白了。

使用LazyAndroid进行测试的步骤

使用LazyAndroid框架进行安卓UI自动化测试,一般需要分一下几步走:

1.建立maven+testng的测试工程(非强制要求),导入lazyAndroid的jar包(需要事先将jar包deploy到某个maven仓库)。

2.确定测试功能需要覆盖哪些页面和控件,使用lazy-uiautomaterviewer导出目标页面(控件)对应的java文件。具体方法请参考:http://blog.csdn.net/kaka1121/article/details/53301517

例如,测试京东钱包的转账功能需要导出如下页面的java文件:

3.开始书写page层代码,封装基本操作,例如登陆、转账、付款等。

例如,登陆操作:

    /**
     * 登陆操作
     */
    public void login() {
        logger.info("login by jdpay account!");
        todayBean.textViewToday.expectElementExistOrNot(true);
        todayBean.textViewMine.expectElementExistOrNot(true);
        todayBean.textViewMine.click();
        lazyDriver.handleFailure("screen test:");
        mineBean.login.expectElementExistOrNot(true);
        mineBean.login.click();
        loginBean.jdpayAccount.expectElementExistOrNot(true);
        loginBean.jdpayAccount.click();
        loginBean.editTextPhone.input("13034631475");
        loginBean.nextStep.click();
        loginBean.editjdPayTextPwd.expectElementExistOrNot(true);
        loginBean.editjdPayTextPwd.input("haha123");
        loginBean.jdpayLogin.click();
        lazyDriver.swipeToLeft();
    }

这里需要注意下,page层的构造函数需要使用LazyDriver实例化该page层用到的各个bean层的类:

    /**
     * 构造函数
     * @param aLazyDriver
     */
    public DemoPage(LazyDriver aLazyDriver) {
        lazyDriver = aLazyDriver;
        driver = lazyDriver.getDriver();
        todayBean = new TodayBean(driver);
        new LifeBean(driver);
        lifeBean2 = new LifeBean2(driver);
        mineBean = new MineBean(driver);
        loginBean = new LoginBean(driver);
    }

4.调用page的方法,完成test层测试case的书写。例如登陆功能测试:

    /**
     * 登陆测试
     */
    @Test
    public void loginTest() {
        demoPage.login();
    }

5.启动Appium,run as “testNG test” 运行、调试测试代码(别忘了把手机连上电脑)。大家也可以使用junit等测试框架,或者直接在main函数中练练手。(Appium的安装和启动方法,比较简单,大家自行百度)

大家可以下载模板工程练练手,熟悉后就可以开始自己的app测试了。模板工程下载地址:http://download.csdn.net/detail/kaka1121/9685943,如果使用过程有任何问题,欢迎大家留言

APP自动化框架LazyAndroid使用手册(4)--测试模板工程详解的更多相关文章

  1. APP自动化框架LazyAndroid使用手册(2)--元素自动抓取

    作者:黄书力 概述 前面的一篇博文简要介绍了安卓自动化测试框架LazyAndroid的组成结构和基本功能,本文将详细描述此框架中元素自动抓取工具lazy-uiautomaterviewer的使用方法. ...

  2. APP自动化框架LazyAndroid使用手册(1)--框架简介

    作者:cryanimal  QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试 ...

  3. APP自动化框架LazyAndroid使用手册(3)--核心API介绍

    作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...

  4. Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)

    概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...

  5. App 自动化框架设计思路

    最近在整理和学习Appium+Java 自动化框架,对APP自动化框架的部分设想参考了一些文章,先进行整理下: 框架的思路一: 思考引入:https://www.cnblogs.com/yunfeio ...

  6. 《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)

    1.简介 从这一篇开始介绍和分享Java+Selenium+POM的简单自动化测试框架设计.第一个设计点,就是支持跨浏览器测试. 宏哥自己认为的支持跨浏览器测试就是:同一个测试用例,支持用不同浏览器去 ...

  7. Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)

    上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即Be ...

  8. iOS-申请测试证书详解(多图原创)

    申请测试证书详解 前言 App开发和发布过程中证书基础知识:1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certifi ...

  9. saltstack自动化运维系列⑤之saltstack的配置管理详解

    saltstack自动化运维系列⑤之saltstack的配置管理详解 配置管理初始化: a.服务端配置vim /etc/salt/master file_roots: base: - /srv/sal ...

随机推荐

  1. [转]Python多进程并发操作中进程池Pool的应用

    Pool类 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间.如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十 ...

  2. springboot--mybatis--pagehelper分页整合不起作用

    今天配置pagehelper,在pom文件中都使用的最新版本jar包,步骤都没问题,之后才发现是包的问题. 有问题:分页配置不起作用 <dependency> <groupId> ...

  3. dropzone.js使用实践

    官网地址:http://www.dropzonejs.com/ 一,它是什么: DropzoneJS is an open source library that provides drag'n'dr ...

  4. [Ubuntu 16.04 LTS ]屏幕分辨率 Unknown display

    新装完Ubuntu 16.04 LTS 通过System settings-->Displays 设置屏幕分辨率 显示"Unknown display",选择后无反应,并且屏 ...

  5. ConcurrentHashMap源码分析(1.8)

    0.说明 1.ConcurrentHashMap跟HashMap,HashTable的对比 2.ConcurrentHashMap原理概览 3.ConcurrentHashMap几个重要概念 4.Co ...

  6. 【分享】几篇关于Repository 相关的讨论、提问、文章

    一.引入 最近在了解DDD,对于里面Repository 有点疑问和关注.闲来无事,去找了一些文章,来补补.在这里分享出来给大家.文章大多数都是英文的,见谅哈. 二.推荐列表 2.1 Filters ...

  7. [Luogu 3389]【模板】高斯消元法

    Description 给定一个线性方程组,对其求解 Input 第一行,一个正整数 n 第二至 n+1 行,每行 n+1 个整数,为a1,a2⋯an和 b,代表一组方程.1​​,a​2​​⋯a​n​ ...

  8. bzoj1293[SCOI2009]生日礼物 尺取法

    1293: [SCOI2009]生日礼物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2838  Solved: 1547[Submit][Stat ...

  9. AR934X built-in switch链路检测问题及处理方法

    1 问题 在使用QSDK平台配合QCA9531方案时,碰到过2个实在无解的问题,其一:将有线口连接到其它傻瓜交换机上,然后通过无线或另一个有线口登录的设备上,执行ifconfig ethx down, ...

  10. 使用PL/SQL Developer连接远程DB(本机不安装Oracle客户端)

    本文内容亲测可行环境:    服务端:centos6.7 ,oracle 11g r2 ,动态注册,监听端口号:1521    用户端:win7 ,没有安装ORACLE及其客户端 准备文件:plsql ...