Robot Framework->对Web页面进行测试
作者:强哥   类别:测试开发    日期:2018-01-25 12:16:34    阅读:2591 次   消耗积分:0 分




实验简介


本节实验主要为大家讲解如何利用Robot Framework结合常用的关键字完成对Agileone系统中的“需求提案”模块进行GUI级别的自动化测试脚本开发。

 

实验目的


(1) 掌握RF的Selenium库的常用关键字及用法。

(2) 能够熟练运用Slenium库来完成GUI级自动化测试脚本开发。

(3) 掌握在RF中对话框或确认框的处理方法。

 

实验流程


1. 实现Agileone的登录与断言


20180125_115730_449.png 


我们对上述脚本进行简单的解释:


(1) 第2行:Wait Until Element Is Enabled,等待某个元素可用,后面跟的是一个“ID”属性为“username”的元素,无论这个元素是什么类型。

(2) 第6行:Sleep 3s,这是RF内置库的关键字,表示等待3秒钟。

(3) 第7行:Page Should Contain Element,用于断言,表示当前页面中应该包含一个超链接且文本内容为“个人设定”。


通过关键字和对应的参数,我们可以看出,与我们直接用原生的代码写一个方法,并传递相应的参数是类似的。当然,由于我们在前面的实验中已经知道如何使用Selenium IDE来进行简单的测试脚本开发,所以对于RF的关键字驱动其实并不陌生,两者唯一的区别是RF的功能更加强大,也获得了更多的支持和更好的发展。

 


2. 需求提案的新增功能测试


20180125_115745_605.png 


在上述测试脚本中,我们看到了一些陌生的用法,现解释如下:


(1) 第4行:“${random}  Evaluate  random.randint(10000,99999)  random”,这行脚本的主要目的是利用RF的关键字“Evaluate”来调用Python的random库中的方法randint()来生成一个5位数的随机整数并赋值给变量${random},供后面的步骤中自动生成一条需求提案的标题和内容。

(2) 第5行:第三个参数“这是提案的标题-${random}”则是用于获取上一行的${random}变量的值。

(3) 第6行:Execute JavaScript,事实上这跟WebDriver中执行JS脚本是一样的用法。所以在此行脚本中,我们直接调用了Agileon中的在线HTML编辑器的JS函数:“setKEContent”来完成对内容的操作,也同时为大家演示如何利用关键字执行JS脚本。

(4) 第9行:在当前页面中通过关键字“Get Text”获取到ID属性为“msg”的元素的文本,并赋值给变量${actual},用于后续步骤的断言。

(5) 第10行:表示变量${actual}的期望结果应该包含“新增数据成功”这一段文本内容人,这是一个简单的包含关系。当然,我们也可以使用关键字“Should Match”来设置正则表达式以适应更多的断言检查。

 

3. 删除一条需求提案:


20180125_115754_387.png

 

此处关于对话框或确认框的使用,与Selenium的早期版本Remote Control有非常类似之处。如果我们需要点击对话框上的“确认”按钮,则需要先调用关键字“Choose Ok On Next Confirmation“,当然,这也是默认设置。如果需要点击对话框上的“取消”按钮,则必须调用关键字“Choose Cancel On Next Confirmation”来完成设置,并在最后调用关键字“Confirm Action”即可。

 

4. 最终的RF脚本

*** Settings ***
Library           Selenium2Library
 
*** Test Cases ***
AgileonLogin
    [Documentation]    这是专门用于测试Agileone系统的登录功能的脚本。
    [Tags]    Agileone    # Agileone
    Open Browser    http://localhost/agileone    firefox
    Wait Until Element Is Enabled    id=username
    Input Text    id=username    admin
    Input Text    id=password    admin
    Click Button    id=login
    Sleep    3s    等待页面加载完成
    Page Should Contain Element    link=个人设定
 
AgileoneProposal
    Click Element    link=※ 需求提案 ※
    Sleep    3s
    Page Should Contain Element    id=headline
    ${random}    Evaluate    random.randint(10000,99999)    random
    Input Text    id=headline    这是提案的标题-${random}
    Execute JavaScript    setKEContent('content', '这是提案的内容-${random}');
    Click Button    id=add
    Sleep    3s
    ${actual}    Get Text    id=msg
    Should Contain    ${actual}    新增数据成功
 
AgileoneDelete
    Choose Ok On Next Confirmation
    Click Element    xpath=//label[@onclick='doDelete(this)']
    Confirm Action
    Sleep    5s
    Close Browser
 
*** Keywords ***

 思考练习

(1) 上述的脚本中是否还有值得改进的地方,请尝试进行优化。

(2) 请基于上述脚本范例,完成对Agileone或其它系统的自动化测试开发。




为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20181009_153045_341.jpg

   
版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/84
上一篇: Robot Framework->安装配置与基础使用
下一篇: Robot Framework->对协议级接口进行测试
提示:登录后添加有效评论可享受积分哦!
最新文章
    最多阅读
      特别推荐
      回到顶部