Robot Framework->对Web页面进行测试
本节实验主要为大家讲解如何利用Robot Framework结合常用的关键字完成对Agileone系统中的“需求提案”模块进行GUI级别的自动化测试脚本开发。
实验简介
本节实验主要为大家讲解如何利用Robot Framework结合常用的关键字完成对Agileone系统中的“需求提案”模块进行GUI级别的自动化测试脚本开发。
实验目的
(1) 掌握RF的Selenium库的常用关键字及用法。
(2) 能够熟练运用Slenium库来完成GUI级自动化测试脚本开发。
(3) 掌握在RF中对话框或确认框的处理方法。
实验流程
1. 实现Agileone的登录与断言
我们对上述脚本进行简单的解释:
(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. 需求提案的新增功能测试
在上述测试脚本中,我们看到了一些陌生的用法,现解释如下:
(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. 删除一条需求提案:
此处关于对话框或确认框的使用,与Selenium的早期版本Remote Control有非常类似之处。如果我们需要点击对话框上的“确认”按钮,则需要先调用关键字“Choose Ok On Next Confirmation“,当然,这也是默认设置。如果需要点击对话框上的“取消”按钮,则必须调用关键字“Choose Cancel On Next Confirmation”来完成设置,并在最后调用关键字“Confirm Action”即可。
4. 最终的RF脚本
|
思考练习
(1) 上述的脚本中是否还有值得改进的地方,请尝试进行优化。
(2) 请基于上述脚本范例,完成对Agileone或其它系统的自动化测试开发。