基于 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