RobotFramework + Appium 移动自动化实现
本次我们移动自动化实现路线大致是这样的: Python语言基础 —> Robot Framework测试框架 —> Android SDK和Genymotion模拟器 —> Appium API —> 开发移动自动化项目
一、环境搭建
1. 首先我们选择Python语言,我相信很多人都有这个疑问,为什么选择Python而不是Java?
因为RF核心框架使用Python实现的,虽然也可以在Jython(JVM)和 IronPython(.NET)上运行,但是Python运用更佳。
2. 再者我们选择RIDE编辑器;
虽然RIDE是“填表格”形式,看似有点low,但是却拥有非常丰富的库,也可以像编程一样写测试用例,也支持开发系统关键字。对于开发技术薄弱的测试人员来说也可以上手,使用比较简单。
3. 接着我们需要Android SDK;
因为需要用到Android SDK中的 uiautomatorviewer工具,它可以通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。
4. 最后我们需要Appium服务。
因为Appium支持ios和android平台上的移动原生应用、移动Web应用和混合应用,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。
详情参考笔者另外两篇博文: Python Robot Framework 环境搭建 Android SDK Appium 环境搭建
二、设备选择
1. 直接连接真机: 打开开发者选项 -> USB调试。
>>>
2. 或者使用模拟器: 因为Android AVD模拟器对PC硬件有要求,所以我推荐一个比较好用的模拟器Genymotion。
链接: https://pan.baidu.com/s/1iSAWPnnFSOCFVVsPtgHA4g 提取码: qdi9
安装:直接双击下一步即可。
使用: 打开虚拟机,选择一个模拟器下载即可使用。
详情参考另外一篇博文: Android模拟器Genymotion使用详解
三、控件查看
1. 打开uiautomatorviewer工具,点击获取布局,查看控件信息。
四、项目创建
1. 打开RIDE -> File
2. 创建项目 New Project(类型选择Directory,用于创建测试套件)
3. 创建测试套件 New Suite(右击项目新建,类型选择File,用于创建测试用例)
4.创建测试用例
5. 创建资源 New Resource(右击项目新建,用于创建关键字)
6. 创建关键字(右击资源新建)
7. 至此,一个简单的测试框架搭建好了
>>>
五、编写用例
1. 在系统关键字上导入AppiumLibrary库
2. 按F5查看AppiumLibrary各种方法
3. 编辑打开应用关键字(可参考 RobotFramework – AppiumLibrary 之关键字Open Application使用)
*** Settings *** Library AppiumLibrary *** Keywords *** 打开应用 Open Application http://localhost:4723/wd/hub platformName=Android platformVersion=5.1.0 deviceName=192.168.186.101:5555 app=${CURDIR}/球酷.apk appPackage=com.datamatch.coolball ... appActivity=com.jdd.datapredict.StartupActivity unicodeKeyboard=True resetKeyboard=True
4. 在测试套件上导入Resource,并加入Suite Setup
5. 查看控件元素,编辑测试用例
*** Settings *** Suite Setup 打开应用 Resource 系统关键字.txt *** Test Cases *** 正常登录 Wait Until Element Is Visible com.datamatch.coolball:id/tabs 30 #等待菜单栏显示 Click Element name=我的 #点击-我的 Click Element name=登录/注册 #点击-登录 Clear Text com.datamatch.coolball:id/userName #清空用户名输入框 Input Text com.datamatch.coolball:id/userName 18851507044 #输入用户名 Input Password com.datamatch.coolball:id/password Leo5208. #输入密码 Click Element name=立即登录 #点击-立即登录 Element Should Be Visible com.datamatch.coolball:id/iv_userLevel #检查等级标签是否显示 ${text} Get Text com.datamatch.coolball:id/userName #获取用户昵称 Should Be Equal As Strings ${text} Leoo #检查用户昵称是否正确 清空消息 Wait Until Element Is Visible com.datamatch.coolball:id/iv_message 30 Click Element name=清空 Click Element com.datamatch.coolball:id/tv_msg_clear ${text} Get Text com.datamatch.coolball:id/empty_text Should Be Equal As Strings ${text} 抱歉,暂无数据 Click Element accessibility_id=Navigate up 退出登录 Wait Until Element Is Visible com.datamatch.coolball:id/userName 30 Click Element com.datamatch.coolball:id/userName Click Element name=退出登录 Element Text Should Be com.datamatch.coolball:id/userName 登录/注册
6. 测试用例实现流程图
六、执行测试
1. 打开appium客户端并启动(或者命令行输入appium启动)
2. 启动模拟器(或者连接真机)
3. 切回RIDE点击运行(或者快捷键F8)
七、分析结果
查看报告或日志(或者快捷键Ctrl R/L)