阅读本文大概需要 10 分钟,文末有福利。

Robot Framwork 在业界早已名声大振!有很多刚学自动化测试的伙伴问我:有没有不需要编程就可以玩自动化的方法?

有吗?有的!——Robot Framwork

我们今天就一篇文章,把它讲得明明白白!

一、Robot Framwork 简述

Robot Framework 是一款 python 编写的功能自动化测试框架,支持 python2 和 python3 两个版本,是一款开源自动化测试框架,Robot 意思是机器人,Framework 意思是框架,合起来就是机器人框架,他安装之后,桌面是一个机器人图标,也就是我们经常聊起的自动化测试框架,很多人认为他是一个工具,其实不然。

工具:好比日常用的工具,螺丝刀,菜刀等等,他完成特定的功能,比较接口工具,他是专门用于做接口测试的,比如数据库连接工具 navicate,专门用于连接数据库的。

框架:好比我们经常用的 USB 接口,你如果插入耳机,那么这个接口就用于听歌,如果你插入手机,那么就可以连接手机,如果你插入 U 盘,就可以传输文件,框架和工具的主要区别是,框架具有扩展性,他只是个架构,你通过架构可以开发出不同的功能,我们经常听的房子,你先建一个框架,至于你把哪些装修为厨房,哪些装修为主卧,客厅,看你需要来定制。

二、RF 工作原理

我的理解如下:

Robot Framework 是一个完全基于关键字测试驱动的框架,它即能够基于它的一定规则,导入你需要的测试库(例如:其集成了 selenium、request、appium 测试库,这个其实就是他的拓展性),然后基于这些测试库,你能应用 HTML、TXT 等文档形式编写自己的关键字(这些关键字即你的库组成),之后,再编写测试用例((测试用例由测试关键字组成)进行测试。

关键字:就是你导入的测试库的函数,其实你就是调用测试库里面封装的函数,组成你的自动化测试步骤,形成测试用例,需要有一点 python 函数基础,这个后续 RF 章节会重点讲解。

运行原理:框架首先解析数据、初始化数据。然后,开始解析用例文件,生成数据对象,数据对象中包含了测试集的各种数据,例如:测试用例集名称、各个测试用例名称、各个关键字名称等。

再将测试数据对象传送给测试集合类处理,生成测试集 suite 对象

然后,运行 suite 中的用例测试,它利用库提供的关键字与目标系统进行交互。库可以直接与系统通信,也可以使用其他工具作为驱动程序。

从命令行开始测试或任务执行。结果,您将获得报告并以 HTML 格式以及 XML 输出进行登录。这些提供了对系统功能的广泛了解

三、RF 的功能

Robot Framework 是为 “测试"而生,他的目标人群是测试工程师,它的目标和使命注定了 RobotFramework 必须要简单/简洁/亲民/易懂,而这些 Robot Framework 都做到了,这使得 RobotFramework 推出之后,得以快速发展传播。

他生态链里面的测试库有的功能,他都支持,常用的 UI、APP、接口自动化,包括连接数据库,操作 linux 等,都能实现。只要能开发测试库,或者安装官方的测试库就可以实现特定的自动化,因为这是一个自动化平台。

四、RF 的特性

•重要特性之一是"Keyword-driven”(关键字驱动),keyword 类似其他高级语言的函数,使得代码结构化和重复利用,对于我们懂代码的人来说,就是函数,就是方法

•测试用例使用文本文件(TXT 或者 TSV 文件)保存,使用制表符分隔数据。可以方便的使用任何文本编辑器,或者 EXCEL 编辑测试用例。也可以使用 HTML 格式创建用例。

•测试用例中支持变量使用,可以使用 IF 语句和 FOR 循环语句。

•可以利用"标签"功能对测试用例进行分类和有选择执行。

•支持关键字驱动、数据驱动和行为驱动。

•利用已有的关键字,测试人员可以创建自己需要的关键字,对 RF 自动化进行二次开发,和功能定制,可以使用 Python 和 java 开发自己需要的测试库。

•测试执行报告和日志是 HTML 格式,容易阅读。

•提供了测试执行事件的监听接口,并且可以自定义接口中的脚本。例如,某个用例执行前,“start_test"接口中的脚本就会被执行;用例执行结束后,“end_test"接口中的脚本就会被执行。而测试人员可以自定义"start_test"、"end_test"这两个接口的脚本。

•提供了命令行接口和 XML 格式的输出。可以与版本管理工具结合,进行持续集成。

•提供了远程测试执行接口,可以进行分布式测试执行。

五、RF 环境搭建

一、搭建 RF 自动化平台环境

1.python 版本:3.7

python 官网下载: https://www.python.org/

⒉配置 python 环境变量,在"我的电脑->属性->高级系统设置>环境变量->系统变量",找到 path,然后点击编辑,在 PATH 里面添加 python 安装路径,如下图:

3.安装 Robot Framework

pip install robotframework 不兼容Selenium2Library已经使用robotframework-browser测试库
pip install robotframework==3.1.2支持selenium2Library

4.支持 python 图形化界面,主要用来运行 RIDEwxPython

pip install wxpython==4.0.4

5.安装可视化界面 ride

pip install robotframework-ride

6.安装 web 自动化测试库

pip install robotframework-se1enium27ibrar

7.安装接口自动化测试库

pip install RobotFramework-requests

二、配置 pycharm 编辑环境

8.配置 pycharm 编写环境

1.File->Settings->plugins,点击 plug 插件搜索并安装 Robot Framework Support 插件,但是 IntelliBot 这款插件,最新更新时间还在 2016 年,近 3 年都没有在维护(注意!!! 安装完成之后一定要重启 pycharm)

2.重启 pycharm

3.设置可以运行 RF,File->Settings->Tools->External Tools,robot.exe

注意:

•1、选中关键字,按 Ctrl+b 可直接跳转到关键字的源代码当中去。

•2、没有 robot 关键字自动补全的机制。关键字名称需要自己查找。

•3、左侧 Projects 区域当中,没有可用关键字展示功能。

3、RF 控制台中文乱码

修改

Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py**

中 565 行将 SYSTEM 修改为 OUTPUT,位置如图所示:

一般 python 安装路径存在中文文件夹的情况会出现:

Lib\site-packages\robotide\contrib\testrunner 目录下 testrunner.py 中将 latinl 修改为 mbcs。(mbcs 为多字节字符集,会根据系统自动显示为对应的语言字符集,中文系统中展示 GB2312)

六、RF 实现接口自动化

1.安装 robotframework-requests

pip install robotframework-requests
'RequestsLibrary` is a Robot Framework test library that uses the Request HTTPclient .
pip install request

七、RF 实现 web 自动化

pip2 install robotframework-selenium2 library

八、RF 实现 app 自动化

1.下载SDK,JDK
2.配置SDK和JDK环境变量在系统环境变量里面配置
1).必须添加ANDROID_HOME变量值指向SDK的根目录
2).在path里面添加%ANDROID_HOME%\ too7s ;%ANDROID_HOME%\p1atform-too1s
只有配置好我们才能用adb命令
3).配置JDK环境变量
3.安装Appium服务端和客户端
1).安装node .js:node-v6.11.2-x64 .msi
2).安装监听端: pip install Appium-Python-client
3).安装服务端: appium-desktop-setup-1.8.1.exe
如果报错安装: network4.5 : NDP451-KB2858728-x86-x64-All0S-ENU.exe
4).安装appium第三方库: pip install robotframework-appiumlibrary

文章首发于公众号:程序员一凡,转载请注明出处!


↙↙↙阅读原文可查看相关链接,并与作者交流