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} 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] |
转载于:https://www.cnblogs.com/ainihaozhen/p/9546944.html
Appium+RobotFrameWork测试环境搭建相关推荐
- Appium+python 测试环境搭建
1. python 安装,python安装appium; 2. JDK安装,JAVA_HOME添加到环境变量: 3. Node js安装,安装8.0以上: 4. Android SDK安装,集成在An ...
- 【rf】robotframework自动化测试环境搭建
robotframework自动化测试环境搭建 前言: 1.在2019年之前,robotframework-ride的版本一直是1.5.2.1,是2016年1月份的版本,只能安装在python2.7的 ...
- Robot Framework测试环境搭建(python3.7.2,pip在线安装)及RIDE的简单操作演示
Robot Framework测试环境搭建(python3.7.2,pip在线安装)和RIDE的简单操作演示 1.框架介绍 Robot Framework 框架是一个通用的测试框架(基于python) ...
- web应用如何确定能同时允许多少用户连接?_Web测试环境搭建+测试要点汇总
一.Web测试环境搭建 软硬件包括:电脑一台.JDK1.6.Tomcat7.0.mysql.IE浏览器.Firefox浏览器.Chrome浏览器.SVN客户端 通过SVN客户端导出最新的Web工程部署 ...
- Celery简介及Docker测试环境搭建
Celery 简介 任务队列一般用于线程或计算机之间分配工作的一种机制. 任务队列的输入是一个称为任务的工作单元,有专门的工作进行不断的监视任务队列,进行执行新的任务工作. Celery 通过消息机制 ...
- 微信开发——本地测试环境搭建
版权声明:欢迎转载,请注明沉默王二原创. https://blog.csdn.net/qing_gee/article/details/52858939 微信开发的本地测试环境搭建起来颇为繁琐(对微信 ...
- Activiti Workflow HelloWorld 示例与测试环境搭建
作者:Rock 出处:http://www.ecmkit.com/zh-hans/2012/03/21/activiti-workflow-hell Activiti Workflow HelloWo ...
- USDT(omniCore)测试环境搭建
一.测试环境搭建. 注:由于window版本的omni出现同步不了的问题,推荐使用linux系统进行usdt测试链的搭建. 1.下载omnicore: wget https://bintray.com ...
- 柠檬班接口测试Tomcat+MySQL测试环境搭建
Tomcat+MySQL测试环境搭建 安装Tomcat运行环境 配置MySQL数据库 发布项目 配置数据库开机自启 遇到的问题 安装Tomcat运行环境 参考链接: https://blog.csdn ...
最新文章
- 论文阅读:An Enhanced Deep Feature Representation for Person Re-identification
- django 通过数据库表名获取app名
- Python(19)-字符串、Unicode字符串
- 二叉树的递归遍历算法c语言 数据结构,递归创建二叉树c语言实现+详细解释
- java hashmap
- Leetcode每日一题:21.merge-two-sorted-lists(合并两个有序链表)
- html4与java混编,JavaWeb04-HTML篇笔记(四)
- 使用yarn dev报错 vue-cli-service外部命令
- 安卓模拟器封包抓取加解密
- Pix4D生成正射影像记录
- 人人都可以参与开源!龙蜥社区最不容错过的开发者活动来了
- 搜索巨头百度深耕中国量子产业
- 三角网格的顶点曲率计算(平均曲率和高斯曲率)
- 突然觉得人类的进化是人类自主意愿…
- python中文名是什么怎么读-python中文读音
- PS练习7——蒙版的使用
- 微信小程序—点击实现页面跳转
- 一段仿QQ窗口抖动的代码(VC++)
- 无聊乱搞:用shell脚本实现windows下cena的评测功能
- DP4301—SUB-1G高集成度无线收发芯片
热门文章
- axure7 地址选择_AxureRP8实战手册-案例7(形状:唯一选中项)
- AS编写sdk并打成jar包供其它APP调用
- base64编码_几分钟看懂Base64编码原理
- JZOJ 5221. 【GDOI2018模拟7.10】A
- php好玩的源码_github上比较有趣的PHP开源项目
- 排队问题解题思路_三大策略、5个技巧,完美解决超市收银排队难题
- python机器学习库_Python机器学习库 Top 10,你值得拥有!
- python建立列表_python创建列表和向列表添加元素的实现方法
- 用tp5写了一个简单的登录验证
- 使用css实现点击切换效果