Appium+RobotFrameWork测试环境搭建
前提:搭建好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} |
获取内容后存储到指定变量中,从而在后续脚本中调用该内容 |
二、校验函数
|
关键字 |
含义 |
实例 |
备注 |
|
Element |
检查元素的name属性 |
Element |
locator可以是resource-id,也可以是xpath |
|
Element |
检查元素是否可用/可见 |
Element |
|
|
Page |
检查界面包含某些元素 |
Page |
|
|
Page |
检查界面包含某些文字信息 |
Page |
|
|
Page |
检查界面不包含某些元素 |
Page |
|
|
Page |
检查界面不包含某些文字信息 |
Page |
三、等待函数
|
关键字 |
含义 |
实例 |
备注 |
|
Wait Until |
等待直到界面中包含某些文字,才进行下一步 |
Wait Until |
默认等待时间为5s |
|
Wait Until |
等待直到界面中包含某些元素,才进行下一步 |
Wait Until |
locator可以是resource-id,也可以是xpath |
|
Wait Until |
等待直到界面中不包含某些文字,才进行下一步 |
Wait Until |
|
|
Wait Until |
等待直到界面中不包含某些元素,才进行下一步 |
Wait Until |
Appium+RobotFrameWork测试环境搭建的更多相关文章
- RobotFramework测试环境搭建记录
Robotframwork测试环境搭建记录 1.安装Python2.7(https://www.python.org/) 在环境变量path中加入“C:\Python27” 安装后的验证方法为在命令行 ...
- Appium Python测试环境搭建
详细参考地址:https://www.cnblogs.com/amoyshmily/p/10500687.html 1,Appium安装:https://github.com/appium/appiu ...
- 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结
Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...
- 【转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模拟器上的问题很多,本人也差点放弃 ...
- 『与善仁』Appium基础 — 14、Appium测试环境搭建
目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...
- 『与善仁』Appium基础 — 1、Android系统的测试环境搭建
目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...
- Linux测试环境搭建的学习建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...
- 总结Selenium自动化测试方法(二)测试环境搭建
(接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...
- 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security Socket Layer)全称 ...
随机推荐
- 实操记录之-----Ant Design of Vue 增强版动态合并单元格,自动根据数据进行合并,可自定义横纵向合并
前几天搞了个简易版的动态合并单元格 但是需求有变化,就只能稍微改改了~~ 欢迎路过的各位大佬指出我代码的问题~~~~ 另: 代码执行效率不是很高,如果需要大量渲染更多数据建议可以直接使用原生 < ...
- djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令
djiango框架推导过程,jinja2模板语法,jiango简介,基本操作命令 一.web框架前戏 web 框架可以理解为是基于会联网的web服务端>>>socket服务端 1.w ...
- Map集合概述-Map常用子类
Map集合概述 现实生活中,我们常会看到这样的一种集合︰IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种--对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...
- 方法的调用-JDK的JShell简单使用
方法的调用 方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法.在 主方法中,直接写要调用的方法名字就可以调用了. public static ...
- Unity - 创建C#脚本默认编码格式为UTF8
嗨咯大家好,哈哈哈哈哈哈哈哈哈哈,今儿小黑加班,目的只有一个,解决Unity创建的脚本通过VS打开后编码格式不正确,导致从Unity的Inspector面板与Mac上边的VS看到的中文为乱码,很气,找 ...
- Flink1.15仅支持ZooKeeper3.5/3.6
这是一个验证贴,因为社区文档是错误的. 先说结论 Flink1.15仅支持ZooKeeper3.5/3.6,不再支持3.4.FLINK-25146 Drop support for Zookeeper ...
- 真正“搞”懂HTTPS协议15之安全的定义
前面我们花了很大的篇幅来讲HTTP在性能上的改进,从1.0到1.1,再到2.0.3.0,HTTP通过替换底层协议,解决了一直阻塞性能提升的队头阻塞问题,在性能上达到了极致. 那么,接下来,我们来聊一聊 ...
- .net core Autofac IOC 容器的简单使用
书接上回,介绍了.net core 读取配置文件的几种方式,本文学习Autofac的同时再次增加一种读取配置文件的方法. 本文介绍Auofac,一个优秀的.NET IOC框架 源码地址:https:/ ...
- 基于 Hugging Face Datasets 和 Transformers 的图像相似性搜索
基于 HuggingFace Datasets 和 Transformers 的图像相似性搜索 通过本文,你将学习使用 Transformers 构建图像相似性搜索系统.找出查询图像和潜在候选图像之间 ...
- 如何使用 ArrayPool
如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool. 使用 ArrayPool Arr ...