zoukankan      html  css  js  c++  java
  • RobotFramework + Appium 移动自动化实现

      本次我们移动自动化实现路线大致是这样的:  Python语言基础  —> Robot Framework测试框架  —> Android SDK和Genymotion模拟器  —>   Appium API   —>  开发移动自动化项目

    一、环境搭建

      1. 首先我们选择Python语言,我相信很多人都有这个疑问,为什么选择Python而不是Java?

      因为RF核心框架使用Python实现的,虽然也可以在Jython(JVM)和 IronPython(.NET)上运行,但是Python运用更佳。

      2. 再者我们选择RIDE编辑器;

      虽然RIDE是“填表格”形式,看似有点low,但是却拥有非常丰富的库,也可以像编程一样写测试用例,也支持开发系统关键字。对于开发技术薄弱的测试人员来说也可以上手,使用比较简单。

      3. 接着我们需要Android SDK;

      因为需要用到Android SDK中的 uiautomatorviewer工具,它可以通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。

      4. 最后我们需要Appium服务。

      因为Appium支持ios和android平台上的移动原生应用、移动Web应用和混合应用,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。

      详情参考笔者另外两篇博文: Python + Robot Framework 环境搭建     Android SDK + Appium 环境搭建

    二、设备选择

      1. 直接连接真机: 打开开发者选项 -> USB调试。

             >>>  

      2. 或者使用模拟器: 因为Android AVD模拟器对PC硬件有要求,所以我推荐一个比较好用的模拟器Genymotion。

       链接: https://pan.baidu.com/s/1iSAWPnnFSOCFVVsPtgHA4g 提取码: qdi9

       安装:直接双击下一步即可。

       使用: 打开虚拟机,选择一个模拟器下载即可使用。

       

       详情参考另外一篇博文:  Android模拟器Genymotion使用详解 

         

    三、控件查看

      1. 打开uiautomatorviewer工具,点击获取布局,查看控件信息。

      

    四、项目创建

      1. 打开RIDE  -> File

      2.  创建项目 New Project(类型选择Directory,用于创建测试套件)

      

      3. 创建测试套件 New Suite(右击项目新建,类型选择File,用于创建测试用例) 

       

      4.创建测试用例

      

      5. 创建资源 New Resource(右击项目新建,用于创建关键字)

      

      6. 创建关键字(右击资源新建)

      

        7. 至此,一个简单的测试框架搭建好了

        >>>  

    五、编写用例

       1. 在系统关键字上导入AppiumLibrary库

      

      2. 按F5查看AppiumLibrary各种方法

      

      3. 编辑打开应用关键字(可参考 RobotFramework - AppiumLibrary 之关键字Open Application使用

    *** Settings ***
    Library           AppiumLibrary
    
    *** Keywords ***
    打开应用
        Open Application    http://localhost:4723/wd/hub    platformName=Android    platformVersion=5.1.0    deviceName=192.168.186.101:5555    app=${CURDIR}/球酷.apk    appPackage=com.datamatch.coolball
        ...    appActivity=com.jdd.datapredict.StartupActivity    unicodeKeyboard=True    resetKeyboard=True

      4. 在测试套件上导入Resource,并加入Suite Setup

      

      5. 查看控件元素,编辑测试用例

    *** Settings ***
    Suite Setup       打开应用
    Resource          系统关键字.txt
    
    *** Test Cases ***
    正常登录
        Wait Until Element Is Visible    com.datamatch.coolball:id/tabs    30    #等待菜单栏显示
        Click Element    name=我的    #点击-我的
        Click Element    name=登录/注册    #点击-登录
        Clear Text    com.datamatch.coolball:id/userName    #清空用户名输入框
        Input Text    com.datamatch.coolball:id/userName    18851507044    #输入用户名
        Input Password    com.datamatch.coolball:id/password    Leo5208.    #输入密码
        Click Element    name=立即登录    #点击-立即登录
        Element Should Be Visible    com.datamatch.coolball:id/iv_userLevel    #检查等级标签是否显示
        ${text}    Get Text    com.datamatch.coolball:id/userName    #获取用户昵称
        Should Be Equal As Strings    ${text}    Leoo    #检查用户昵称是否正确
    
    清空消息
        Wait Until Element Is Visible    com.datamatch.coolball:id/iv_message    30
        Click Element    name=清空
        Click Element    com.datamatch.coolball:id/tv_msg_clear
        ${text}    Get Text    com.datamatch.coolball:id/empty_text
        Should Be Equal As Strings    ${text}    抱歉,暂无数据
        Click Element    accessibility_id=Navigate up
    
    退出登录
        Wait Until Element Is Visible    com.datamatch.coolball:id/userName    30
        Click Element    com.datamatch.coolball:id/userName
        Click Element    name=退出登录
        Element Text Should Be    com.datamatch.coolball:id/userName    登录/注册

      6. 测试用例实现流程图

       

    六、执行测试

      1. 打开appium客户端并启动(或者命令行输入appium启动)

      

      2. 启动模拟器(或者连接真机)

      3. 切回RIDE点击运行(或者快捷键F8)

      

    七、分析结果

      查看报告或日志(或者快捷键Ctrl+R/L)

       

  • 相关阅读:
    遍历系统进程
    AS3.0实现图像的扭曲
    CMainFrame, View, Doc, App之间的组织
    进程的创建
    自定义异常
    VC6.0快捷键(转载)
    WinMain与应用程序类之间的联系
    解决在Chrome下无法获取showModalDialog返回值的问题
    用js编解码base64
    根据一个绝对路径获取相对路径的方法
  • 原文地址:https://www.cnblogs.com/leozhanggg/p/9687398.html
Copyright © 2011-2022 走看看