0%

RobotFramework 入门级概览

基于 RobotFramework 官方的 Quick Start 简化而成,包括了安装,编写,执行,查看等基本流程.

安装

pip install robotframework

pip install docutils # 可选

编写

测试目标是一个登陆模块,涵盖了注册 / 登陆 / 修改密码的命令行工具,编写一个测试脚本对其功能进行验证.

测试脚本的官方术语叫测试数据 (Test Data), 测试数据分为四个部分,Settings/Test Cases/Keywords/Variables. 每个部分以 * 号开始,可以加任意空行提高可读性.

关键字和参数直接用两个或以上的空格分隔,建议使用 4 个,是否需要上下行对齐看个人洁癖情况.

Settings 部分主要是引入库 / 资源文件 / 变量文件;测试套的元数据如 Setup/Teardown/timeout 等;

Testcase 就是用例,用例内每行一个步骤,每个步骤以关键字为核心,关键字右侧是关键字的参数,左侧是关键字的返回.

Keywords 是用户自定义的由其他关键字组成的更高抽象层次的关键字,可以设定参数和返回值.

Variables 是该常量定义区,里面也可以使用系统内建的变量.

以下用例针登录模块的部分测试用例的实现,本文并不会详细展开实现细节,将在后续文章逐渐涉及.

overview.robot

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
*** Settings ***
Library OperatingSystem
Suite Setup Clear database

*** Test Cases ***
Login with nobody
${resp} Login nobody P4ssw0rd
should be equal as strings ${resp} Access Denied

Create and log in
${resp} Create user Tony P4ssw0rd
should be equal ${resp} SUCCESS
${resp} Login Tony P4ssw0rd
should be equal as strings ${resp} Logged In

*** Keywords ***
Clear database
remove file ${database_path}

Run target
[Arguments] ${option} ${username} ${password} ${new_password}=${None}
${full_path} set variable ${targets_dir}${/}login.py
${resp} run python ${full_path} ${option} ${username} ${password}
[Return] ${resp}

Create user
[Arguments] ${username} ${password}
${resp} Run target create ${username} ${password}
[Return] ${resp}

Login
[Arguments] ${username} ${password}
${resp} Run target login ${username} ${password}
[Return] ${resp}

*** Variables ***
${targets_dir} ${CURDIR}${/}..${/}targets
${database_path} ${temp_dir}${/}robotframework-quickstart-db.txt

执行

RobotFramework3 使用 robot 作为主要命令,旧版 2.9 及以前使用 pybot 作为主要执行命令,功能一致。最基本的命令行格式 robot <脚本路径>

假设使用本文提供的样例脚本,git clone XXXX

执行截图

结果

测试用例执行后,首先生成的是 xUnit 兼容的 xml 文件,里面记录了测试执行的输出,然后从 output.xml 文件中解析生成用于调试查看的 log.html 和查看整体结果的 report.html 报告文件.

被测对象 login.py

程序来源: https://github.com/robotframework/QuickStartGuide

该程序是 RobotFramework 官方 Quick Start 教程的被测程序,以下简单说明其功能.

该程序是一个简单的用户登录例子,这是个命令行实现的验证程序,允许调用者进行以下三个操作:

  • 用合规的密码创建用户
  • 用有效的账号和密码登录
  • 修改现有账号的密码

以下是一些调用的实例:

不存在的用户使用合规的密码登录,将得到一样的错误提示

1
2
> python sut/login.py login nobody P4ssw0rd
Access Denied

创建用户之后,可以成功登录

1
2
3
4
5
> python sut/login.py create fred P4ssw0rd
SUCCESS

> python sut/login.py login fred P4ssw0rd
Logged In

密码合规的验证规则: 7-12 位,必须包含大小写字母和数字,但不允许包含特殊字符.

1
2
3
4
5
6
> python sut/login.py create fred short
Creating user failed: Password must be 7-12 characters long

> python sut/login.py create fred invalid
Creating user failed: Password must be a combination of lowercase and
uppercase letters and numbers

修改密码的用例:

1
2
3
4
5
6
7
8
> python sut/login.py change-password fred wrong NewP4ss
Changing password failed: Access Denied

> python sut/login.py change-password fred P4ssw0rd short
Changing password failed: Password must be 7-12 characters long

> python sut/login.py change-password fred P4ssw0rd NewP4ss
SUCCESS

该应用程序使用简单的” 数据库” 去保存用户的信息,其实是保存在操作系统的临时文件所在的目录,文件名默认为 robotframework-quickstart-db.txt