万事具备,只欠编码!
下面看一个简单的示例,这个示例验证Android手机自带的通讯录的添加联系人的操作是否成功。这个例子是Appium官网自带的示例,有兴趣的同学也可以自己下载来研究和学习,下载地址:示例代码下载
首先请看resource.txt文件的代码:
  1. *** Settings ***
  2. Library           AppiumLibrary
  3. *** Variables ***
  4. ${REMOTE_URL}     http://localhost:4723/wd/hub
  5. ${PLATFORM_NAME}    Android
  6. ${PLATFORM_VERSION}    4.4.4
  7. ${DEVICE_NAME}    Android Emulator
  8. ${APP}            ../../../ContactManager/ContactManager.apk
  9. *** Keywords ***
  10. add new contact
  11. [Arguments]    ${contact_name}    ${contact_phone}    ${contact_email}
  12. Open Application    ${REMOTE_URL}    ${PLATFORM_NAME}    ${PLATFORM_VERSION}    ${DEVICE_NAME}    ${APP}
  13. Click Element    accessibility_id=Add Contact
  14. Input Text    id=com.example.android.contactmanager:id/contactNameEditText    ${contact_name}
  15. Input Text    id=com.example.android.contactmanager:id/contactPhoneEditText    ${contact_phone}
  16. Input Text    id=com.example.android.contactmanager:id/contactEmailEditText    ${contact_email}
  17. Click Element    accessibility_id=Save

复制代码

这里重点要说的是Variables下的五个变量,它们都是Open Application关键字的参数,用于在测试执行时提供给Appium相关的参数设置,之前的文章曾经说过可以不设置,在测试脚本中进行设置,这五个就是进行相关设置的参数。下面分别做下解释说明。
${REMOTE_URL}:远程URL,指的是Appium所在的地址以及端口号,之后的/wd/hub为固定格式,请不要改动。
${PLATFORM_NAME}:平台名称,我们在Android中进行测试,只能写Android。
${PLATFORM_VERSION}:平台版本,也就是Android的版本号,这个要和模拟器中设定的版本相同即可。
${DEVICE_NAME}:设备名称,就是运行中的模拟器的名称,如果不知道,可以通过在命令行中输入adb devices指令取得。
${APP}:要测试的App的全路径,注意这个路径指的是相对于Appium所在的机器的路径,这里的App需要从是Appium官网下载,下载地址:示例代码下载,下载后在sample-code\apps\ContactManager目录下可找到ContactManager.apk。
接下来的Keywords就简单了,可以打开AppiumLibrary得知每个关键字的具体含义,也可以更直接的在RIDE中查看关键字的含义,点击左上方的K图标,然后弹出Search Keywords窗口,再选择Source为AppiumLibrary,如下图所示。
如何获取元素在之前的文章说过了,怎么样?写起来是不是很简单?
接下来再来看看contacts.txt里面的脚本:
  1. *** Settings ***
  2. Resource          resource.txt
  3. *** Test Cases ***
  4. add_contact
  5. [Documentation]    demo for android_contacts(https://github.com/appium/sample-code/blob/master/sample-code/examples/python/android_contacts.py)
  6. [Tags]    demo
  7. add new contact    Appium User    someone@appium.io    5555555555
  8. Page Should Contain Text    Appium User

复制代码

这个就更简单了,调用resource.txt文件里面的add new contact关键字,参数就是要添加的联系人的姓名,邮件和电话,最后一行是验证添加是否成功。
好了,有兴趣的朋友可以自己试试哦。
 
转自:http://bbs.51testing.com/thread-1052147-1-1.html

Appium+Robotframework实现Android应用的自动化测试-6:一个简单的例子的更多相关文章

  1. Appium+Robotframework实现Android应用的自动化测试-4:AppiumLibrary介绍和安装

    Appium是个好东东,Android,iOS都支持,并且居然RobotFramework也支持Appium了,这就是本文要介绍的AppiumLibrary. 通过前面的文章大家知道可以使用多种语言来 ...

  2. Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器

    一.启动Appium 安装好了之后,在桌面或者菜单中找到Appium,分别双击或点击打开Appium.exe,如果一切正常,接着会出现一个Appium启动后的界面窗口,如下图所示. 1.1 Andro ...

  3. Appium+Robotframework实现Android应用的自动化测试-1:Appium在Windows中的安装

    让我们开始在Windows中开始安装Appium吧,Appium在OS X中的具体安装后面的文章会介绍. 另外,官网上说先要装Node.js,还要装Apache Ant和Apache Maven,Gi ...

  4. Appium+Robotframework实现Android应用的自动化测试-7:模拟器频繁挂掉的解决方案

    如果测试用例比较多,则当持续运行多个测试用例后,经常会出现模拟器崩溃或者Appium无法连接到该模拟器的情况出现. 经过分析,本人认为这应该是模拟器或者Appium的缺陷造成的,目前并没有直接的解决方 ...

  5. Appium+Robotframework实现Android应用的自动化测试-5:RIDE中AppiumLibrary的配置

    可能很多朋友已经迫不及待的想要用RobotFramework+AppiumLibrary来写Android App的测试脚本了,那我们也废话少说,直接开始. 首先打开RIDE,这是编写RobotFra ...

  6. Appium+Robotframework实现Android应用的自动化测试-3:一个必不可少的工具介绍

    万事具备,接下来我们就要开始编写测试脚本了. 不过,有个重要的问题还没有解决.我们知道RobotFramework在web 网页中主要依靠元素的id,name或者xpath来定位页面上的元素,我们依赖 ...

  7. Appium+Robotframework实现iOS应用的自动化测试

    Appium+Robotframework实现iOS应用的自动化测试 连接地址: 地址:https://blog.csdn.net/wd168/article/month/2016/06 1.http ...

  8. android引入百度地图之最简单的例子-HelloBaiDuMap

    开发工具 我用的是eclipse,目前这是开发android用的最多的一个工具. 开发准备 首先需要在百度地图开发平台上下载所需要的文档和功能,由于最新版的3.0.0的不是很熟悉,我这里用的是稍旧一点 ...

  9. appium +python 一个简单的例子

    appium 安装和python 安装好后. 1.      启动android模拟器--Genymotion-点击Start 2.      启动appium 3.     运行代码. # -*- ...

随机推荐

  1. java语言一维数组,对象数组

    /** * 对象数组的使用 */package com.test5; import java.io.BufferedReader;import java.io.InputStream;import j ...

  2. Orchard源码分析(4.4):Orchard.Caching.CacheModule类

    概述 CacheModule也是一个Autofac模块.   一.CacheModule类 CacheModule将DefaultCacheManager注册为ICacheManager:       ...

  3. servlet request getHeader(“x-forwarded-for”) 获取真实IP

    request方法客户端IP: request.getRemoteAddr() 输出:192.168.0.106 客户端主机名:request.getRemoteHost()输出:abc reques ...

  4. 【转】flume+kafka+zookeeper 日志收集平台的搭建

    from:https://my.oschina.net/jastme/blog/600573 flume+kafka+zookeeper 日志收集平台的搭建 收藏 jastme 发表于 10个月前 阅 ...

  5. iframe框架嵌套技巧(全屏,去双滚动条)

    一般情况下我们很少用到iframe(框架),但有些特殊的情况下我们不得不使用iframe,那么或许或遇到嵌套内容不全屏,网页周围有边框,双滚动条等等情况,下面来说一下处理技巧. 全屏与边框处理: &l ...

  6. MySQL源码分析以及目录结构

    原文地址:MySQL源码分析以及目录结构作者:jacky民工 主要模块及数据流经过多年的发展,mysql的主要模块已经稳定,基本不会有大的修改.本文将对MySQL的整体架构及重要目录进行讲述. 源码结 ...

  7. 关系型数据库ACID

    关系型数据库ACID 一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例 ...

  8. 网络编程2-UDP编程(DatagramSocket)

    1.传输层有两个协议,一个是tcp协议,另一个是udp协议,tcp协议通过socket编程.udp通过数据报编程. UDP协议: (1)将数据.源地址.目的地址 封装成数据包,不需要建立链接 (2)每 ...

  9. C\C++ sizeof 陷阱&&总结

    今天使用动态数组,本来想通过sizeof 获取动态数据,结果出现了错误. 先对自己做个测试,能做出下面这个题目,并做出合理解释,可以不用往下看了. ][]; cout<< cout< ...

  10. nodejs,node原生服务器搭建实例

    nodejs,node原生服务器搭建实例