美文网首页
Android自动化(功能)测试方法简介

Android自动化(功能)测试方法简介

作者: 冰雪之涙 | 来源:发表于2017-07-27 10:32 被阅读0次

    1. 单元测试

    单元测试是单一实体(类或者方法)的功能性测试,检查程序是否按照预期结果正常运行,及时发现代码中的逻辑错误,以保证应用系统在迭代开发中的正确性。

    1.1 JUnit

    JUnitxUnit测试框架下Java语言的单元测试框架。同时JUnit是很常用的白盒测试的一种。

    • 优点
    1. 白盒测试,测试人员可以根据源代码,编写项目所有的接口或者方法的单元测试用例;
    2. 自动化测试,并判断输出执行结果,不需要人为的干预;
    3. 容易集成在构建过程中,及时发现问题
    4. 速度快,支持测试覆盖率等代码质量检测工具
    • 缺点
    1. 只支持纯Java代码,测试对象中不能包含Android Framework相关代码

    1.2 Espresso

    Espresso是Google正对Android UI提供一种单元测试方法,属于白盒测试,需要开发人员或者熟悉项目源代码的测试人员编写单元测试用例。它的特点是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。

    Espresso测试对象是Activity,所以其测试用例步骤主要如下:

    1. 查找元素:找到UI上测试的元素位置,比如找到一个按钮
    2. 执行操作:给某个元素执行一个动作,比如触发按钮的点击事件
    3. 检查结果:判断做出的动作是否符合期望,比如按钮点击后,是否符合我的期望

    2. 自动化测试(功能测试)

    2.1 Instrumentation

    早期Google提供的Android自动化测试工具类。通过Instrumentation你可以模拟按键按下、抬起、屏幕点击、滚动等事件。不能跨多个App。

    2.2 UiAutomator

    UiAutomator谷歌在Android4.3推出的UI自动化测试框架,可以模拟人对手机的操作,比如各种点击、长按、滑动、按键等操作动作。可以对整个系统做UI自动化测试,不局限于APP。

    2.3 Robotium

    Robotium是非常著名的Android自动化测试框架,支持native和hybrid两种应用模式,可以非常简单方便的执行Android UI黑盒测试

    主要特点

    1. 支持NativeHybrid应用;
    2. 不仅对单Activity编写测试,还可以自动处理多Activity的应用测试;
    3. 编写测试用例比较简单,相对于Instrumentation来说,测试代码可读性比较好;
    4. 测试用例执行速度比较快,可以与Maven、Gradle以及Ant更好的结合,可以支持持续集成的测试;
    5. 提供Robotium Recorder(收费)测试用例的脚本录制,可以方便快速地编写测试用例;
    6. Robotium主要缺点不能跨App。

    2.4 Appium

    Appium封装了标准Selenium客户端类库,不但支持IOS平台和Android平台的navtive应用、web应用和混合应用,还支持Window,Mac平台

    主要特点:

    1. 支持Android、iOS、Firefox OS:IOS部分是封装了UIAutomation;Android 4.3以上是用UiAutomator,Android 2.3 ~ 4.2用的是Instrumentation;
    2. 跨App,支持Native AppHybird AppWeb App;
    3. Appium Server是使用Node.js开发,通过NPM在MacOSWindows或者Linux系统上安装部署;
    4. 支持很多语言来编写测试脚本,JavaJavascriptPHPPythonC#Ruby等主流语言;
    5. 扩展了WebDriver,封装Selenium客户端类库,对具有Selenium Web自动化测试经验的人员来说,比较容易上手;
    6. 提供Appium Inspector工具,可以非常方便的查看App界面元素的元数据属性信息,Mac版本支持测试用例录制;

    3. 压力测试

    3.1 Monkey

    Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。

    3.2 MonkeyRunner

    MonkeyRunner是一Api工具包,比Monkey强大,写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。

    4. 对比总结

    在应用开发中,项目代码组织架构设计要合理,方便进行单元测试。推荐使用JUnit进行非Android Framework的函数或类的单元测试,借助jacoco等插件统计分析代码覆盖率。

    Espresso测试框架可以进行UI单元测试,但是App的Activity往往会涉及Android其他模块,例如Service,Broadcast,所以推荐使用Appium等测试工具进行App应用的功能集成化自动测试。
    Appium具有UiAutomatorRobotium等测试工具所有的特性,不仅支持Hybird AppWeb App这类非原生应用,而且还支持iOS等其他移动平台;Appium本身封装拓展了Selenium测试工具,所以等于掌握Appium自动化测试工具,就可以编写Android、iOS、Web等多端的应用测试。

    Monkey是一随机事件流测试工具,推荐使用于应用的稳定性测试,可以及早的发现App的Crash问题。

    相关文章

      网友评论

          本文标题:Android自动化(功能)测试方法简介

          本文链接:https://www.haomeiwen.com/subject/rbxzkxtx.html