4. 使用内置关键字进行断言
任务说明
在Robot Framework测试中,断言是验证测试结果是否符合预期的核心手段。本案例将使用内置关键字Should Be Equal和Should Contain编写一组登录功能的断言测试,覆盖精确匹配、包含匹配和失败场景,最终通过命令行执行测试并查看报告确认断言生效。
测试用例设计
被测对象为一个模拟的登录处理函数(Python实现),接收用户名和密码,返回登录结果字典。测试用例覆盖以下场景:
- 正确用户名密码返回成功状态;
- 错误密码返回失败状态且包含错误提示;
- 断言失败时测试用例标记为失败并输出对比信息。
实现代码
创建被测Python模块 login_lib.py:
def do_login(username, password):
if username == "admin" and password == "123456":
return {"status": "success", "message": "Welcome admin"}
else:
return {"status": "fail", "message": "Invalid credentials"}
创建Robot Framework测试套件 assertion_test.robot:
*** Settings ***
Library Collections
Library login_lib.py
*** Test Cases ***
验证登录成功
${result}= Do Login admin 123456
Should Be Equal ${result}[status] success
Should Be Equal ${result}[message] Welcome admin
验证登录失败提示
${result}= Do Login admin wrongpass
Should Be Equal ${result}[status] fail
Should Contain ${result}[message] Invalid
验证断言失败场景
${result}= Do Login admin 123456
Should Be Equal ${result}[status] fail
执行与验证
在命令行执行以下命令运行测试:
robot assertion_test.robot
执行完成后,观察输出信息与生成的 report.html:
- 前两个测试用例应显示PASS,说明
Should Be Equal和Should Contain断言通过; - 第三个测试用例应显示FAIL,且日志中展示实际值
success与期望值fail的对比,证明断言失败时能准确定位差异。
判定标准
测试执行完毕后,满足以下条件即表示断言编写正确:
report.html中前两个用例显示绿色PASS,第三个用例显示红色FAIL;- 失败用例的日志中明确列出实际值(success)与期望值(fail),且错误信息格式为
success != fail; - 若将第三个用例的期望值改为
success后重新执行,所有用例均通过,证明断言逻辑本身无误。