RF测试用例分层
交互层:把每一个操作的动作封装成用户自定义的关键字
页面层:导入交互层的资源,使用交互曾关键字封装成页面关键字
流程层:流程层使用前面2层的关键字,封装成一个流程关键字
交互层封装
光看文字大概率是看不懂的,这里用我们自己的项目给大家一个实战演练:
觉得很好用很神奇的同学可以学习一下robotframework
1.右键点击,选择new resource ,添加一个名字为maomaoyutest的resource
2
2.选择maomaoyutest,导入library。
3.在maomaoyutest里创建第一个关键字
打开浏览器
- 最大化浏览器窗口
- 输入用户名
- 输入密码
- 输入验证码
输入验证码这边大家如果看不懂可以给大家讲解一下:
首先看官网的样子
验证码图片上的数字每次都是随机的,我们可以通过js代码来去除innertest。
1.创建一个列表
2.循环4次,每次从浏览器中取出一个验证码
3.将取出的每次添加到列表里
4.取出列表的4位连接起来,并且去除两两之间的空格
5.输入到验证码输入框中
这就是这几行代码做的事情,大家可以自行练习
- 点击登陆
这样我们就完成了登陆系统的拆分,然后我们新建一个测试suit
新建测试用例
把我们刚才封装的操作导入到这个suit中
然后我们在login用例里使用这些关键字
勾选login点击run,运行,结果图如下,已经登陆成功
还有以点就是:如果我们在自定义关键字中需要参数化,比如用户名,密码,url等需要输入不同的时候我们可以如下图
然后调整测试用例
至此:登陆页面的交互层封装完毕
业务层封装:
重复交互层封装的新建resource操作,新建业务层的resource
将交互曾maomaoyutest.txt导入到page页面层
新建登陆页面
在登录页面书写脚本
对登录页面关键字的数据参数化
这个就是所谓的登陆页面page的封装,之后我们会用到,接下来介绍一下流程层的封装,也就是测试用例怎么用到交互层和页面层
流程层的封装
相同的操作,新建maomaoyuflow流程层的resource
导入页面层和交互层:
新建一个登陆流程,脚本书写打开浏览器和登陆页面,传入登陆页面的两个参数
如下图,对两个参数进行参数化
然后我们开始编写用例
新建一个suit 登陆
导入 selenium2library,交互层和流程层的resource和library
在登陆suit中新建测试用例login
之后编写用例断言
运行成功
断言定位到登陆后的页面中有一个当前用户的元素判断其文本是否位当前用户
编写一个用户名或密码错误的login2的用例
执行后的结果
然后在交互层封装一下我们的断言
在简化我们的用例
新建关闭浏览器的关键字
因为在suit中有一个setup 和 teardown
熟悉单元测试框架的同学应该知道这个是用例开始和结束做的事情
然后修改用例,修改登录流程
登陆的时候不需要关注是登陆成功还是登录失败,所以我们在page层再次封装一个新的关键字,登录检查,注意:判断字符串的双引号
再次修改用例
用例就精简到了登录流程和登陆检查,pass和false分别代表成功和失败的校验,再次执行用例,即可全部成功