RobotFramework篇-关键字的使用
在RF中,关键字是一个非常重要的存在。想做任何事情,都是通过关键字来实现的。
1、什么是关键字
总结一句话:一个关键字实现了单一的功能。
使用一个关键字,就等于是去使用了一个功能。
在RF中,输出文本使用了关键字:log;创建变量使用了关键字:set Variable; 执行python语句使用关键字:evulate
另外,我们在使用有些功能的时候 ,需要提供一定的数据,才可以正常使用功能。
在RF中,表达形式就是在使用关键字的时候,需要同时传入参数数据。
ps:RF中的关键字,对应的就是python中的函数。
所以关键字由关键字名称、参数、返回值三部分组成。
2、关键字来自哪里、有哪些类型
既然RF中的关键字,与python中的函数保持一致。那么函数来自于哪里,基本上关键字也就来自于哪里。
函数主要来自于:python自带、python第三方库、用户自定义模块和包。
那在RF中,就不得不提,另外一个重要的存在:库。
库:理解为功能仓库,即封装了一系列功能。
关键字按照用途分门别类的放在不同的功能仓库中。
RobotFramework在安装成功之后,会自带标准库。标准库中均是关键字。 =======相对于python自带。
RobotFramework也支持丰常丰富的第三方库。 =======相对于python第三方库
也支持用户利用python或者java语言编写自己的第三方库。 =======相对于用户自定义的模块和包
下图为库与关键字的关系图:
上图中的系统关键字又是什么呢?
在RF中,关键字也分为两种类型:系统关键字和用户关键字。
系统关键字:来自于测试库。无论是标准库、第三方库、还是用户用编程语言定义的。
用户关键字:利用RF编辑工具,按照RF的语法规则定义的关键字(而不是直接写代码)。于测试而言,一般来说用户关键字都跟系统业务有关。
3、如何使用关键字
由上可知,一个关键字就是一个功能。
我们通过关键字的名称来使用关键字。如果需要传递参数,那么就传递参数。PS:是不是跟python函数的使用一模一样??
以RF自带BuildIn中的关键字log为例:
1)创建一个测试套件文件;
2)创建一个测试用例,并调用log关键字;
测试用例为:用例名称(图中的黑色粗体)、用例内容。
用例内容中:蓝色粗体为关键字名称。关键字后面的内容为传入的参数。关键字与参数之间、多个参数之间用Tab键隔开。
4、新建和引用资源(Resource)
Resource可以用来组织自己封装的用户关键字和预置数据
l 新建resource:选中project目录,右键单击 > NewResource > 填入Resource名称 > [可选] 选择Resource格式
l 在resource下新建userkeyword:同上一节的封装用户关键字
l 引用resource到test suite:在test suite的settings中,点击resource按钮引入自己新建的resource;或者在testsuite脚本中增加如下的resource代码:
***Settings ***
Library Selenium2Library
Library BuiltIn
Resource MyResource.robot
5、开发系统关键字
当想要实现一些功能,但是robot framework没有提供现成的关键字时,我们就可以通过Python自己开发系统关键字。所以开发系统关键字的重点是利用Python实现具体的功能。
以实现一个加法功能为例:
l 在Python目录下的\Lib\site-packages新建TestLibrary目录
l 在TestLibrary目录下新建count.py文件,并实现加法功能,示例代码如下:
#coding=utf-8
classCount(object):
def Add(self, a, b):
"""
This method is used to calculate theresult of a plus b
:param a: an integer
:param b: an integer
:return: The result of a plus b
example:
| add | a | b |
"""
return int(a) + int(b)
l 在TestLibrary目录下新建__init__.py文件将上面的Python文件转换成一个标准包,该文件内代码如下:
from.count import Count
__version__= "0.1"
classTestLibrary(Count):
ROBOT_LIBRARY_SCOPE = 'GLOBAL'
l 操作完以上步骤,就可以在eclipse中引入我们自己所创建的库,方式同前面的引用Lib
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律