今天给大家分享一下,UI自动化测试用例的规范,规范是一个同事写的,觉得很不错,就copy一下,希望他不要告我侵权,哈哈。。。
再总结了一下他文中提到的tag的使用,还有template数据驱动模板的使用,一部分摘自网络,一部分是自己实践的内容,望大家不要见笑
努力学习,大家一块成长,加油
RIDE项目编写规范:
1.项目结构和命名
(1) 一个项目对应一个rf项目
(2) 每个项目下建立前台和后台子目录
(3) 一个模块对应一个测试套件(Test suite),每个套件需编写Documentation,提高可读性
(4) 每个测试套件下用例的命名以套件名开始,下划线拼接,简洁描述用例的测试点
2.标签(tag)的定义(便于执行需要执行的case)
(1) 每个子目录需添加force tag,表明目录下所有套件归属模块
(2) 每个套件需添加force tag,表明该套件的用途,可以套件名参考命名
(3) 每个case需添加default tag,可添加多个,表明用例等级,如level1,代表最高等级
3. 用例编写规范
(1)关于模块(template)的使用
① 为了使用例简洁,对于同一个场景,有较多种入参的情况,尽量考虑使用template模板化
②在每个模版用例的第一行应做好注释每一列的参数名称,提高可阅读性
(2)关于注释
在每个用例中应做好关键步骤的注释,最好使用序号排好序
(3) 关于变量
用例中所有的变量应全部抽离出来,使用Arguments传参或者使用全局变量,提高用例的可维护性和可移植性
(4)关于断言
一条用例的关键在于断言,每条用例需将断言清楚,尤其是高级别用例的关键步骤
4. 自定义关键字(user keyword),变量(scalar)
(1)对于使用频率较高的场景或者功能,考虑封装成关键字
(2) 关键字,变量可以存储在一个独立文件夹
(3) 关键字可分为公共关键字和业务关键字,对于公共关键字,必须附上Documentation便于理解和后期维护
5.其余规范
(1)尽量减少同一个套件中用例的耦合,提高用例的独立性
(2) 用例中尽量少使用sleep(若页面加载超时,做好断言以便跟踪case fail原因),影响用例的执行效率
(3) 如果Robotframework自带的库满足不了需求,或者关键字写起来比较麻烦,可尝试编写python脚本导入
6. 基于Robotframework框架的接口自动化
关于接口的自动化,可以使用python直接编写脚本,如果觉得学习成本较高或者使用教困难,也可以使用rf编写,后面会考虑把封装过的接口请求的python脚本移至到rf,方便大家编写用例的时候使用。
标签tag的使用
首先,为什么要打tag
1、tag的标示可以展示在测试报告、日志中,便于查看用例。
2、可以根据tag统计用例。
3、有了tag,可以执行包含这些tag的用例,或者执行不包含这些tag的用例。
4、根据tag,可以区分出哪些用例是关键用例。
其次,如何打tag
打tag的方式有三种
1、在文件夹下打tag,这样文件夹下的所有用例都已经自动打上该tag。
文件夹下打tag2、在suit下打tag,这样suit下的测试用例都加上了tag号
suit下打tagsuit下打tag
suit下打tag分为两种:一种是Force Tags,一种是Default Tags。
Force Tags:suit下面所有的测试用例都被打上这个tag
Default Tags:suit下面的测试用例如果没有打tag,就会用这个默认tag,如果打了tag,就用自己打的tag。
3、在测试用例上打tag。
测试用例打tag最后,怎么打tag看起来会更便捷
可以在各个文件夹下打文件夹名字的tag,这样就可以根据tag单独的跑该文件夹下的用例,查看测试报告也更好看些。
在一些重要的用例上打上tag,可以单独跑关键用例。
某些用例如果不想执行,可以打上tag,设置不执行。
作者:小叮当爱学习
链接:https://www.jianshu.com/p/f819bf56ad52
來源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
数据驱动之Template模板
在这里我们介绍RobotFramework一个很有用的功能——测试模板。测试用例中的关键字,例如:
执行时,只会执行一次。可有时候我们需要连续执行这个关键字。如果我们连续写这个关键字,用例会显得很臃肿。
RobotFramework提供了一个解决方案,在关键字前面加上一个[Template],表示这个用例是一个“测试模板”。
例如:
执行以上用例:
这个用例里,“log”关键字被连续执行了三次。与普通的关键字写法不同,带有[Template]的关键字的参数不能和关键字同行。每带有一行参数,关键字就需要执行一次。熟悉QTP的朋友是不是觉得似曾相识啊?
需要特别注意的是,一个用例中只能使用一个[Template],不能多次使用。也不能带[Template]的关键字和普通的关键字混合使用。 利用“[Template]”,robotFramework可以轻松的实现数据驱动。
测试模板,关键字驱动 => 数据驱动
关键字驱动, 用例主体由若干关键字+参数构成
vs.
数据驱动, 用例主体只由Template关键字的参数构成
用途举例:
对每个测试用例,或者一个测试文件中的所有用例,重复执行同一个关键字多次(使用不同数据)
也可以只针对测试用例,或者每个测试文件只执行一次
模板关键字可以接受普通的位置参数,命名参数
关键字名中可以使用参数
不可以使用变量定义模板关键字
登录用例:
1、Template模板的使用,前台登录关键字的多次重复使用
2、前台登录关键字的内容
3、多个账户的数据模板
4、执行结果
网友评论