RobotFramework测试框架(9)--标准库常用关键字

2024-04-06 07:20

本文主要是介绍RobotFramework测试框架(9)--标准库常用关键字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

标准库

Robot Framework标准库无须下载,直接导入即可使用,包括:
Builtin:包含经常需要的关键字,如Evaluate、Log关键字,该类库中的关键字自动导
入,使用前无须导入。
Dialogs:提供了暂停测试执行和从用户输入的方式,使用前需导入。
Collections:
提供一组关键词处理Python列表和字典,使用前需导入
OperatingSystem:允许执行各种操作系统相关的任务,使用前需导入。
Remote:远程库接口的一部分,没有自己的任何关键字,作为Robot Framework和测试
库之间的代理的特殊库。实际测试库可以在不同的机器上运行,可以使用任何综程语言
支持XML-RPC协议的实现,使用前需导入
Screenshot:提供关键字来捕获和存储桌面的截图,使用前需导入a
Stg:用于处理字符串并验证它们的内容,如生成、修改和验证字符串,使用前需导入。
Telnet:支持连接到Telnet服务器上,使用前需导入。
XML:用于生成、修改和验证XML文件的库,使用前需导入。
Process:系统中运行过程的库,使用前需导入.
DateTime:日期和时间转换的库,支持创建和验证日期和时间值及它们之间的计算,使
用前需导入。

Evaluate 万能关键字

在Robot Framework(RF)中,Evaluate关键字是一个非常有用的工具,它允许你直接执行Python代码,并将结果赋值给RF变量。这使得RF在需要执行复杂逻辑或调用Python库时具有更大的灵活性。

Evaluate关键字的基本语法如下:

${variable}=    Evaluate    expression    modules=None
  • expression:这是要执行的Python表达式或代码。
  • modules:可选参数,用于指定在执行表达式时需要导入的Python模块。默认为None,表示不导入任何模块。

Evaluate关键字将执行指定的Python表达式,并将结果赋值给RF变量。这样,你就可以在RF测试用例中直接使用Python的强大功能。

以下是一些使用Evaluate关键字的示例:

示例1:基本数学运算

*** Test Cases ***
Math Operations${result}=    Evaluate    10 + 20Log    The result is: ${result}

在这个例子中,Evaluate执行了简单的加法运算,并将结果30赋值给变量${result}
在这里插入图片描述

示例2:使用Python内置函数

*** Test Cases ***
Built-in Functions${length}=    Evaluate    len("hello")Log    The length of "hello" is: ${length}

这里,Evaluate调用了Python的内置函数len()来获取字符串"hello"的长度,并将结果5赋值给变量${length}
在这里插入图片描述

示例3:调用外部库

假设你有一个名为my_module的Python模块,其中有一个函数calculate_sum,你可以这样使用Evaluate来调用它:

*** Settings ***
Library    my_module.py*** Test Cases ***
Call External Library Function${sum_result}=    Evaluate    calculate_sum(10, 20)Log    The sum is: ${sum_result}

在这个例子中,你需要先在Settings部分导入你的Python模块。然后,在测试用例中,Evaluate调用了my_module中的calculate_sum函数,并将结果赋值给变量${sum_result}

示例4:处理复杂逻辑

Evaluate关键字也可以处理更复杂的Python代码,只要它们能在单行中表达清楚。但请注意,对于非常复杂的逻辑或代码块,建议将其放在自定义关键字或Python测试库中,以保持测试用例的清晰和简洁。

注意事项

  • Evaluate关键字只能处理单行Python代码。如果你需要执行多行代码,应该考虑使用自定义关键字或Python测试库。
  • 在使用Evaluate时,请确保你理解Python代码的含义和潜在风险,以避免引入错误或不可预测的行为。

总之,Evaluate关键字为Robot Framework提供了强大的扩展能力,使得RF能够处理更复杂的测试场景和逻辑。通过合理使用Evaluate,你可以将Python的强大功能与RF的简洁语法相结合,构建出高效、灵活的自动化测试脚本。

变量操作

打印变量 Log Variables

导入变量 import Variables

新建一个文件存放测试数据,使用Import Variables导入测试数据文件。
在这里插入图片描述

*** Variables ***
*** Test Cases ***
测试用例Import Variables    ${CURDIR}/variables.pyLog     ${url}Log Many    @{str_list}

Set Variable 设置变量

在Robot Framework中,Set Variable 是一种用于设置标量变量的关键字。标量变量是单个值的变量,如数字、字符串等。Set Variable 关键字不仅用于设置变量的值,还可以用于将包含列表的标量变量转换为列表变量或多个标量变量。

例如,你可以使用 Set Variable 来创建一个新的变量,并在后续的测试用例或关键字中使用它。以下是一个简单的示例:

*** Test Cases ***
Example Test Case${my_variable}  Set Variable       Hello, Robot Framework!Log    The value of my_variable is: ${my_variable}

在这个例子中,Set Variable 关键字创建了一个名为 my_variable 的变量,并赋值为 Hello, Robot Framework!。然后,Log 关键字用于打印这个变量的值。

使用这些关键字时,请确保你了解它们的作用域,以便在正确的地方设置和使用变量。同时,为了维护代码的清晰性和可维护性,建议避免在测试用例中设置全局变量,而是在适当的地方(如测试套件或项目级别)声明和设置它们。

Set Global Variable:设置全局变量

在 Robot Framework 中,Set Global Variable 关键字用于设置全局变量。全局变量是在整个测试执行期间都有效的变量,它们可以在多个测试套件、测试用例和关键字中共享和访问。

要使用 Set Global Variable 关键字,你需要确保你已经导入了 BuiltIn 库,因为这个关键字是该库的一部分。通常,BuiltIn 库是默认导入的,因此你无需显式导入它。

下面是一个示例,展示了如何使用 Set Global Variable 关键字来设置一个全局变量,并在后续的测试用例中访问它:

*** Settings ***
Library           BuiltIn*** Variables ***
# 这里可以定义一些普通的标量变量,但它们不是全局的
${local_variable}  Local Value*** Test Cases ***
Set Global Variable Example# 设置一个全局变量Set Global Variable    ${GLOBAL_VARIABLE}    This is a global variable# 在同一个测试用例中使用全局变量Log    The global variable is: ${GLOBAL_VARIABLE}Another Test Case# 在另一个测试用例中使用全局变量Log    The global variable is still: ${GLOBAL_VARIABLE}

在这里插入图片描述

在这个例子中,Set Global Variable 关键字设置了一个名为 GLOBAL_VARIABLE 的全局变量,并给它赋了一个值 This is a global variable。然后,在同一个测试用例 Set Global Variable Example 和另一个测试用例 Another Test Case 中,我们都可以通过 ${GLOBAL_VARIABLE} 来访问这个全局变量的值。

请注意,全局变量通常应该谨慎使用,因为它们可以在整个测试执行期间改变,这可能会导致不可预测的行为和难以调试的问题。在可能的情况下,最好使用局部变量或测试套件变量,这样变量的作用域会更加明确和可控。

如果你需要在多个测试套件之间共享变量,你可能需要考虑使用外部文件(如 YAML、JSON 或 Python 模块)来存储这些变量,并在每个测试套件开始时导入它们。这样可以避免使用全局变量,并使变量的管理更加清晰和可维护。

Set Suite Variable:设置测试套件变量

在Robot Framework中,Set Suite Variable 关键字用于设置测试套件级别的变量。这意味着这些变量在当前执行的测试套件范围内随处可用,包括该测试套件内的所有测试用例和关键字。

当你需要在一个特定的测试套件中共享变量,而不是在整个测试项目中共享时,Set Suite Variable 是一个非常有用的工具。使用此关键字,你可以轻松地在测试套件的不同部分之间传递数据或配置信息。

以下是如何使用 Set Suite Variable 的一个简单示例:

*** Settings ***
*** Test Cases ***
Set Suite Variable Example# 设置一个测试套件级别的变量Set Suite Variable    ${SUITE_VARIABLE}    This is a suite level variableLog    Suite variable set to: ${SUITE_VARIABLE}Another Test Case In Same Suite# 在同一个测试套件中的另一个测试用例中使用该变量Log    The suite variable is: ${SUITE_VARIABLE}*** Keywords ***
Keyword In Same Suite[Arguments]    ${arg}Log    The suite variable in a keyword is: ${SUITE_VARIABLE}# ... 其他关键字逻辑 ...

在这个例子中,Set Suite Variable 在第一个测试用例 Set Suite Variable Example 中设置了一个名为 SUITE_VARIABLE 的测试套件变量。然后,在同一个测试套件中的另一个测试用例 Another Test Case In Same Suite 和一个关键字 Keyword In Same Suite 中,都可以访问和使用这个变量。

请注意,如果你尝试在一个不同的测试套件中访问这个变量,它将不可用,因为 SUITE_VARIABLE 的作用域仅限于设置它的那个测试套件。

使用测试套件变量是一种在测试套件内部组织和共享数据的好方法,但你需要确保不要过度依赖它们,以免降低测试的可读性和可维护性。在可能的情况下,尽量使用局部变量或参数传递来限制变量的作用
域。

Set Test Variable:设置测试用例变量

在Robot Framework中,Set Test Variable关键字用于设置当前测试用例级别的变量。这意味着这些变量仅在设置它们的特定测试用例中可用,不会影响到其他测试用例或测试套件。

当你需要在单个测试用例中存储和访问数据时,Set Test Variable是一个非常有用的工具。它允许你在测试用例内部创建和管理局部变量,以支持特定的测试逻辑或状态。

下面是一个使用Set Test Variable的简单示例:

*** Test Cases ***
Set Test Variable Example# 设置一个测试用例级别的变量Set Test Variable    ${TEST_VARIABLE}    This is a test level variableLog    Test variable set to: ${TEST_VARIABLE}# 在同一个测试用例中继续使用这个变量${result}    Set Variable    ${TEST_VARIABLE} uppercasedLog    Result: ${result}Another Test Case# 在另一个测试用例中尝试访问同一个变量将会失败,因为该变量只在前一个测试用例中有效# 这将导致一个错误,因为${TEST_VARIABLE}在这个测试用例中未定义Log    This will fail: ${TEST_VARIABLE}

在这个例子中,Set Test VariableSet Test Variable Example测试用例中设置了一个名为TEST_VARIABLE的测试用例变量。然后,在同一个测试用例中,你可以通过${TEST_VARIABLE}来访问和使用这个变量。然而,如果你尝试在另一个测试用例(如Another Test Case)中访问TEST_VARIABLE,Robot Framework会报告一个错误,因为该变量仅在前一个测试用例中定义和可用。

使用测试用例变量是组织和管理测试数据的一种好方法,特别是当数据只在单个测试用例中需要时。它有助于保持测试的独立性和清晰性,并防止不同测试用例之间的意外数据交互。然而,需要注意的是,过度使用或滥用测试用例变量可能会导致测试逻辑变得复杂和难以维护。因此,在可能的情况下,最好使用局部变量或参数传递来限制变量的作用域。

Get Variables 获取所有变量

*** Test Cases ***
Get Variables${vars}     Get VariablesLog    ${vars}

在这里插入图片描述

Get Variable Value 获取变量值

Get Environment Variables 获取所有环境变量

Get Environment Variable 获取环境变量值

Set Environment Variable 设置环境变量

关键字操作

Run Keyword :运行关键字

所属库:BuiltIn
在Robot Framework中,Run Keyword是一个非常重要的关键字,它允许你运行(执行)一个或多个关键字。这个关键字提供了在测试执行过程中动态调用其他关键字的能力,从而增加了测试的灵活性和可重用性。

Run Keyword有几种不同的形式和用法,以下是一些常见的例子:

  1. Run Keyword: 直接运行一个关键字。

    Run Keyword    SomeKeyword    arg1    arg2
    
*** Settings ***
*** Test Cases ***
Run Keyword Example${time}     Run Keyword    Get TimeLog    ${time}

在这个例子中,SomeKeyword 是要运行的关键字,arg1arg2 是传递给这个关键字的参数。

  1. Run Keyword If: 当满足某个条件时运行一个关键字。

    Run Keyword If    '${condition}' == 'True'    SomeKeyword    arg1    arg2
    

    在这个例子中,如果变量 ${condition} 的值为 'True',则执行 SomeKeyword 关键字。

    你还可以使用 ELSEELSE IF 来提供分支逻辑:

    Run Keyword If    '${condition1}' == 'True'    Keyword1
    ...    ELSE IF    '${condition2}' == 'True'    Keyword2
    ...    ELSE    Keyword3
    
  2. Run Keyword Unless: 当条件不满足时运行一个关键字。

    Run Keyword Unless    '${condition}' == 'False'    SomeKeyword
    

    在这个例子中,如果 ${condition} 的值不为 'False',则执行 SomeKeyword 关键字。

  3. Run Keywords: 运行多个关键字。

    Run Keywords    Keyword1    AND    Keyword2    AND    Keyword3
    

    这个例子将依次执行 Keyword1Keyword2Keyword3

  4. Repeat Keyword: 重复运行某个关键字指定的次数。

    Repeat Keyword    5 times    SomeKeyword    arg
    

    这个例子将执行 SomeKeyword 关键字 5 次,每次都使用 arg 作为参数。

  5. Run Keyword And Return: 运行关键字并返回其结果。

    ${result}=    Run Keyword And Return    SomeKeyword    arg
    

    在这个例子中,SomeKeyword 的执行结果将被赋值给变量 ${result}

请注意,Run Keyword 及其相关关键字只是 Robot Framework 中可用的众多关键字之一。为了充分利用这些功能,你需要熟悉 Robot Framework 的语法和用法,并根据你的测试需求来编写和组织你的关键字和测试用例。

条件循环

Continue For Loop:直接继续下一次循环

Continue For Loop If

Exit For Loop

Exit For Loop If

断言操作

Should (Not) Be Empty 断言是否为空

断言给定的元素是否为空

*** Settings ***
*** Test Cases ***
Run Keyword Example${time}     Run Keyword    Get TimeShould Not Be Empty    ${time}
*** Settings ***
*** Test Cases ***
Run Keyword Example${time}     Run Keyword    Get TimeShould Be Empty    ${time}

Should Be Equal 断言是否相等

Should Be Equal    first    second
Should Not Be Equal    first    second

Should Be Equal As Strings

Should Be True 断言是否为真

Should Contain 断言是否包含某元素

Should Match Regexp 断言是否匹配正则

Should Match Regexp    string    pattern

Length Should Be 断言长度是否相等

Length Should Be    item    length

Keyword Should Exist 断言关键字是否存在

Keyword Should Exist    name

List Should Contain Value 断言列表是否包含某值

所属库:Collections

Lists Should Be Equal 断言两个列表是否相等

集合操作

Create List 创建列表

Log List 打印输出列表中的值

Append To List 添加元素到列表

Insert Into List 插入元素到列表

Copy List 复制列表

Get From List 从列表中取值

常用关键字

Log 打印输出

Log Many 打印各元素值

Log To Console 打印到控制台

Sleep 延迟等待

Comment 添加注释

Call Method 调用方法

Get count 获取数量

Get Length 获取长度

Get time 获取时间

Pass Execution 标记测试用例执行成功

Fail 标记当前测试用例失败

Import Library 导入测试库

这篇关于RobotFramework测试框架(9)--标准库常用关键字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879346

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte