百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

python自动化测试框架RobotFramework内置库BuiltIn介绍(二)

ccwgpt 2024-10-09 08:52 26 浏览 0 评论

内置库BuiltIn

Robot Framework框架安装后,打开ride客户端会默认加载BuiltIn库,支持日志打印,断言,创建列表,创建字典,变量,关键字运行,数据类型转换等常用关键字。

学习目录

关键字搜索

BuiltIn库的位置

变量类关键字

创建字典和列表

表达式计算

数据类型转换类关键字

日志打印类关键字

断言类关键字

条件判断类关键字

循环关键字

其他一些关键字

总结

关键字搜索

查找RF框架加载的关键字,点击Tools菜单,选择“Search Keywords”或者直接按键盘上的F5按键。

打开后可以看到已经加载的builtIn库,点击该库可以看到下方列出的很多关键字,并且点击每个关键字,下方都会有相应的使用说明,会介绍该关键字的来源,参数,有些还有一些示例帮助大家理解。

BuiltIn库的位置

在robotframework库的安装目录/robot/libraries下,当然还有很多其他的一些库,只是没有默认加载,大家可以在使用时选择import导入这些库。

变量类关键字

关键字

说明

Set Global Variable

设置全局变量,使变量在所有测试用例和测试套件,用户关键字中全局可用。

Set Local Variable

设置当前位置变量,使用该关键字设置的变量在当前执行的测试用例的本地范围内或在定义它们的关键字的本地范围中可用。例如,如果在用户关键字中设置变量,则该变量仅在该关键字中可用。其他测试用例或关键字将不会看到使用此关键字设置的变量。

Set Suite Variable

设置测试套件变量,使变量在当前套件范围内的任何位置都可用,包括所有套件下的测试用例以及使用到的用户关键字,而其他测试套件则不可用。

Set Test Variable

设置测试用例变量,使该变量在当前执行的测试用例范围内的任何地方都可用。例如,如果在用户关键字中设置了一个变量,那么它在测试用例级别以及当前测试中使用的所有其他用户关键字中都可用。其他测试用例将不会看到使用此关键字设置的变量。

Set Variable

Builtln返回给定的值,然后可以将这些值赋值给变量。

Set Variable lf

根据给定条件设置变量。

举例:

测试套件Suite1有2条测试用例Case1和Case2

测试套件Suite2有1条测试用例Case3

在Case1中分别定义以上表格中的各个作用域变量,分别在Case2和Case3中打印Case1中的变量信息。

打印结果 相信大家也清楚了:

  1. Case2中的log ${fruit2}和log ${fruit4}肯定会打印失败,因为这两个是局部变量,其他用例是不可见的

2)Case3中除了log ${fruit1}会成功,其他log ${fruit2}和log ${fruit3}和log ${fruit4}肯定会打印失败,因为这3个变量对于Case3来说都是局部变量。

创建字典和列表

关键字

说明

Create Dictionary

根据给定的项创建并返回字典。

返回的字典可以同时分配给${scalar}和&{list}变量。

项目通常使用key=value语法,也可以是其他语法,详见该关键字使用介绍

访问key的语法可以使用${dict.key}

Create List

返回包含给定项目的列表。

返回的列表可以同时分配给${scalar}和@{list}变量。

关于列表和字典更多的关键字位于collections库中,后续在单独介绍。

表达式计算

关键字

说明

Evaluate

在Python中计算给定的表达式并返回结果。

类似于python中的evaluate函数。

数据类型转换类关键字

关键字

说明

Convert To Binary

Builtln将给定项转换为二进制字符串。

Convert To Boolean

Builtln将给定项转换为布尔值true或false。

Convert To Bytes

Builtln将给定项转换为字节码

Convert To Hex

转换为十六进制

Convert To Integer

转换为整数

Convert To Number

转换为数字

Convert To Octal

转换为八进制

Convert To String

转换为字符串

日志打印类关键字

关键字

说明

Log

打印给定的1个信息

Log Many

打印给定的多个信息

Log To Console

将给定的消息记录到控制台。

Log Variables

使用给定的日志级别记录当前作用域中的所有变量。

断言类关键字

关键字

说明

Should Be Empty

验证给定项为空,则成功。

Should Be Equal

验证给定项是否相等。如果给定对象相等,则成功。

Should Be Equal As Integers

如果对象在转换为整数后相等,则成功。

Should Be Equal As Numbers

如果对象在转换为实数后相等,则成功。

Should Be Equal As Strings

如果对象在转换为字符串后相等,则成功。

Should Be True

如果给定条件为True,则成功。

Should Contain

如果对象内包含一次或多次指定的“item”项,则成功。

should Contain Any

如果对象内包含任意1个给定的“items”项,则成功。

should Contain X Times

如果对象内包含给定次数的“item”项,则成功。

Should End With

如果字符串“str1”以字符串“str2”结尾,则成功

Should Start With

如果字符串“str1”以字符串“str2”开始,则成功

Should Match

如果给定字符串与给定模式匹配,则成功。使用时parern以*结束,比如Should Match ${var1} *abc*

Should Match Regexp

如果给定字符串与给定正则表达式模式匹配,则成功。使用时parern以*结束,比如Should Match ${var1} *abc*

关键字

说明

Should Not Be Empty

验证给定项不为空,则成功。

Should Not Be Equal

验证给定项是否相等。如果给定对象不相等,则成功。

Should Not Be Equal As Integers

如果对象在转换为整数后不相等,则成功。

Should Not Be Equal As Numbers

如果对象在转换为实数后不相等,则成功。

Should Not Be Equal As Strings

如果对象在转换为字符串后不相等,则成功。

Should Not Be True

如果给定条件为不为True,则成功。

Should Not Contain

如果对象内不包含一次或多次指定的“item”项,则成功。

should Not Contain Any

如果对象内不包含任意1个给定的“items”项,则成功。

should Not Contain X Times

如果对象内不包含给定次数的“item”项,则成功。

Should Not End With

如果字符串“str1”不以字符串“str2”结尾,则成功

Should Not Start With

如果字符串“str1”不以字符串“str2”开始,则成功

Should Not Match

如果给定字符串与给定模式不匹配,则成功。使用时parern以*结束,比如Should Not Match ${var1} *abc*

Should Not Match Regexp

如果给定字符串与给定正则表达式模式不匹配,则成功。使用时parern以*结束,比如Should Match ${var1} *abc*

条件判断类关键字

关键字

说明

Run Keyword And lgnore Error

运行关键字并忽略掉报错

Run Keyword And Return

运行关键字并返回

Run Keyword And Return lf

运行关键字并返回lf

Run Keyword And Return StatusBuiltln

Run Keyword lf

运行关键字并返回StatusBuiltln

如果“condition”为true,则使用给定的参数运行给定的关键字。

支持ELSE或ELSE IF分支。

Run Keyword lf All Tests Passed

如果所有测试都通过,则使用给定的参数运行给定的关键字。

此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。

Run Keyword If All Critical Tests Passed

如果所有关键测试都通过,则使用给定的参数运行给定的关键字。

此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。

Run Keyword If Any Critical Tests Failed

如果任意1个关键测试失败,则使用给定的参数运行给定的关键字。

此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。

Run Keyword If Any Tests Failed

如果任意1个测试用例失败,则使用给定的参数运行给定的关键字。

此关键字只能在套件Suite Teardown中使用。试图在任何其他地方使用它都会导致错误。

Run Keyword If Test Failed

如果该测试用例失败,则使用给定的参数运行给定的关键字。

此关键字只能在用例Test Teardown中使用。试图在任何其他地方使用它都会导致错误。

Run Keyword If Test Passed

如果该测试用例成功,则使用给定的参数运行给定的关键字。

此关键字只能在用例Test Teardown中使用。试图在任何其他地方使用它都会导致错误。

Run Keyword If Timeout Occurred

如果测试或关键字超时,则执行指定的关键字

Run Keyword Unless

如果条件为false,则使用给定的参数运行给定的关键字。

此关键字不支持ELSE或ELSE IF分支,但“Run keyword IF”支持。

Run Keywords

执行多个关键字,多个关键字以AND隔离

循环关键字

关键字

说明

Exit For Loop

退出循环

Exit For Loop lf

当满足条件时退出循环

其他一些关键字

关键字

说明

Get Count

返回并记录从对象中找到指定项目的次数。

该关键字适用于Python字符串和列表,以及所有具有count方法或可以转换为Python列表的对象。

Get Length

将给定项的长度作为整数返回并记录。

项目可以是字符串、列表或映射。如果传入的对象没有length,返回错误。

Get Time

不传参数默认返回这种格式2023-08-13 15:04:02

也可以传入format字符串返回对应的时间格式。

总结

以上就是自带的BuiltIn库的关键字信息,可以看出来是非常强大,也是非常实用的,里面的很多关键字经常会使用到。

本章我们没有针对每个关键字讲解具体的示例,因为相信大家自己使用时会很容易上手,看再多的书也不如多动手练习,这样才会真真切切的体会到RF的强大之处。

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

相关推荐

滨州维修服务部“一区一策”强服务

今年以来,胜利油田地面工程维修中心滨州维修服务部探索实施“一区一策”服务模式,持续拓展新技术应用场景,以优质的服务、先进的技术,助力解决管理区各类维修难题。服务部坚持问题导向,常态化对服务范围内的13...

谷歌A2A协议和MCP协议有什么区别?A2A和MCP的差异是什么?

在人工智能的快速发展中,如何实现AI模型与外部系统的高效协作成为关键问题。谷歌主导的A2A协议(Agent-to-AgentProtocol)和Anthropic公司提出的MCP协议(ModelC...

谷歌大脑用架构搜索发现更好的特征金字塔结构,超越Mask-RCNN等

【新智元导读】谷歌大脑的研究人员发表最新成果,他们采用神经结构搜索发现了一种新的特征金字塔结构NAS-FPN,可实现比MaskR-CNN、FPN、SSD更快更好的目标检测。目前用于目标检测的最先...

一文彻底搞懂谷歌的Agent2Agent(A2A)协议

前段时间,相信大家都被谷歌发布的Agent2Agent开源协议刷屏了,简称A2A。谷歌官方也表示,A2A是在MCP之后的补充,也就是MCP可以强化大模型/Agent的能力,但每个大模型/Agent互为...

谷歌提出创新神经记忆架构,突破Transformer长上下文限制

让AI模型拥有人类的记忆能力一直是学界关注的重要课题。传统的深度学习模型虽然在许多任务上取得了显著成效,但在处理需要长期记忆的任务时往往力不从心。就像人类可以轻松记住数天前看过的文章重点,但目前的...

不懂设计?AI助力,人人都能成为UI设计师!

最近公司UI资源十分紧张,急需要通过AI来解决UI人员不足问题,我在网上发现了几款AI应用非常适合用来进行UI设计。以下是一些目前非常流行且功能强大的工具,它们能够提高UI设计效率,并帮助设计师创造出...

速来!手把手教你用AI完成UI界面设计

晨星技术说晨星技术小课堂第二季谭同学-联想晨星用户体验设计师-【晨星小课堂】讲师通过简单、清晰的语言描述就能够用几十秒自动生成一组可编辑的UI界面,AIGC对于UI设计师而言已经逐步发展成了帮助我们...

「分享」一端录制,多端使用的便捷 UI 自动化测试工具,开源

一、项目介绍Recorder是一款UI录制和回归测试工具,用于录制浏览器页面UI的操作。通过UIRecorder的录制功能,可以在自测的同时,完成测试过程的录制,生成JavaScr...

APP自动化测试系列之Appium介绍及运行原理

在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。Appium介绍Appium概念Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序...

【推荐】一个基于 SpringBoot 框架开发的 OA 办公自动化系统

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍oasys是一个基于springboot框架开发的OA办公自动化系统,旨在提高组织的日常运作和管理...

自动化实践之:从UI到接口,Playwright给你全包了!

作者:京东保险宋阳1背景在车险系统中,对接保司的数量众多。每当系统有新功能迭代后,基本上各个保司的报价流程都需要进行回归测试。由于保司数量多,回归测试的场景也会变得重复而繁琐,给测试团队带来了巨大的...

销帮帮CRM移动端UI自动化测试实践:Playwright的落地与应用

实施背景销帮帮自2015年成立以来,移动端UI自动化测试的落地举步维艰,移动端的UI自动化测试一直以来都未取得良好的落地。然而移动互联网时代,怎样落地移动端的UI自动化测试以快速稳定进行移动端的端到端...

编写自动化框架不知道该如何记录日志吗?3个方法打包呈现给你。

目录结构1.loguru介绍1.1什么是日志?程序运行过程中,难免会遇到各种报错。如果这种报错是在本地发现的,你还可以进行debug。但是如果程序已经上线了,你就不能使用debug方式了...

聊聊Python自动化脚本部署服务器全流程(详细)

来源:AirPython作者:星安果1.前言大家好,我是安果!日常编写的Python自动化程序,如果在本地运行稳定后,就可以考虑将它部署到服务器,结合定时任务完全解放双手但是,由于自动化程序与平...

「干货分享」推荐5个可以让你事半功倍的Python自动化脚本

作者:俊欣来源:关于数据分析与可视化相信大家都听说自动化流水线、自动化办公等专业术语,在尽量少的人工干预的情况下,机器就可以根据固定的程序指令来完成任务,大大提高了工作效率。今天小编来为大家介绍几个P...

取消回复欢迎 发表评论: