前提:搭建好robotframework环境

RF基于python2.7的版本实现的一套开源自动化测试框架

推荐使用Appium Desktop,

搭建Appium环境:

1. 搭建JDK

2. 搭建SDK环境;SDK:software development kit  软件包,常用的软件是UIAutomatorViewer,进行移动端应用的元素定位

3. 连接的移动端设备,安卓真机或者模拟器(夜神)

PS:安装完模拟器之后,将sdk中的adb.exe文件复制到夜神的安装路径下的nox_adb.exe,并重命名为nox_adb.exe

4. 安装Appium desktop,直接下载安装即可。 如果安装的是Appium server,需要配置node.js,Appium server路径到环境系统变量中

5. 在RobotFrameWork中导入Appium的包,实现对移动端App的自动化测试

启动conmand命令窗口,输入pip install robotframework-appiumlibrary

6. 启动RobotFrameWork,导入AppiumLibrary,导包时,包名大小写敏感

导入AppiumLibrary后,可能会报错,提示six not found的error,启动conmand窗口,输入 pip install six,然后重启RobotFrameWork

RobotFrameWork的工程结构:

新建Project,选择type为directory——新建Suite,选择type为file——在Suite中导入library——新建Case

RF本身是一个关键字驱动的方式来实现自动化的。

腾讯QQ的登录demo:

1.RF连接模拟器,启动腾讯QQ

Open Application参数解析:

1.Appium服务端,连接固定

2.配置Appium的Capabilities:

deviceName 设备名称  可以通过conmand窗口输入 adb devices获取到

platformName 操作系统  Android

platformVersion 系统版本 4.4.2

appPackage 被测包名

com.lixin.yezonghui

appActivity 被测应用的主入口

.splash.SplashActivity

2. 进入QQ登录界面

要获取元素的定位,然后基于已定位的元素进行相对于的操作。

Appium1.6.3(客户端版)解决每次运行都需要安装Unlock以及AppiumSetting的问题

文件1地址:/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js

注释掉:await helpers.pushSettingsApp(adb);

注释掉:await helpers.pushUnlock(adb);

文件2地址:

/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/build/lib/android-helpers.js

注释掉:return
_regeneratorRuntime.awrap(helpers.pushSettingsApp(adb));

新增:return context$1$0.abrupt('return', defaultIME);

注释掉:return
_regeneratorRuntime.awrap(helpers.pushUnlock(adb));

新增:return context$1$0.abrupt('return',
defaultIME);

重启appium

Appium
Setting和Unlock在测试过程中不要轻易去掉。

虽然AppiumSetting不知道做什么用的,但是Unlock在手机锁屏的情况下会有解锁的效果。如果没有Unlock,锁屏状态下client会启动失败,而有Unlock时会自动解锁,然后执行下一步

如果有谁知道Appium Setting是做什么的,希望大家给科普一下~

AppiumLibrary常用关键字

关键字

含义

实例

备注

Click button

点击按钮

Click button 登录

这里的登录是class属性,必须是button

Click element

点击元素

Click element [locator]

Locator可以是resource-id,也可以是xpath,但必须是当前页面唯一存在的,一般用该关键字可以完成所有元素点击

Click text

点击文字

Click text 我的

我的需要是当前页面唯一存在的

Input text

在指定元素中输入文本

Input text [locator] 111

Locator可以是resource-id,也可以是xpath

Swipe

滑动屏幕

Swipe 1000 1800 100 1800

Get Text

获取某标签内容

${account}
  Get Text  [locator]

获取内容后存储到指定变量中,从而在后续脚本中调用该内容

二、校验函数

关键字

含义

实例

备注

Element
Name Should Be

检查元素的name属性

Element
Name Should Be  [locator]  登录

locator可以是resource-id,也可以是xpath

Element
Should Be Enabled

检查元素是否可用/可见

Element
Should Be Enabled  [locator]

Page
Should Contain Element

检查界面包含某些元素

Page
Should Contain Element   [locator]

Page
Should Contain Text

检查界面包含某些文字信息

Page
Should Contain Text  预约挂号

Page
Should Not Contain Element

检查界面不包含某些元素

Page
Should Not Contain Element  [locator]

Page
Should Not Contain Text

检查界面不包含某些文字信息

Page
Should Not Contain Text  预约挂号

三、等待函数

关键字

含义

实例

备注

Wait Until
Page Contains

等待直到界面中包含某些文字,才进行下一步

Wait Until
Page Contains  预约挂号

默认等待时间为5s

Wait Until
Page Contains Element

等待直到界面中包含某些元素,才进行下一步

Wait Until
Page Contains Element   [locator]

locator可以是resource-id,也可以是xpath

Wait Until
Page Does Not Contain

等待直到界面中不包含某些文字,才进行下一步

Wait Until
Page Does Not Contain  预约挂号

Wait Until
Page Does Not Contain Element

等待直到界面中不包含某些元素,才进行下一步

Wait Until
Page Does Not Contain Element  [locator]

Appium+RobotFrameWork测试环境搭建的更多相关文章

  1. RobotFramework测试环境搭建记录

    Robotframwork测试环境搭建记录 1.安装Python2.7(https://www.python.org/) 在环境变量path中加入“C:\Python27” 安装后的验证方法为在命令行 ...

  2. Appium Python测试环境搭建

    详细参考地址:https://www.cnblogs.com/amoyshmily/p/10500687.html 1,Appium安装:https://github.com/appium/appiu ...

  3. 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...

  4. 【转1】Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结 关于 Appium 1.6.3 在Xcode 8, 10.2 的iOS模拟器上的问题很多,本人也差点放弃 ...

  5. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  6. 『与善仁』Appium基础 — 1、Android系统的测试环境搭建

    目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...

  7. Linux测试环境搭建的学习建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...

  8. 总结Selenium自动化测试方法(二)测试环境搭建

    (接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...

  9. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  10. 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security   Socket   Layer)全称 ...

随机推荐

  1. 实操记录之-----Ant Design of Vue 增强版动态合并单元格,自动根据数据进行合并,可自定义横纵向合并

    前几天搞了个简易版的动态合并单元格 但是需求有变化,就只能稍微改改了~~ 欢迎路过的各位大佬指出我代码的问题~~~~ 另: 代码执行效率不是很高,如果需要大量渲染更多数据建议可以直接使用原生 < ...

  2. djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令

    djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令 一.web框架前戏 web 框架可以理解为是基于会联网的web服务端>>>socket服务端 1.w ...

  3. Map集合概述-Map常用子类

    Map集合概述 现实生活中,我们常会看到这样的一种集合︰IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种--对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  4. 方法的调用-JDK的JShell简单使用

    方法的调用 方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法.在 主方法中,直接写要调用的方法名字就可以调用了. public static ...

  5. Unity - 创建C#脚本默认编码格式为UTF8

    嗨咯大家好,哈哈哈哈哈哈哈哈哈哈,今儿小黑加班,目的只有一个,解决Unity创建的脚本通过VS打开后编码格式不正确,导致从Unity的Inspector面板与Mac上边的VS看到的中文为乱码,很气,找 ...

  6. Flink1.15仅支持ZooKeeper3.5/3.6

    这是一个验证贴,因为社区文档是错误的. 先说结论 Flink1.15仅支持ZooKeeper3.5/3.6,不再支持3.4.FLINK-25146 Drop support for Zookeeper ...

  7. 真正“搞”懂HTTPS协议15之安全的定义

    前面我们花了很大的篇幅来讲HTTP在性能上的改进,从1.0到1.1,再到2.0.3.0,HTTP通过替换底层协议,解决了一直阻塞性能提升的队头阻塞问题,在性能上达到了极致. 那么,接下来,我们来聊一聊 ...

  8. .net core Autofac IOC 容器的简单使用

    书接上回,介绍了.net core 读取配置文件的几种方式,本文学习Autofac的同时再次增加一种读取配置文件的方法. 本文介绍Auofac,一个优秀的.NET IOC框架 源码地址:https:/ ...

  9. 基于 Hugging Face Datasets 和 Transformers 的图像相似性搜索

    基于 HuggingFace Datasets 和 Transformers 的图像相似性搜索 通过本文,你将学习使用 Transformers 构建图像相似性搜索系统.找出查询图像和潜在候选图像之间 ...

  10. 如何使用 ArrayPool

    如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool. 使用 ArrayPool Arr ...