使用Robot Framework+Appium进行自动化
2017-08-10 21:12
267 查看
使用Robot Framework+Appium进行移动端UI自动化
很久没写博客了,因为工作的变动,一直处理其他的事情。最近项目需要做移动端自动化,找到Appium,在网上搜了一大堆教程,很多都写的很乱,自己摸索了一阵给弄出来了,所以想写个教程记录一下。本人是使用mac做的,使用win的朋友可以参考一下,大体差不多。
先说一下需要准备的东西,因为是基于Robot Framework框架的,所以robot需要的东西都要装上,robot第一个示例这里可以参考一下虫师的博客:
JDK
SDK
Python(mac自带2.7)
Robot framework
wxPython
Robot framework-ride
Robot framework-selenium2library
Appium-Python-Client
robotframework-appiumlibrary
Appium
模拟器
声明
这里只说到如何通过Appium实现UI自动化的一个demo,进阶内容下一期再说,需要安装的内容这里默认已经安装好,安装教程百度,这些比较容易查到环境检查准备
打开命令行窗口,输入adb,如果提示’command not found’,需要设置adb环境变量cd到user文件夹下,运行
touch .bash_profile open -e .bash_profile
在打开的窗口中加入
export PATH=$PATH:/xxx/sdk/platform-tools
关闭窗口,运行命令
source .bash_profile
这时候再运行adb -version就可以看到adb版本了
这时候运行adb devices查看链接的移动设备,如果是使用模拟器会发现列表中没有模拟器的设备信息,以本人使用的夜神模拟器为例,运行如下命令即可
1.先到模拟器中打开开发者模式( 夜神模拟器:设置->关于平板电脑->点击5次版本号 进入开发者模式 )
2.右键点击夜神模拟器的app,选择显示包内容,进入到MacOS文件夹中
命令行cd到MacOS文件夹下,运行命令
adb connect 127.0.0.1:62001
现在再运行adb devices命令就能看到设备信息了,显示如下:
接下来看看Appium
打开我们下载的Appium,点开设置按钮
Server Address设置为本地ip,端口号不变
Override Existing Sessions勾选上
点开安卓小人,App Path设置为你需要测试的app在本机的地址
安卓版本选择模拟器对应的安卓版本
点击Launch,出现下图我们就可以进行下一步了:
另外点击上面听诊器按钮可以进行自检,缺少组件会提示
Demo示例
在命令行运行ride.py打开RIDE,像创建web测试项目一样,我们创建一个android测试项目注意在测试套件里面导入AppiumLibrary包
如果导入没有问题AppiumLibrary显示为黑色
接下来写第一条测试用例
伪代码为:
Open Application http://127.0.0.1:4723/wd/hub platformName=Android platformVersion=4.4.2 deviceName=127.0.0.1:62001 app=/Users/moooke/Desktop/bosch-debug.apk
其中几个参数说明一下
Open Application : 关键字
http://127.0.0.1:4723/wd/hub :/wd/hub为固定格式,前面我是指向本机地址
platformName : 平台名称
platformVersion : 平台版本
deviceName : 设备名称
app : 指向待测试app的路径
之后还有两个参数:包名、Activity名字,可以省略
接下来我们先把apk安装到模拟器中,让Appium跑起来,然后跑我们刚才写的这个用例
可以看到模拟器已经把我安装的apk启动起来了。
这个时候可能会遇到问题,ride提示应用没有启动成功,Appium中报错:
这是因为环境变量没有设置完成,找到我们之前的 .bash_profile文件夹
open -e .bash_profile
在打开的文件中写入
export PATH=$PATH:/xxx/sdk/tools export ANDROID_HOME=/xxx/sdk/
这时候再通过ride运行我们的测试用例就可以成功打开应用了。
两点补充
第一次运行robot framework进行web-ui自动化的时候可能会提示浏览器打开错误,如果大家用的是chrome,一般来说是因为对应的驱动有问题,大家可以先查看自己的chrome版本,然后去网上搜对应的chrome的驱动,下载好之后,同样在刚才的 .bash_profile 文件中添加上export PATH=$PATH:/xxx/chromedriver #指向自己下载的chormedriver
就可以正常启动chrome了
在sdk-tools文件夹下可以找到uiautomatorviewer文件
双击打开,点击设备按钮
我们就可以看到如图所示的界面,通过右边的标签我们就可以很轻松定位到我们所需要的元素信息了
更多的API信息和操作会持续分享
相关文章推荐
- 通过RobotFrameWork+APPIUM对安卓APK进行自动化测试
- robotframework+appium进行app自动化,自动亮屏安卓手机方法
- Appium+Genymotion+robotframework+python系列三:一个简单的Android自动化用例
- 使用Robot进行自动化测试
- 使用Windows Mobile Test Framework进行Windows Mobile程序的自动化测试
- [Share]使用 appium1.0 与 Java 进行自动化的例子
- Android Studio下使用JAVA+Appium进行自动化测试及简单封装
- Appium+Robot Framework+Jenkins从环境搭建到测试执行实现移动端的自动化测试
- MSDN Webcast 预告:使用Windows Mobile Test Framework进行自动化测试
- 使用 appium1.0 与 Java 进行自动化的例子
- RobotFramework + Appium 移动自动化实现
- MSDN Webcast - 使用Windows Mobile Test Framework进行自动化测试(Level 300)
- 如何使用appium对高版本的ios手机进行自动化
- 在Amazon device farm上使用appium进行自动化测试
- 使用adb connect对appium进行无线自动化测试
- 当Xcode大于等于8时,如何使用Appium Desktop 获取iOS APP控件的id进行自动化测试
- Appium+Robotframework实现iOS应用的自动化测试-5:一个简单的例子
- Appium Android Ui自动化环境搭建及使用实战
- 使用fitness进行自动化测试
- Turtlebot学习指导第四篇_使用robot_pose_ekf包,EKF(扩展卡尔曼滤波器)对机器人位置进行校正