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)

       

  • 相关阅读:
    (双指针 二分) leetcode 167. Two Sum II
    (双指针) leetcode 485. Max Consecutive Ones
    (双指针) leetcode 27. Remove Element
    (String) leetcode 67. Add Binary
    (数组) leetcode 66. Plus One
    (N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal
    (N叉树 递归) leetcode 590. N-ary Tree Postorder Traversal
    (N叉树 递归) leetcode589. N-ary Tree Preorder Traversal
    (N叉树 DFS 递归 BFS) leetcode 559. Maximum Depth of N-ary Tree
    (BST 递归) leetcode98. Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/leozhanggg/p/9687398.html
Copyright © 2011-2022 走看看