51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5180|回复: 7
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    奋斗
    2023-3-4 10:30
  • 签到天数: 660 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2015-8-11 16:35:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 w_d775 于 2015-8-11 16:38 编辑

    万事具备,只欠编码!

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

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

    1. *** Settings ***
    2. Library           AppiumLibrary
    3. *** Variables ***
    4. ${REMOTE_URL}     http://192.168.1.6:4723/wd/hub
    5. ${PLATFORM_NAME}    iOS
    6. ${PLATFORM_VERSION}    8.3
    7. ${DEVICE_NAME}    iPhone 5s
    8. ${APP}            /Users/admin/xxx_ios/xxx/build/Debug-iphonesimulator/xxx.app
    9. ${User}           138****6789
    10. ${Password}       888888
    11. *** Keywords ***
    12. Setup
    13.     Open Application    remote_url=${REMOTE_URL}    platformName=${PLATFORM_NAME}    platformVersion=${PLATFORM_VERSION}    deviceName=${DEVICE_NAME}    app=${APP}
    14.     Short Sleep
    15.     Swipe    500    200    100    200    500    #滑动
    16.     Short Sleep
    17.     Swipe    500    200    100    200    500    #滑动
    18.     Short Sleep
    19.     Click Element    xpath=//UIAApplication[1]/UIAWindow[1]/UIAButton[1]    #点击立即体验
    20.     Short Sleep
    21. Teardown
    22.     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来关闭所有应用即可。

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

    1. TestCase 验证登录   
    2.     Click Element    name=登录/注册
    3.     Short Sleep
    4.     Input Value    xpath=//UIAApplication[1]/UIAWindow[1]/UIATextField[1]    ${User}1    #输入错误用户名
    5.     Input Text    xpath=//UIAApplication[1]/UIAWindow[1]/UIASecureTextField[1]    ${Password}    #密码
    6.     Click Element    name=登录
    7.     Page Should Contain Element    name=登录    #停留在登录页面
    8.     Input Value    xpath=//UIAApplication[1]/UIAWindow[1]/UIATextField[1]    ${User}    #正确用户名
    9.     Input Text    xpath=//UIAApplication[1]/UIAWindow[1]/UIASecureTextField[1]    ${Password}a    #输入错误密码
    10.     Click Element    name=登录
    11.     Page Should Contain Element    name=登录    #停留在登录页面
    12.     Input Value    xpath=//UIAApplication[1]/UIAWindow[1]/UIATextField[1]    ${User}    #正确用户名
    13.     Input Text    xpath=//UIAApplication[1]/UIAWindow[1]/UIASecureTextField[1]    ${Password}    #输入正确密码
    14.     Click Element    name=登录
    15.     Short Sleep   
    16.     Element Name Should Be    xpath=//UIAApplication[1]/UIAWindow[1]/UIATableView[1]/UIAStaticText[5]    xxx    #验证登录后显示的用户是指定的用户
    复制代码

    这里首先是有两个负面测试验证:分别输入错误的用户名和输入错误的密码后进行登录,期待结果应该是登录失败,仍在登录页面;之后是正面验证,输入正确的用户名和密码后就应该登录成功并能显示出该用户的用户名,脚本都很简单,就不再赘述。


    待续,请持续关注...


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏4
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-9-24 16:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2015-9-23 15:52:51 | 只看该作者
    如果待测的app文件是ipa文件,只需修改APP为该文件?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-3-4 10:30
  • 签到天数: 660 天

    连续签到: 1 天

    [LV.9]测试副司令

    4#
     楼主| 发表于 2015-9-23 17:19:19
    chaooe 发表于 2015-9-23 15:52
    如果待测的app文件是ipa文件,只需修改APP为该文件?

    我们是在模拟器中进行测试的,使用持续集成自动从版本控制系统取得最新的源代码并进行编译再开始测试的。
    如果是采用真机进行测试,应该是先安装好该APP,之后修改APP为该文件。
    具体可参考Appium官网的相关介绍
    支持 反对

  • TA的每日心情
    擦汗
    2015-9-24 16:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2015-9-24 15:21:13 | 只看该作者
    chaooe 发表于 2015-9-23 15:52
    如果待测的app文件是ipa文件,只需修改APP为该文件?

    我们是在模拟器中进行测试的,使用持续集成自动从版本控制系统取得最新的源代码并进行编译再开始测试的。
    如果是采用真机进行测试,应该是先安装好该APP,之后修改APP为该文件。
    具体可参考Appium官网的相关介绍

    没有该应用的源代码,只有发给我们一个ipa文件。这样也可以用appium来做自动化?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-9-24 16:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
    发表于 2015-9-24 15:27:14 | 只看该作者
    chaooe 发表于 2015-9-24 15:21
    chaooe 发表于 2015-9-23 15:52
    如果待测的app文件是ipa文件,只需修改APP为该文件?

    是不是直接可以修改成这样
    ${APP}            /Users/admin/xxx_ios/xxx/build/Debug-iphonesimulator/xxx.ipa
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-9-24 16:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2015-9-24 15:57:34 | 只看该作者
    chaooe 发表于 2015-9-24 15:27
    是不是直接可以修改成这样
    ${APP}            /Users/admin/xxx_ios/xxx/build/Debug-iphonesimulator/x ...

    我看哪个官网上说的是需要An Apple Developer ID and a valid Developer Account with a configured distribution certificate and provisioning profile.
    An iPad or iPhone. Make sure this has been set up for development in Xcode. See this article for more information.
    A signed .ipa file of your app, or the source code to build one.
    A Mac with Xcode and the Xcode Command Line Developer Tools.

    我只有一个ipa文件。。。。不好搞啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-3-4 10:30
  • 签到天数: 660 天

    连续签到: 1 天

    [LV.9]测试副司令

    8#
     楼主| 发表于 2015-9-25 08:20:09 | 只看该作者
    是的,你的环境还不满足啊。
    没有苹果机就要用虚拟机搞个黑苹果了。
    A Mac with Xcode and the Xcode Command Line Developer Tools.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-8-23 15:39
  • 签到天数: 44 天

    连续签到: 1 天

    [LV.5]测试团长

    9#
    发表于 2015-11-23 15:01:00 | 只看该作者
    学习了,谢谢分享!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 19:00 , Processed in 0.071164 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表