本次我们移动自动化实现路线大致是这样的:  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)

   

RobotFramework + Appium 移动自动化实现的更多相关文章

  1. Appium UI自动化的那些梗

    @作者 彭海波 转载请注明出处 前言 由于需求的快速迭代和敏捷测试的要求,在测试过程中引入自动化成为必不可少的手段.作为一个互联网测试团队,我们自然也引入了自动化测试这个环节.在众多的测试框架中,我们 ...

  2. Appium+python自动化8-Appium Python API

    Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...

  3. Python + Robotframework + Appium 之APP自动化测试实践(一)

    前面的文章已经介绍了Robotframework+Appium的安装及小试牛刀(For Android) 下面来个简单的实践,话不多说,还以是计算器为例,直接上代码,详情如下: *** Setting ...

  4. appium+python自动化61-中文输入乱码问题解决

    前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium And ...

  5. appium安卓自动化的 常用driver方法封装

    appium安卓自动化的 常用driver方法封装 做安卓自动化的时候,很多方法写起来会造成代码冗余,把这部分封装起来 ,添加到androidUI工具类里,随时可调用 都放在这个类下面: @Compo ...

  6. appium安卓自动化常见问题处理

    appium安卓自动化常见问题处理 1.seesionnotcreatedexception 遇到这个首先确定下jdk需要1.7以上 然后还要确定appium是启动状态,可以cmd重启下appium ...

  7. Python + Robotframework + Appium 之APP自动化测试小试牛刀(Android)

    Robotframework如何好?这里先不说了~ Python更不用说了~ Appium前面的文章有介绍~ 今天直接来Python+Robotframework+Appium 三者结合起来,对And ...

  8. [转]RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第一篇【安装】

    前言:关于RobotFrameWork+APPIUM实现对安卓APK的自动化测试的文章都是取自于乐于分享知识于网络的好心人们,所以我也希望我的知识可以分享给大家. 首先我们先罗列一下我们要安装的软件 ...

  9. appium+python自动化57-chromedriver与chrome版本

    前言 由于app的webview自动化是依赖于chromedriver的,并且每个app的webview版本号都不太一样,这就导致了,每次都需要重新去下载对应的chromedriver版本.如何根据当 ...

随机推荐

  1. jmeter 测试MD5加密登录接口

    1.点击options-funciton helper dialog,打开函数助手 在string to  calculate MD5 hash 中填写密码,复制function sysntax中的值 ...

  2. UVa 712

    这个题根本不用建树,因为是完全二叉树,可以把这个想成二进制.对于根是二进制数的首位,之后依次类推.到最后的叶子节点就是从0到pow(2,n)-1. 关键在于在第一次输入的不是按照x1,x2,x3,x4 ...

  3. 2015219付颖卓《网络对抗》EXP8 Web基础

    实验后回答问题 1.什么是表单 来自百度百科的官方定义:表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方 ...

  4. 64位ubuntu16.04系统安装网易云音乐

    64位ubuntu16.04系统安装网易云音乐 1.官网下载安装包:netease-cloud-music_1.1.0_amd64_ubuntu.deb https://music.163.com/# ...

  5. Java面试题2

    类加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制. 类从被加载到虚拟机内存中开 ...

  6. [USACO07OPEN]便宜的回文Cheapest Palindrome

    字串S长M,由N个小写字母构成.欲通过增删字母将其变为回文串,增删特定字母花费不同,求最小花费.        题目描述见上            显然 这是一道区间DP 从两头DP,枚举长度啥的很套 ...

  7. UE4 材质编辑

    1.颜色反转(纹理颜色白变黑,黑变白)

  8. JSP + JDBC + MySQL 读取数据库内容到网页

    创建数据库表 导入JDCB驱动 mysql.jsp <%@ page language="java" %> <%@ page contentType=" ...

  9. 网络操作基础(one)

    P12 一.什么是网络操作系统?网络操作系统具有哪些基本功能? 二.网络操作系统具有哪些特征? 三.常用的网络操作系统有哪些?它们各具有什么特点? 四.在网络操作系统中主要可提供哪些? ———— —— ...

  10. Luminar 3 for Mac(照片编辑工具)v3.1.0中文特别版

    Luminar for Mac是一款多功能照片编辑软件,使用独特的AI工具加快速度,具备AI Sky Enhancer.Accent AI.太阳光线等创新功能.当然也保留了原有的功能,帮助你轻松的修复 ...