主要介绍 Robot Framework 的一些基本概念,如何写一个测试用例。
1. 基础元素
1.1 关键字 - keywords
Robot Framework 关键字类似函数。分为系统关键字和用户自定义关键字。
- 系统关键字,通过加载 Library 引入
- 用户关键字,通过加载 Resource 引入
1.2 库 - Library
库用来封装和复用关键字。Robot Framework 库包括系统库和用户自定义库。
- 系统库,如 XML、String 等
- 用户自定义库。单独安装的一些第三方库,如 seleniumlibrary 等。也可以是自己写的一些 Python 文件,比如 send_mail.py 等。
1.3 测试用例 - Test Case
按顺序组合的一些关键字与测试数据的集合,用于测试某个场景。若干个测试用例,构成一个测试套件。
1.4 资源 - Resource
资源文件的整体结构和测试用例文件一样, 只不过其中不能包含测试用例。
1.5 测试套件 - Test Suite
一个测试套件就是一个 txt 文件,里面包含多个测试用例,包括四个部分的内容。
- Setting
- Variable
- Test Case
- Keyword
1.6 变量 - Variable
变量有三种类型:
- 标量 scalars,引用方式:
${SCALAR}
- 列表 lists,引用方式,
@{LIST}
- 字典 dictionaries,引用方式:
&{DICT}
此外,环境变量可以直接使用 %{ENV_VAR}
引用
1.7 数据类型
- 字符串:
${variable},${test}
- 数值型:
${80},${1.2}
- 布尔值:
${true},${false}
- Null/None值:
${None},${null}
- 空格、Empty:
${SPACE},${EMPTY}
2. 目录结构
可以先在本地建立,下面结构的目录,然后使用 RIDE 打开项目文件即可:
|
|
如果需要维护的变量、用例少,那么直接使用一个文本即可。如果需要维护大量变量、用户时,再将文件拆分为文件夹,在文件夹中创建各个模块的文件,进行维护。
3. 开始写一个测试
3.1 一个测试用例的结构
- 一些初始化操作
- 对需要测试的页面进行一些测试操作
- 校验页面的表现是否符合预期
3.2 一个简单的测试用例
global.txt
|
|
为了方便维护,将全局变量,定义在单独的一个文件里面。case/login.txt
|
|
这是一个简单的测试用例,实现的功能是打开一个登陆链接,然后输入用户名和账户密码,最后登陆跳转。实际上,Robot Framework 支持 HTML、TSV、TXT、reST 等多种描述格式。不同的格式文件,Robot Framework 使用的解析器不同。以 TXT 为例。第一列表示的是测试用例名,意思是这个测试用例命名为 登陆
。第二列,有两种情况,关键字或变量。上面提到,关键字是 Robot Framework 中的一等公民,可以理解为函数。函数分为有返回值和没有返回值的。如果使用的是有返回值的关键字,那么从第二列开始的若干列都可能被用于接受返回值,一直到遇到关键字为止。如果关键字没有返回值,则第二列就是需要使用的关键字。比如,这里的 Open Browser
,Maximize Browser Window
都是关键字。关键字的后续列会作为参数传递给关键字。比如,这里的 id=password
、${password}
等。
3.3 如何使用关键字
看完上面的例子,你可能已经意思到,Robot Framework 里面关键字的重要性了。大量的操作都需要使用到关键字,同时,也需要封装自己的关键字。在 RIDE 中按 F5 可以看到内建和库的关键字,使用帮助文档。在 Web 自动化测试中,最常用的是 selenium2library 库中的关键字。
4. 参考
- https://github.com/davyyy/robotframework-userguide-cn
- http://www.cnblogs.com/farb/p/HowToWriteGoodTestCases.html
- http://robotframework-userguide-cn.readthedocs.io/zh_CN/latest/
- http://robotframework.org/Selenium2Library/Selenium2Library.html