Python for Robot Framework的基础用法

介绍

Robot Framework 是一个基于Python的、可扩展的、关键字驱动的测试自动化框架,用于端到端的验收测试或者验收驱动测试开发(ATDD)中。
python for Robot Framework可以在Robot Framework的基础上,使用python编写自定义函数用于特定过程的测试用例,更适应开发实际情况。

核心特性

  • 可扩展性
    • 关键字驱动测试:Robot Framework 使用关键字来表示测试操作。关键字可以是内置的,也可以通过 Python 或 Java 实现的库进行扩展。更具可读性和可维护性。
    • 可插拔库:通过库机制,用户可以轻松地添加新的功能。可以适应各种测试需求。
  • 易于使用
    • 语法简洁:Robot Framework 使用表格语法来编写测试用例,使得测试用例易于编写和理解。测试用例可以以纯文本、HTML、TSV 等格式编写。
    • 数据驱动测试:通过在测试用例中使用变量和参数化测试,支持数据驱动测试。使同一个测试用例可以用不同的数据重复运行。
  • 良好的报告和日志功能
    • 详细的日志和报告:Robot Framework 生成详细的测试执行报告和日志文件,包括测试步骤、执行时间、错误信息等。帮助测试人员快速定位和解决问题。
    • image.png
  • 集成和兼容性
    • 与其他工具的集成:Robot Framework 可以与 Selenium、Appium、Database Library 等多种工具和库集成,实现 Web 测试、移动应用测试、数据库测试等。

基础用法

具体的测试代码写在.robot文件中,每个文件都会有四个主要的部分, 如下表分别是 Settings, Variables, Test Cases, 和 Keywords.

Settings导入 测试库, 资源文件, 变量文件.
Variables定义 变量
Test Cases创建测试用例
Keywords创建用户关键字(函数)
*** Settings ***import com.xxx.xxxLibrary       PythonLibrary.py    (可以导入py或Java文件)
Library       /absolute/path/JavaLibrary.java

*** Variables ***
${MESSAGE}    Hello, world!

*** Test Cases ***
My Test01
    Log    ${MESSAGE}
    My Keyword    /tmp		# (函数调用)func(/tmp)

Another Test02
    Should Be Equal    ${MESSAGE}    Hello, world!

*** Keywords ***  
My Keyword    				#(函数声明)public void func(path)
    [Arguments]    ${path}
    Directory Should Exist    ${path} 

测试用例 Test Cases

测试用例由的关键字 和 设置项构造.

  • 关键字可以从 使用测试库资源文件 导入 (类似Java中的方法)
  • 可以在当前测试用例文件中的 关键字部分 创建
  • 类似java中的方法,可以有自己的形参
*** Variables ***
${tmp}     /home/user/
*** Test Cases ***
Test 01   (测试用例1[Documentation]    This is a docs  
    [Tags]    dummy    car8
    [Setup]    Open Application    App B  
    Log    Hello, world!		
    [Teardown]    NONE
*** Keywords ***
List files(函数名)
    [Arguments]    ${path}=.    ${options}=   (函数形参)
    Execute command    ls ${options} ${path}                             

常见设置项如下:
[Documentation] :用来为用例设置一段文档说明,方便在查看日志时了解该用例的测试内容
[Tags]:给测试用例打标签,可以** 包含排除** 测试用例来执行.
[Setup] :在测试用例之前执行xx操作
[Teardown]:在测试用例之后执行,在失败的时候也会被执行, 可以用来做一些清理工作
[Timeout]: 超时设置
[Template]: 模板
Template 的2种调用方法:

// 1. 使用[Template] +关键字
*** Test Cases **
Normal test case    //不使用模板需要每次把关键字写一遍
    Example keyword    arg1     arg2 
    Example keyword    arg3     arg4

Templated test case  // 使用模板
    [Template]    Example keyword   //定义好关键字(函数),每次输入一行数据;某一行失败继续运行
    arg1     arg2 
    arg3     arg4
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
//2. 当测试数据非常多时,可以使用Template+for循环测试多个用例
*** Test Cases ***
Template and for
    [Template]    Example keyword
    :FOR    ${item}    IN    @{ITEMS}
    \    ${item}    2nd arg
    :FOR    ${index}    IN RANGE    42
    \    1st arg    ${index}

测试用例成功/失败的处理(判断成功/失败的情况)

  • 关键字级别:通过自定义关键字实现特定的失败处理逻辑。
  • 测试用例级别:使用内置关键字控制测试用例在失败时的行为
  • 自定义失败处理:通过自定义函数和异常处理进行更复杂的失败处理。

详细内容:
测试用例成功或失败的处理类型

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值