测试总结-robotframework之UI自动化

今天给大家分享一下,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。


文件夹下打tag

2、在suit下打tag,这样suit下的测试用例都加上了tag号


suit下打tag


suit下打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、执行结果


你可能感兴趣的:(测试总结-robotframework之UI自动化)