小白RF自动化实战

RF自动化脚本编写简介(上传图片太麻烦  文档原件不能附件么?)

 

简介:

RF是RobotFrameWork的简称,一个以python为底层语言编写的自动化测试框架,因其自带很多已经编好的类库,能够很好地适应不同python基础的人来学习及使用,甚至不懂python都可以完成脚本编写

详细介绍参考:

CSDN博客园:https://www.cnblogs.com/tinghai8/p/5714229.html

百度:http://yuedu.baidu.com/ebook/9772c2d0af45b307e9719709

 

脚本编写:

百度文档指导地址:

https://wenku.baidu.com/view/18eac5264b7302768e9951e79b89680203d86b19.html

https://wenku.baidu.com/view/a07e4de7336c1eb91a375db6.html(这个文档初学者一定要看!一定要看!!一定要看!!!  重要的话说三遍^_^!一定要看哦!  好了,不然后面看不懂~

等等,很多资料

以上文档有详细的编写介绍,可以用来熟悉RF工具,我这里主要写一些后期编写实用的东西。正如网络文档上面所述,RF支持当前主流软件几乎所有类型的自动化测试工作,其主要包括三个方面自动化

1、         web自动化:主要指web页面的自动化工作,

使用类库:Selenium2Library

优点:简单易学易编写

缺点:web脚本过多的依赖于网页元素的稳定性,后期维护会变的困难,且工作量大

2、         接口自动化:主要指借助协议接口调用及数据传输和服务器交互的测试。分为REST接口自动化和SSH类api接口测试。REST接口自动化:使用HttpLibarary.HTTP库,通过http类协议做数据传输和服务器交互

SSH类api接口测试:使用SSHLibarary库,通过ssh协议连接服务器进行测试,

优点:稳定性、容错性较好,运行速度快,维护成本低

缺点:需要了解一定入门级的接口及网页编辑原理,上手较为困难

3、         app类自动化:主要指适用于各类app自动化测试,如安卓系统,这里不赘述,有需要请了解以下文档:

https://wenku.baidu.com/view/e29fc881d1d233d4b14e852458fb770bf78a3b45.html?from=search

介绍完了,言归正传,下面进入结合项目自动化工程创建说明

由UDP数据平台项目为例:

一、创建工程:

每个自动化工程建议有以下几部分以方便工程后期扩展及统一管理:(在这里创建的每一个目录都对应本地目录层级,也可以本地创建好目录后用RF打开,如:)

 

我的工程存放在D盘,这样对应更清晰,有人说怎么多了个.idea目录,这个是Python包创建时自动添加的,有兴趣可以研究下

1、         脚本目录:同禅道目录层级,用于存放自动化脚本和用例一一对应。

2、         关键字目录:用于存放项目编写的公共方法及封装的关键字(方法)

3、         测试数据目录:存放测试数据,如json文件,测试输入准备数据等

4、         参数目录:存放提前设置好的全局变量,用于后期引用

 

 

二、创建关键字、编写公共方法:

按找基础文档可以封装RF提供的库以完成自己需要的关键字,这里不赘述,但有些时候我们需要自己编写python方法或者自带库无法完成封装或者太麻烦怎么办?没关系,这里为大家介绍一下:

 

可以看到,这里的脚本中公共方法不是RF自带库,也不是通过封装形成,而是我自己编写的,RF中引用分为三种类型

 

Python库:就是自己写的python文件,如python编辑器里打开的自动化工程:

 

这里的.py文件在RF工具中不显示,但可以引用,具体引用在脚本编写中讲

资源文档:

存放封装方法的文档,一般为txt

参数变量:

存放变量,引用后脚本编写可用

 

 

 

创建关键字:

关键字就是自己编写的python方法,如下图中的check_login()

 

创建变量时,一般会在目录中创建一个interface.txt的resouce文件。然后通过将.py文件先引用到interface上面,然后脚本调用时统一引用

 

关键字创建好后如何引用:

 

 

三、创建变量

看图(图有点丑~)说话:同关键字一样,先创建一个interface文件将自己创建的变量表引用至interface中,此时引用时使用resource,而不是library,如下下图:

 

Interface引用变量:

在interface文件中点resource然后找到变量文件ok就行!

 

 

说说上图中var_for_udp变量表中的变量都是脚本编写会经常遇到且值不会变的参数,我们创建好后方便使用。

 

 

 

 

 

 

 

 

 

 

四、脚本编写

好了,这里划重点了,以上的步骤都是为这里做铺垫!此章学会,逢考必过!

在脚本编写的时候根据用例的层级模型创建目录,同类脚本放在一个目录下,方便参数和关键字的引用具体过程如下。

1、         在工程目录上右键选择New Directory创建目录层级,

 

2、         完成目录创建后,新建测试套(NewSuite 单元)将同类脚本放入此单元内并在此单元引入脚本所需要的变量和关键字(此处引用后测试套内所有脚本都可以使用!

3、         脚本创建及编写

在上一步创建的测试套上右击新建脚本(New test case),创建完成后脚本界面如下,依次为:

RUN 脚本运行界面:控制脚本运行和运行日志导出查看的界面,在运行日志分析时详细说明

Text Edit 文档编辑界面:此界面是直接编辑脚本保存的txt文档以达到修改编辑脚本的目的(点开看一下就明白了!)

Edit 脚本编辑界面:当前截图所示界面,用以全面编辑脚本,设置前后置等

Settings 界面设置:管理脚本配套设置界面

Documentation 文档说明:此处用来说明脚本,一般用来存放完整用例以保证脚本忠诚度

Setup 脚本前置:脚本运行前运行的关键字,一般用来运行测试数据或环境准备

Teardown 脚本后置:脚本运行后运行的关键字,此处无论脚本运行结果成功与否都会执行,相当于编程语言中异常处理的finally语句块,一般用来清理测试数据和恢复测试环境

Timeout 超时时间: 脚本运行的超时时间,如果脚本运行时间大于这里设定的时间就会运行失败,标记block或者failed

Tags 脚本标记:批量运行时用于控制和识别脚本,有兴趣下来了解

Template 模板:脚本模板,用来限制参数数据?不太好懂,也比较少用,有兴趣下去了解

 

 

 

创建完成后需要进行编写,脚本编写时使用内置库请参考说三遍要看的那个PPT,这里介绍使用自定义库

①在脚本编写时需要先引用之前编写好的方法和定义好的公共变量,举个栗子:有两个测试套种都使用了自定义的方法如下图

此测试套未引用interface文件,关键字不识别,不可用,但变量时全局的,可以用

此测试套正确引用,使用正常。

回到脚本编写步骤,在测试套引用关键字时候只需要引用之前创建并引用好关键字的interface文件即可,使用resource引用,结果如下

 

然后回到脚本编辑界面,就可以愉快的编写脚本了。

要注意的是在自定义方法引用后会自动首字符大写,这个是python自动生成。引用时我们可以Ctrl+Alt+Space联想,如下图

 

 

完整的脚本如下图所示根据方法的入参方式和个数,在关键字右侧输入入参,使用变量在关键字前接受关键字返回值

如login.check_login方法是在login包下的一个验证码识别登陆的方法,方法入参需要登陆的url,用户名及密码,及图片输出路径,return返回登陆后分配的cookie值

 

五、脚本运行:

看下脚本运行界面,红框中是做启停等操作界面的输入键

红色箭头分别表示:

运行状态:绿色表示运行通过,红叉表示运行失败

Log :用于打开运行日志界面,是保存在本地的html文件

其他键位如其名

 

 

在脚本运行失败后,我们要分析日志查看失败原因,一般失败会有以下三个问题引起:

①  版本问题:

脚本状态及编写无问题,环境正常仍运行失败,说明索要执行的用例不通过,版本有问题,此时建议根据手动去验证结果

②脚本问题

是因为脚本逻辑导致的代码运行错误,分析后调试脚本,确保脚本代码逻辑正确,运行稳定

③环境问题:

因脚本运行环境或产品服务器突发异常导致的脚本失败,修复环境后重新运行

 

日志界面  通过log键打开日志如下

 

点击测试套/脚本对应的右边绿色条可以打开详细信息

 

 

 

根据对应的关键字运行信息进行脚本运行结果分析,

 

你可能感兴趣的:(Testing)