知识点--建立Robot Framework开发环境
- 安装 Robot Framework 以及常用模块
- 认识 Robot Framework 测试架构
- 认识关键字(Keywords)、测试案例(Test Cases)、设置(Settings)
- 如何执行 Robot Framework
- 利用原生 python 产生特殊函式
- 引用函式及传递变数
- 产生测试报表
安装 Robot Framework 以及常用模块
- 打开Xfce
- 安装最新版 Robot Framework
$ sudo pip install robotframework
- 使用 pip 安装 python 相依套件,一般来说 python 套件跟 Robot Framework 关键字库都是成对安装
$ sudo pip install --upgrade pip
# HTTP server test
$ sudo pip install requests robotframework-requests --upgrade
- 也可以在产生 requirements.txt ,以后每次作实验就可以一个指令安装完所有需要的套件
# Generate requirements.txt
$ echo -e "robotframework >= 3.0.2\nrequests > 2.2.0\nrobotframework-requests > 0.4.3" > requirements.txt
# Install by requirements.txt
$ sudo pip install -r requirements.txt --upgrade
- 确认安装成功
$ robot --version
Robot Framework 3.0.2 (Python 2.7.6 on linux2)
Robot Framework测试架构
Robot Framework 基于 python ,由 Test Libraries 提供的API测试不同的应用,基本上它可以做所有 python可以做的事,不同点是 Robot Framework 将 Library 、 Test Cases、Data 之间利用关键字的概念介接起来,发挥 ATDD 将技术跟非技术人员讨论整合的基础,由用户发起需求,工程师实作功能关键字,再交由 QA 用关键字拼凑出测试实例交付用户实施验收测试。
代码架构
- 设置(Settings)
设置整个 Test Suite (测试套件)的相关资讯、包含库等等,也可以用 Resource
来引入自己写的 robot 档案,單行註解是以 #
開頭。
*** Settings ***
Documentation A hello world test suite for Shiyanlou
... Just output some message on console
Library String
#Resource keyword.robot
- 变量(Variables)
在这个区域中可以定义变量,如果在 Keywords 或是 Test Cases 就必须使用 Set Variable
关键字,可定义一般变量或是 Dictionary (字典)。特别要注意的是 Robot Framework 变量名称并不含大小写跟下划线,${showMessage}
、${show_message}
、${Show_Message}都代表相同的变量。
*** Variables ***
${ACTION} hi
@{MESSAGES} world shiyanlou
-
关键字(Keywords)
关键字设计是 Robot Framework 的核心,可以在关键字中再利用其他关键字组成复杂的动作,类似函数的概念,
[Arguments]
可带入变量,而[Return]
可将变量带出关键字。
*** Keywords ***
Print Welcome Message
[Arguments] ${act} ${message}
Log To Console ${act} ${message}!!
[Return] Success
- 测试案例(Test Cases)
测试案例一般依照 User Story 撰写,一如验收系统功能的精神是在不知道系统的介面及实作细节的前提下,用户或 QA 一样知道系统该做什麽。因此,把系统功能步骤以自然语言的描述方式留在 test case 层级,实作细节留在 关键字 / 库,并把常用的实作细节抽出来方便重複引用。注意测试案例是循序由上执行到下,所以测试案例之间的状态跟资料会影响到测试结果。
下方的例子遍历 @{MESSAGES}
并且将变量传到关键字 Print Welcome Message
,最后印出关键字回传的结果:
*** Test Cases ***
Should See Welcome Message and Result
:FOR ${message} IN @{MESSAGES}
\ ${result} = Print Welcome Message ${Action} ${message}
\ Log To Console Result: ${result}
如何执行robot framework
将上述的设定、变量、关键字、测试案例组合成一个 helloworld.robot
档案,再执行下列指令就可以看到结果。
$ robot helloworld.robot
也可在执行 robot 时用 -v
参数带入变量,可发现原本在档案中定义的 ${ACTION}
已经由 hi 变为 hello。
$ robot -v Action:hello helloworld.robot
产生测试报表
Robot Framework 执行完毕会生出 report.html、log.html、output.xml三个档案,打开实验环境的 Firefox 并在网址列输入 file:///home/shiyanlou/log.html
可清楚看到测试案例是否成功,执行细节跟时间等讯息,更棒的是 output.xml 符合 JUnit XML 格式,可以利用 plugin 将其导入 Jenkins。
小结
实验做到这边相信同学已经知道怎么撰写一个简单的 Robot Framework 自动测试,下一个实验会带来更多实作细节。