前提:搭建好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测试环境搭建相关推荐

  1. Appium+python 测试环境搭建

    1. python 安装,python安装appium; 2. JDK安装,JAVA_HOME添加到环境变量: 3. Node js安装,安装8.0以上: 4. Android SDK安装,集成在An ...

  2. 【rf】robotframework自动化测试环境搭建

    robotframework自动化测试环境搭建 前言: 1.在2019年之前,robotframework-ride的版本一直是1.5.2.1,是2016年1月份的版本,只能安装在python2.7的 ...

  3. Robot Framework测试环境搭建(python3.7.2,pip在线安装)及RIDE的简单操作演示

    Robot Framework测试环境搭建(python3.7.2,pip在线安装)和RIDE的简单操作演示 1.框架介绍 Robot Framework 框架是一个通用的测试框架(基于python) ...

  4. web应用如何确定能同时允许多少用户连接?_Web测试环境搭建+测试要点汇总

    一.Web测试环境搭建 软硬件包括:电脑一台.JDK1.6.Tomcat7.0.mysql.IE浏览器.Firefox浏览器.Chrome浏览器.SVN客户端 通过SVN客户端导出最新的Web工程部署 ...

  5. Celery简介及Docker测试环境搭建

    Celery 简介 任务队列一般用于线程或计算机之间分配工作的一种机制. 任务队列的输入是一个称为任务的工作单元,有专门的工作进行不断的监视任务队列,进行执行新的任务工作. Celery 通过消息机制 ...

  6. 微信开发——本地测试环境搭建

    版权声明:欢迎转载,请注明沉默王二原创. https://blog.csdn.net/qing_gee/article/details/52858939 微信开发的本地测试环境搭建起来颇为繁琐(对微信 ...

  7. Activiti Workflow HelloWorld 示例与测试环境搭建

    作者:Rock 出处:http://www.ecmkit.com/zh-hans/2012/03/21/activiti-workflow-hell Activiti Workflow HelloWo ...

  8. USDT(omniCore)测试环境搭建

    一.测试环境搭建. 注:由于window版本的omni出现同步不了的问题,推荐使用linux系统进行usdt测试链的搭建. 1.下载omnicore: wget https://bintray.com ...

  9. 柠檬班接口测试Tomcat+MySQL测试环境搭建

    Tomcat+MySQL测试环境搭建 安装Tomcat运行环境 配置MySQL数据库 发布项目 配置数据库开机自启 遇到的问题 安装Tomcat运行环境 参考链接: https://blog.csdn ...

最新文章

  1. 论文阅读:An Enhanced Deep Feature Representation for Person Re-identification
  2. django 通过数据库表名获取app名
  3. Python(19)-字符串、Unicode字符串
  4. 二叉树的递归遍历算法c语言 数据结构,递归创建二叉树c语言实现+详细解释
  5. java hashmap
  6. Leetcode每日一题:21.merge-two-sorted-lists(合并两个有序链表)
  7. html4与java混编,JavaWeb04-HTML篇笔记(四)
  8. 使用yarn dev报错 vue-cli-service外部命令
  9. 安卓模拟器封包抓取加解密
  10. Pix4D生成正射影像记录
  11. 人人都可以参与开源!龙蜥社区最不容错过的开发者活动来了
  12. 搜索巨头百度深耕中国量子产业
  13. 三角网格的顶点曲率计算(平均曲率和高斯曲率)
  14. 突然觉得人类的进化是人类自主意愿…
  15. python中文名是什么怎么读-python中文读音
  16. PS练习7——蒙版的使用
  17. 微信小程序—点击实现页面跳转
  18. 一段仿QQ窗口抖动的代码(VC++)
  19. 无聊乱搞:用shell脚本实现windows下cena的评测功能
  20. DP4301—SUB-1G高集成度无线收发芯片

热门文章

  1. axure7 地址选择_AxureRP8实战手册-案例7(形状:唯一选中项)
  2. AS编写sdk并打成jar包供其它APP调用
  3. base64编码_几分钟看懂Base64编码原理
  4. JZOJ 5221. 【GDOI2018模拟7.10】A
  5. php好玩的源码_github上比较有趣的PHP开源项目
  6. 排队问题解题思路_三大策略、5个技巧,完美解决超市收银排队难题
  7. python机器学习库_Python机器学习库 Top 10,你值得拥有!
  8. python建立列表_python创建列表和向列表添加元素的实现方法
  9. 用tp5写了一个简单的登录验证
  10. 使用css实现点击切换效果