码迷,mamicode.com
首页 > 移动开发 > 详细

Appium+Robotframework实现iOS应用的自动化测试-5:一个简单的例子

时间:2015-06-23 18:08:43      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:appium   自动化测试   robotframework   ios   苹果   

万事具备,只欠编码!

下面看一个简单的示例,这个示例验证常见的登录功能。这个例子的应用是我所在的公司正在研发的,还没有正式上线,就不提供下载路径了。登录功能是很多应用都用的,这个大家都知道是怎样的功能。

首先请看resource.txt文件的代码:

*** Settings ***
Library           AppiumLibrary
*** Variables ***
${REMOTE_URL}     http://192.168.1.6:4723/wd/hub
${PLATFORM_NAME}    iOS
${PLATFORM_VERSION}    8.3
${DEVICE_NAME}    iPhone 5s
${APP}            /Users/admin/xxx_ios/xxx/build/Debug-iphonesimulator/xxx.app
${User}           138****6789
${Password}       888888
*** Keywords ***
Setup
    Open Application    remote_url=${REMOTE_URL}    platformName=${PLATFORM_NAME}    platformVersion=${PLATFORM_VERSION}    deviceName=${DEVICE_NAME}    app=${APP}
    Short Sleep
    Swipe    500    200    100    200    500    #滑动
    Short Sleep
    Swipe    500    200    100    200    500    #滑动
    Short Sleep
    Click Element    xpath=//UIAApplication[1]/UIAWindow[1]/UIAButton[1]    #点击立即体验
    Short Sleep
Teardown
    Close All Applications
简单解释下,因为使用Appium进行测试,所以在Settings中加入AppiumLibrary,同时需要在OS X中安装AppiumLibrary,具体安装方法可参考之前本人的文章Appium+Robotframework实现Android应用的自动化测试-4:AppiumLibrary介绍和安装

之后的Variables中设置好运行Appium所需的参数,具体介绍如下:

${REMOTE_URL}:远程URL,指的是Appium所在的地址以及端口号,之后的/wd/hub为固定格式,请不要改动。

${PLATFORM_NAME}:平台名称,我们在iOS中进行测试,只能写iOS。

${PLATFORM_VERSION}:平台版本,也就是iOS的版本号,这个可通过在OS X的终端中运行指令xcodebuild -showsdks得知版本号,如下图所示,xcodebuild指令的具体用法大家可以自己查找资料

技术分享

${DEVICE_NAME}:设备名称,就算苹果设备的名称,注意要和上面的版本号匹配即可。

${APP}:要测试的App的全路径,注意这个路径指的是相对于Appium所在的机器的路径,也即是OS X所在的机器上的路径,这里使用的是通过xcodebuild指令编译后得到的app文件。

${User} :登录的用户名,因为采用手机号作为登录,所以这里实际上是用户完整的手机号。

${Password}:登录的用户名对应的密码。

Keywords中的Setup会在测试开始执行时自动先执行这里的脚本,首先是通过Open Application关键字安装并打开应用(如果之前已安装,则会自动进行卸载操作),之后因为应用有两幅欢迎界面,故需要通过Swipe关键字执行向左的滑动操作来进入启动页面,之后通过Click Element关键字来点击立即体验的按钮来进入首页。

这里要注意的是因为AppiumLibrary没有关键字执行后等待时长的关键字,这里都用了Short Sleep来用作关键字执行之间的等待时间,Short Sleep关键字是自定义的关键字,其实就是对Sleep x的封装而已,具体等待时长x可以根据实际情况设定。

Teardown会在测试结束后再自动执行这里的脚本,很简单,调用Close All Applications来关闭所有应用即可。

接下来看看具体的登录验证脚本:

TestCase 验证登录   
    Click Element    name=登录/注册
    Short Sleep
    Input Value    xpath=//UIAApplication[1]/UIAWindow[1]/UIATextField[1]    ${User}1    #输入错误用户名
    Input Text    xpath=//UIAApplication[1]/UIAWindow[1]/UIASecureTextField[1]    ${Password}    #密码
    Click Element    name=登录
    Page Should Contain Element    name=登录    #停留在登录页面
    Input Value    xpath=//UIAApplication[1]/UIAWindow[1]/UIATextField[1]    ${User}    #正确用户名
    Input Text    xpath=//UIAApplication[1]/UIAWindow[1]/UIASecureTextField[1]    ${Password}a    #输入错误密码
    Click Element    name=登录
    Page Should Contain Element    name=登录    #停留在登录页面
    Input Value    xpath=//UIAApplication[1]/UIAWindow[1]/UIATextField[1]    ${User}    #正确用户名
    Input Text    xpath=//UIAApplication[1]/UIAWindow[1]/UIASecureTextField[1]    ${Password}    #输入正确密码
    Click Element    name=登录
    Short Sleep   
    Element Name Should Be    xpath=//UIAApplication[1]/UIAWindow[1]/UIATableView[1]/UIAStaticText[5]    xxx    #验证登录后显示的用户是指定的用户
这里首先是有两个负面测试验证:分别输入错误的用户名和输入错误的密码后进行登录,期待结果应该是登录失败,仍在登录页面;之后是正面验证,输入正确的用户名和密码后就应该登录成功并能显示出该用户的用户名,脚本都很简单,就不再赘述。

待续,请持续关注...

本文版权归绿化树所有,欢迎转载,但请注明作者与出处,严禁用于任何商业用途,否则后果自负!

Appium+Robotframework实现iOS应用的自动化测试-5:一个简单的例子

标签:appium   自动化测试   robotframework   ios   苹果   

原文地址:http://blog.csdn.net/wd168/article/details/46605433

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!