APP自动化框架LazyAndroid使用手册(4)--测试模板工程详解

概述

前面的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,如果使用过程有任何问题,欢迎大家留言

时间: 2024-10-09 09:15:01

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

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

作者:cryanimal  QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试的目的. 其一般过程如下图所示: APP自动化常用工具简介 Monkey Monkey 是Android SDK 自带的自动化测试工具,可以运行在模拟器里或实际设备中,它向系统发送随机的用户事件流,如按键输入.触摸屏输入.手势输入.Sensor 事件等, 实现对正在开发的应用程序进行表现或者压力测试

java开源框架SpringSide3多数据源配置的方法详解

原创整理不易,转载请注明出处:java开源框架SpringSide3多数据源配置的方法详解 代码下载地址:http://www.zuidaima.com/share/1781579130801152.htm 在SpringSide 3社区中,不断有人提出多数据源配置的问题,但是时至今日却一直没有一个完美的答案.经过一个星期的折腾,我总算搞清楚了在SpringSide 3中配置多数据源的各种困难并加以解决,在这里,特地把我配置SpringSide 3项目中多数据源的过程写出来,与大家分享. 我使用

关于Linux的字符测试的详解和相关bash脚本的练习

关于Linux的字符测试的详解和相关bash脚本的练习 一.字符测试选项         == : 测试两个字符串是否相等,相等为真,不等为假.         != : 测试两个字符串是否不等,不等为真,相等为假.         -n string : 测试指定的字符串是否为空,空为真,不空为假.         -z string :测试指定的字符串是否为不空,不空为真,空为假. 二. 完成下面的bash脚本练习         练习:写一个脚本 传递一个参数(单字符就行)给脚本,如参数为

webservciescxf框架之客户端与服务端实例详解

webservciescxf框架之客户端与服务端实例详解 可以关注我之前发的文章,那是采用jdk发布服务并且使用wsimpor来生成客户端的. 但本文采用的是soap1.2协议,而wsimport仅对soap1.1协议有效,所以,本文采用的是 cxf框架提供的wsdl2java 来生成客户端,如下: wsdl2java -d . http://127.0.0.1/framework?wsdl 另外,需要强调的是wsdl2java工具(axis好像也提供了)既支持soap1.1协议,也支持soap

Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解

说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容. 广泛应用在包括了用户登入.数字签名.数据传输等多个场合.今天我把常见的加密算法全部整理在这里,供大家学习参考. 首先,大家要知道加密算法能干什么,利用加密算法来对数据通信的过程进行加密传输是一种最常见的安全手段.利用该手段能够达到一下三个目的: 1.数据保密性,防止用户数据被窃取或泄露: 2.数据完整性,防止用户传输的数据被篡改: 3.通信双方身份确认,确保数据来源合法: 常见

Android命令Monkey压力测试,详解

一.Monkey 是什么?Monkey 就是SDK中附带的一个工具. 二.Monkey 测试的目的?:该工具用于进行压力测试. 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题. 三.Monkey 测试的特点?Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性. 四.Monkey 命令详解 1).标准的monkey 命令[adb shell] monkey [options] <eventcount> , 例如:adb shell monkey -

Apache之ab测试工具详解

ab是apachebench命令的缩写. ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx.lighthttp.tomcat.IIS等其它Web服务器的压力. ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存.但却会给目标服务器造成巨大的负载,其原理类似CC攻击.自己测试使用也需要注意,否则一次上太多的负载.可能造成目标服务器资源耗完

Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

注意! laravel/homestead box项目地址已经不再是原来的 https://atlas.hashicorp.com/laravel/boxes/homestead 而已经变更成 https://app.vagrantup.com/laravel/boxes/homestead 如果是刚刚接触Laravel的朋友,请直接按文中步骤操作.需要更新及重装的朋友们请注意使用第二个地址来进行文中操作. 虽然我通常习惯在Linux环境下工作,但对于一个从小就接触Windows的人来说,能够在

分享《深度学习与计算机视觉算法原理框架应用》《大数据架构详解从数据获取到深度学习》PDF数据集

下载:https://pan.baidu.com/s/12-s95JrHek82tLRk3UQO_w 更多资料分享:http://blog.51cto.com/3215120 <深度学习与计算机视觉 算法原理.框架应用>PDF,带书签,347页.<大数据架构详解:从数据获取到深度学习>PDF,带书签,373页.配套源代码. <深度学习与计算机视觉 算法原理.框架应用>全书共13章,分为2篇,第1篇基础知识,第2篇实例精讲.用通俗易懂的文字表达公式背后的原理,实例部分提供