- Robot Framework 自动化测试框架核心指南
- 张永清
- 1925字
- 2025-02-26 19:19:57
1.2 Robot Framework基础关键字
1.2.1 如何搜索Robot Framework的关键字
有两种方式可以快速地打开RIDE的关键字搜索对话框。
(1)选择菜单栏中的Tools→Search Keywords选项,然后会出现如图1-2-1所示的关键字搜索对话框,这个对话框就类似于提供了一个关键字的API功能(提供了关键字的名称、关键字的来源库、关键字的使用描述和关键字的参数)。

图 1-2-1
(2)直接按F5快捷键,就可以自动弹出我们需要的关键字搜索框。
1.2.2 关键字log
Log关键字其实就等同于Python语言中的print函数,可以输出我们想要输出的内容(也就是我们在编程语言中常说的日志输出),比如我们在test case中输入如图1-2-2所示的内容。

图 1-2-2
勾选我们的测试用例,单击菜单栏Tools→Run Tests(或者直接快捷键F8)来执行这条测试用例,如图1-2-3所示。

图 1-2-3
执行完成后,切换到Run标签,可以看到用例执行的结果。通过运行结果可以看到输出了我们想要输出的信息INFO : Hello RobotFramework,如图1-2-4所示。

图 1-2-4
1.2.3 如何在用例中定义一个变量
我们可以通过Set Variable来定义一个变量,比如我们定义一个变量var1,并且将这个变量赋值为Robot,然后将这个变量用log输出,如图1-2-5所示。

图 1-2-5
执行结果如图1-2-6所示。

图 1-2-6
1.2.4 如何快速查询某一个关键字的API说明
选中关键字,同时按住Ctrl+Alt组合键,即可显示该关键字的帮助API以及使用示例,如图1-2-7所示。

图 1-2-7
1.2.5 如何快速补全关键字
通过键盘输入关键字的前缀,然后同时按住Ctrl+Alt+空格键,即可快速补全某个关键字,如图1-2-8所示。

图 1-2-8
1.2.6 如何定义一个列表
此处我们说的列表,其实就等同于Python语言中的列表,是Python语言中常用的一种数据结构,也类似于Java语言中的List。
在Robot Framework中,我们可以使用Create List来创建一个列表,比如我们定义一个列表list1,并且在创建列表时就添加3个元素。然后使用log关键字将这个列表中的元素全部输出,如图1-2-9所示。

图 1-2-9
执行结果如图1-2-10所示。

图 1-2-10
1.2.7 如何定义一个字典
此处我们说的字典其实就等同于Python语言中的字典,和列表一样,字典也是Python语言中非常常用的一种数据结构,也类似于Java语言中的Map。
在Robot Framework中,使用Create Dictionary来创建一个字典,比如我们定义一个字典Dict1,并且在创建字典时就添加两个键值对,然后使用Log Many关键字将这个字典中的内容全部输出,如图1-2-11所示。
Log Many关键字类似于log关键字,不同的是log关键字只可以接收一个参数,而Log Many关键字可以同时接收多个参数。

图 1-2-11
执行结果如图1-2-12所示。

图 1-2-12
1.2.8 如何拼接两个字符串
我们可以通过Catenate来拼接字符串,比如将“Hello”和“Robot”这两个字符串拼接起来并且输出,如图1-2-13所示。

图 1-2-13
执行结果如图1-2-14所示。

图 1-2-14
1.2.9 如何使用for循环
不管在哪种编程语言中,for循环都是必不可少的。在Robot Framework中,我们也可以使用for循环来做遍历处理。
我们可以用for循环对一个列表进行遍历,并且输出该列表中的每一个元素。例如,list2中有a、b、c、d四个元素,循环遍历输出这些元素,如图1-2-15所示。

图 1-2-15
执行结果如图1-2-16所示。

图 1-2-16
1.2.10 如何中断for循环
我们可以使用Exit For Loop If关键字来中断一个for循环。例如,list2有a、b、c、d四个元素,循环遍历输出这些元素,当输出到元素c时跳出这个循环,如图1-2-17所示。

图 1-2-17
执行结果如图1-2-18所示。

图 1-2-18
1.2.11 Run Keyword If判断的使用
Run Keyword If是一个常用的用来做逻辑判断的关键字,意思是如果满足了某一个判断条件,就会执行关键字。我们在list3中放入0、1、2三个元素,然后遍历list3,判断当取到元素0时,输出“男生”,如图1-2-19所示。

图 1-2-19
执行结果如图1-2-20所示。

图 1-2-20
1.2.12 Comment关键字的使用
Comment关键字是用来做注释使用的,和很多编程语言中的注释作用一样,可以用来临时注释掉某一行自动化脚本,让其暂时不运行,也可以用来做解释说明使用,如图1-2-21所示。
在Robot Framework的RIDE中,可以选中某一行脚本,右击鼠标键,选择Comment Rows选项,然后可以对选中的那一行脚本做注释,注释完成后,这一行脚本将不会再被运行。

图 1-2-21
Comment log "Comment"
如果需要取消注释,右击鼠标键,选择Uncomment Rows选项即可。注释取消后,在用例运行时,没有被注释的脚本就会被运行,如图1-2-22所示。

图 1-2-22
1.2.13 Return From Keyword和Return From Keyword If关键字的使用
Return From Keyword关键字和很多编程语言中的return关键字一样,具有如下鲜明的特点:
(1)脚本执行到该关键字后,会直接返回,不会再执行后面的脚本。
(2)返回时会带有对应返回值。调用者可以通过不同的返回值来建立不同的判断分支。
(3)Return From Keyword关键字一般用于用户自定义关键字中。用户自定义关键字相当于是用系统已有的关键字来封装出一个新的关键字。
(4)Return From Keyword If关键字用if条件来进行判断,当满足指定的if条件后,就执行return返回。返回时和Return From Keyword关键字一样,可以指定返回的具体值。
【示例】我们编写了一个自定义关键字,其中定义了一个入参${valueReturn},如图1-2-23所示,然后通过执行Return From Keyword If '${value}'=='${valueReturn}' ${value} 来判断我们需要返回的值,如图1-2-24所示。

图 1-2-23

图 1-2-24
自定义关键字完成后,就可以调用了,如图1-2-25所示。

图 1-2-25
执行结果如图1-2-26所示。

图 1-2-26
从执行结果可以看到,在调用Example Return From Keyword这个自定义关键字时,我们传入的入参为4,按照自定义关键字中的判断逻辑返回4。