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

万事具备,只欠编码!

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

首先请看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    #验证登录后显示的用户是指定的用户

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

待续,请持续关注...

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

时间: 2024-10-23 21:24:35

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

Appium+Robotframework实现iOS应用的自动化测试-4:OS X中安装和启动RIDE

有两种方式进行Appium测试: 1. 远程方式进行Appium测试:在Windows系统中启动RIDE并运行测试,这种方式的好处是方便,简单,但在一开始可能因为配置的问题测试跑不起来: 2.本地方式进行Appium测试:就是直接在OS X中启动RIDE并运行测试,这种方式的好处是直接,能够很直接的得到测试结果,但不是很方便,毕竟大家平时还是主要使用Windows操作系统. 不管哪种方式,都可以参考之前的文章Appium+Robotframework实现Android应用的自动化测试-4:App

Appium+Robotframework实现iOS应用的自动化测试-1:Appium在OS X中的安装

之前的系列文章介绍了Appium以及结合RobotFramework对Android应用如何进行测试. 从今天开始,我开始介绍Appium+RobotFramework如何测试iOS应用. 测试iOS应用相比测试Android应用要稍微麻烦些,主要是Appium一定要在OS X中运行才能跑测试,所以前提条件是需要搭建OS X的环境. 因为没有苹果电脑,所以我的方案是用虚拟机安装好OS X,具体如何安装大家可以在网上查找相关的资料,不过请注意最低需要OS X 10.7,推荐 10.8和10.9,我

Appium+Robotframework实现iOS应用的自动化测试-6:手势密码的解决方案

手势密码在很多应用都会运到,手势密码都要求至少连接4个点,但AppiumLibrary并没有提供对应的关键字,本人尝试连续使用Swipe关键字两次解决该问题,为什么要用两次呢?因为Swipe的参数只是起点和终点,如果直接给出手势密码的起点和重点,则会忽略中间的点,连续使用两次Swipe关键字在Android中偶尔可以成功,但在iOS中则没有一次成功过,为了彻底解决该问题,本人仔细看了Appium的文档,终于所有发现,请看来自于Appium的官方网站的如下截图: 从中我得知手势密码的问题一定可以解

Appium+Robotframework实现iOS应用的自动化测试-2:OS X中启动Appium

安装好了之后,在应用程序中找到Appium,点击其图标,如果一切正常,接着会出现一个Appium启动后的界面窗口,如下图所示. 1.1 iOS Settings 点击顶部的苹果图标,弹出iOS Settings窗口,如下图所示. 在该窗口可以对将要进行测试的iOS应用进行设置,因为接下来我们写脚本来跑测试,所以可以统统不进行设置,保持其默认值即可.如果不在脚本中设置,则需要在这里设置下,不过大部分保持默认值即可,需要进行设置主要有3个: 1.App Path:点击Choose按钮后会弹出选择iO

Appium+Robotframework实现iOS应用的自动化测试-3:一个必不可少的工具介绍

有些读者可能有疑问,iOS的模拟器怎么启动呢?怎么定位界面中的控件呢? 下面我们就来进行介绍: 1.Inspector简介 Inspector从字面上看这个单词的意思是检查员,这里可理解为是一个检查器,那检查什么呢?实际上就是用来检查界面中的控件,可以用它来定位控件,当然它的功能还不仅仅是这个,还可以录制脚本呢. 2.启动Inspector 当Appium处于运行就绪状态中,点击OS X顶部的旋转中的Appium图标,此时会弹出一个下拉菜单,如下图所示. 点击最下方的Show Inspector

Appium+Robotframework实现Android应用的自动化测试-4:AppiumLibrary介绍和安装

Appium是个好东东,Android,iOS都支持,并且居然RobotFramework也支持Appium了,这就是本文要介绍的AppiumLibrary. 通过前面的文章Appium+Robotframework实现手机应用的自动化测试-1:Appium简介,大家知道可以使用多种语言来写Appium的测试脚本,但如果从编写效率和学习曲线上来说,当然是用如RobotFramework的关键字的方式最为简单,所以AppiumLibrary就出现了,从Appium官网可知最新的版本是1.2.5,在

iOS开发UI篇—实现一个简单的手势解锁应用(基本)

iOS开发UI篇—实现一个简单的手势解锁应用(基本) 一.实现效果 实现效果图: 二.手势解锁应用分析 1.监听手指在view上的移动,首先肯定需要自定义一个view,重写touch began,touch move等方法,当手指移动到圈上时,让其变亮.可以通过button按钮来实现. 2.界面搭建 背景图片(给控制器的view添加一个imageview,设置属性背景图片) 九个按钮(把九个按钮作为一个整体,使用一个大的view来管理这些小的view,这些小的view就是9个button.如果使

iOS开发UI篇—实现一个简单的手势解锁应用(完善)

iOS开发UI篇—实现一个简单的手势解锁应用(完善) 一.需要实现的效果 二.应用完善 1.绘制不处于按钮范围内的连线 2.解决bug(完善) bug1:如果在began方法中通知view绘图,那么会产生bug.因为,当前点没有清空,在手指移开之后要清空当前点.可以在绘制前进行判断,如果当前点是(0,0)那么就不划线.或者在began方法中不进行重绘. bug2:无限菊花.自定义view的背景色为默认的(黑色),只要重写了drawrect方法,view默认的背景颜色就是黑色的,因为上下文默认的颜

Appium+Robotframework实现手机应用的自动化测试-2:安装条件

需要建立设定的移动平台用于运行测试.请看以下的平台要求: 如果你想通过npm install运行Appium,对Appium有所贡献(因为它是开源的哦),需要node.js和npm 0.10或更高版本(使用 n 或 brew install node 安装Node.js,确保没有使用sudo来安装Node或者Appium,否则就会遇到麻烦).建议使用最新的稳定版本. 可以使用appium-doctor来检查是否所有的Appium依赖项都没有问题,运行 appium-doctor并提供参数 --i