admin管理员组文章数量:1026989
RobotFramework 基础语法
RobotFramework 基础语法
RF 基础语法整理修改版,之前整理了一点 RF 的基础语法,有遗漏的地方,偶然看到了, 补充一下 **欢迎加入测试交流群:夜行者自动化测试(816489363)进行交流学习QAQ**— 阿木木
搭建测试脚本框架的思想:
通常我们不建议把测试脚本写成-一个顺序执行的测试过程,我们希望按照下面的层次去设 计我们的测试脚本 ● 测试层:模拟手动测试用例流程,串联一-系列已经封装好的功能模块,并在合适的时候 加入断言,判断测试结果 ● UI层:抽象UI操作上的通用动作,根据不同页面的功能,对其ACTION,功能进行封装。 ● 业务逻辑层:非UI操作,是一些具体的业务流程,把这些业务逻辑进行分类归纳,封装成 不同的功能模块 ● 数据处理层:主要是对在测试过程中用到不同数据的处理,比如配置参数读取,读取数据 库,解析HTTP响应数据,以及读取不同格式的外部文件等等。我们希望这些都能封装成不 同类。 ● 公用程序层: 主要是对测试过程中常用一-些功能的封装,比如一-些I/0操作,日期,读 取系统信息等等 ● 日志层:测试是一定要有日志的,现在有许多的成熟的日志框架,我们可以直接引用这些 框架,比如logger, log4j等等RF的BuiltIn库关键字简介(重要)
Evaluate:用于执行Python语句,如计算等 Should系列:用于判断,如Should Be Equal As String 判断两个字符串是否相同 Convert to系列:用于类型转换,如Convert To String Run Keyword系列:根据判断条件的真假决定是否执行关键字,如Run Keyword If Exit For Loop:用于退出循环 根据实际情况去查看RF保留的关键字即可Robot framework基本数据类型的创建
RF用$,@,&分别表示变量,列表,和字典 RF的几种数据类型 ${var} set variable ${3} ${float} set variable ${3.14} ${float} set variable ${-1e-4} ${test_false} set variable ${false} ${test_true} set variable ${true} ${test_null} set variable ${null} ${test_None} set variable ${None} ${test_string} set variable test10086 ${test_tuple} set variable 1,2 @{test_list} create list 1 xy ${test_dictionary} create dictionary a=12 b=13 c=14 ${test_space} set variable ${space} ${test_ 引号空格 } set variable ' ${space} ' ${test_4*space} set variable ${space*4} ${test_4*space} set variable ' ${space*4} ' ${test_empty} set variable ${empty} 因为RF中都是字符,传一些特殊的值就需要用内置的变量类似${6}的格式来使用, 常用的有${true},${false} ,${None} ,${null},${SPACE},${EMPTY}。Robot framework的IF判断
数字判断 ${num1} set variable ${3} Run Keyword If ${num1} ==0 log num 的值为 0 # 在 ELSE IF 这些关键字严格区分大小写,需要注意,前面的 ... 必须加上,不然会报语法 错误 ... ELSE IF ${num1} <0 log num 的值小于 0 ... ELSE IF ${num1} >4 log num 的值大于 0 ... ELSE log 灵异事件吧 字符判断 ${str1} set variable str1 Run Keyword If ' ${str1} '=='str2' log 结果为 str1=str2 ... ELSE IF ' ${str1} '=='str1' log str1 的值 ==str1 ... ELSE IF ' ${str1} '=='str3' log str1 的值 ==str3 ... ELSE log 灵异事件吧 #变量var值为字符时,在判断条件中其需要加单引号或双引号(如上图红色框中所示), 为′{var} ’ 或者 ” var ” #在判断条件中,与变量 {var}对比的字符常量也需要加单引号或双引号,为 ’ tttt ’ 或 者 ” tttt ” 布尔类型 ${var} set variable ${false} Run Keyword If ${var} == ${0} log 布尔值的数字值为 0 ... ELSE log 布尔值的数字值为 1 Run Keyword If ' ${var} '==' ${true} ' log 该变量为 true ... ELSE IF ' ${var} '==' ${false} ' log 该变量为 false ... ELSE log 两者都不是 #在判断条件中,与变量 {var}对比的布尔值也需要加单引号或双引号,为 ’ true′或 者 ” {true} ” 列表中属性值判断 @{varlist} create list ${12} xxmm ${true} ${varfirst} set variable ${3} ${varsecond} set variable xxmm Run Keyword If ${varfirst} in @{varlist} and ' ${varsecond} ' in @{varlist} log 存在该数据 ... ELSE log 不存在 列表与列表是否相等对比 @{varlist1} create list ${11} ssmm ${false} @{varlist2} create list ${22} ssmm ${true} Run Keyword If @{varlist1} == @{varlist2} log 列表相等 ... ELSE log 两个列表不相等 列表元素对比 @{varlist1} create list ${22} ddmm ${false} @{varlist2} create list ${11} ddmm ${false} Run Keyword If ' @{varlist1}[1] '==' @{varlist2}[1] ' log 两个列表的 第二个元素相等 ... ELSE log 两个列表的第二个元素不相等 #列表元素值(如上图中@{varlist2}[1])为字符时,在判断条件中其需要加单引号或双引 号,如下图中@{varlist2}[1],变为 ’ @{varlist2}[1] ’ 或者 ” @{varlist2}[1] ”Robot framework的FOR_IN循环
FOR_IN 循环 设置循环次数 :FOR ${i} IN RANGE 3 # 从 0 开始,循环三次 \ log ${i} :For ${i} IN RANGE 1 10 # 从 1 开始,循环 9 次 \ log ${i} :For ${i} IN RANGE 1 10 2 # 从 1 开始,步长为 2 ,循环 5 次 \ log ${i} #用于与一般关键字做区分,对于循环结构体内的每一行,使用 \ 作为改行的行首关键 字。 #对于循环中的变量,可以在 IN 关键字后给出所有变量,也可以从一个列表中进行赋值, 每次循环从列表中取出一个值 多参循环 :FOR ${i} ${j} IN 1 2 x y \ log many ${i} ${j} # 第一次循环输出 1 , 2 ,第二次循环输入 x,y 多参列表循环 @{list} Create List 1 2 3 amm :FOR ${i} ${j} IN @{list} \ log many ${i} ${j} # 第一次循环输出 1 , 2 ,第二次循环输入 x,y FOR_IN 嵌套循环 # 定义两个关键字内部循环、外部循环进行测试 @{a} Create List a1 a2 a3 a4 @{b} Create List b1 b2 b3 b4 @{c} Create List c1 c2 c3 c4 @{table} create list @{a} @{b} @{c} 外部循环 @{table} ***Keyword*** 内部循环 [Arguments] ${row} :FOR ${cell} IN ${row} \ log ${cell} 外部循环 [Arguments] @{table} :FOR ${row} IN @{table} \ log many 开始进入内部循环 \ 内部循环 ${row} #PS :注意参数传递问题, ${row} 可以代指 @{row} 重复执行 x 次 Repeat Keyword 3 log 循环执行 3 次 退出循环 @{list} Create List 1 2 3 amm :FOR ${i} IN ${list} \ log ${i} \ Run Keyword If ${i} == ${2} Exit For LoopRobot framework变量运算
特殊变量运算 ${test_ 数字变量运算 } set variable ${3*4} ${test_ 布尔类型 true 运算 } set variable ${true*4-3} ${test_ 布尔类型 false 运算 } set variable ${false*4+5} ${test_space 运算 } set variable ${space*6} +111 加减乘除 ${var1} set variable ${5} ${var2} set variable ${6} comment 加减乘除运算 ${var1+var2} evaluate ${var1} + ${var2} ${var1-var2} evaluate ${var1} - ${var2} ${var1*var2} evaluate ${var1} * ${var2} ${var1/var2} evaluate ${var1} / ${var2} Python表达式运算 ${result} set variable ${3.14} ${status} evaluate 0< ${result} <10 ${result 向上取整 } evaluate int( ${result} ) ${result 向下取整 } evaluate math.ceil( ${result} ) math
RobotFramework 基础语法
RobotFramework 基础语法
RF 基础语法整理修改版,之前整理了一点 RF 的基础语法,有遗漏的地方,偶然看到了, 补充一下 **欢迎加入测试交流群:夜行者自动化测试(816489363)进行交流学习QAQ**— 阿木木
搭建测试脚本框架的思想:
通常我们不建议把测试脚本写成-一个顺序执行的测试过程,我们希望按照下面的层次去设 计我们的测试脚本 ● 测试层:模拟手动测试用例流程,串联一-系列已经封装好的功能模块,并在合适的时候 加入断言,判断测试结果 ● UI层:抽象UI操作上的通用动作,根据不同页面的功能,对其ACTION,功能进行封装。 ● 业务逻辑层:非UI操作,是一些具体的业务流程,把这些业务逻辑进行分类归纳,封装成 不同的功能模块 ● 数据处理层:主要是对在测试过程中用到不同数据的处理,比如配置参数读取,读取数据 库,解析HTTP响应数据,以及读取不同格式的外部文件等等。我们希望这些都能封装成不 同类。 ● 公用程序层: 主要是对测试过程中常用一-些功能的封装,比如一-些I/0操作,日期,读 取系统信息等等 ● 日志层:测试是一定要有日志的,现在有许多的成熟的日志框架,我们可以直接引用这些 框架,比如logger, log4j等等RF的BuiltIn库关键字简介(重要)
Evaluate:用于执行Python语句,如计算等 Should系列:用于判断,如Should Be Equal As String 判断两个字符串是否相同 Convert to系列:用于类型转换,如Convert To String Run Keyword系列:根据判断条件的真假决定是否执行关键字,如Run Keyword If Exit For Loop:用于退出循环 根据实际情况去查看RF保留的关键字即可Robot framework基本数据类型的创建
RF用$,@,&分别表示变量,列表,和字典 RF的几种数据类型 ${var} set variable ${3} ${float} set variable ${3.14} ${float} set variable ${-1e-4} ${test_false} set variable ${false} ${test_true} set variable ${true} ${test_null} set variable ${null} ${test_None} set variable ${None} ${test_string} set variable test10086 ${test_tuple} set variable 1,2 @{test_list} create list 1 xy ${test_dictionary} create dictionary a=12 b=13 c=14 ${test_space} set variable ${space} ${test_ 引号空格 } set variable ' ${space} ' ${test_4*space} set variable ${space*4} ${test_4*space} set variable ' ${space*4} ' ${test_empty} set variable ${empty} 因为RF中都是字符,传一些特殊的值就需要用内置的变量类似${6}的格式来使用, 常用的有${true},${false} ,${None} ,${null},${SPACE},${EMPTY}。Robot framework的IF判断
数字判断 ${num1} set variable ${3} Run Keyword If ${num1} ==0 log num 的值为 0 # 在 ELSE IF 这些关键字严格区分大小写,需要注意,前面的 ... 必须加上,不然会报语法 错误 ... ELSE IF ${num1} <0 log num 的值小于 0 ... ELSE IF ${num1} >4 log num 的值大于 0 ... ELSE log 灵异事件吧 字符判断 ${str1} set variable str1 Run Keyword If ' ${str1} '=='str2' log 结果为 str1=str2 ... ELSE IF ' ${str1} '=='str1' log str1 的值 ==str1 ... ELSE IF ' ${str1} '=='str3' log str1 的值 ==str3 ... ELSE log 灵异事件吧 #变量var值为字符时,在判断条件中其需要加单引号或双引号(如上图红色框中所示), 为′{var} ’ 或者 ” var ” #在判断条件中,与变量 {var}对比的字符常量也需要加单引号或双引号,为 ’ tttt ’ 或 者 ” tttt ” 布尔类型 ${var} set variable ${false} Run Keyword If ${var} == ${0} log 布尔值的数字值为 0 ... ELSE log 布尔值的数字值为 1 Run Keyword If ' ${var} '==' ${true} ' log 该变量为 true ... ELSE IF ' ${var} '==' ${false} ' log 该变量为 false ... ELSE log 两者都不是 #在判断条件中,与变量 {var}对比的布尔值也需要加单引号或双引号,为 ’ true′或 者 ” {true} ” 列表中属性值判断 @{varlist} create list ${12} xxmm ${true} ${varfirst} set variable ${3} ${varsecond} set variable xxmm Run Keyword If ${varfirst} in @{varlist} and ' ${varsecond} ' in @{varlist} log 存在该数据 ... ELSE log 不存在 列表与列表是否相等对比 @{varlist1} create list ${11} ssmm ${false} @{varlist2} create list ${22} ssmm ${true} Run Keyword If @{varlist1} == @{varlist2} log 列表相等 ... ELSE log 两个列表不相等 列表元素对比 @{varlist1} create list ${22} ddmm ${false} @{varlist2} create list ${11} ddmm ${false} Run Keyword If ' @{varlist1}[1] '==' @{varlist2}[1] ' log 两个列表的 第二个元素相等 ... ELSE log 两个列表的第二个元素不相等 #列表元素值(如上图中@{varlist2}[1])为字符时,在判断条件中其需要加单引号或双引 号,如下图中@{varlist2}[1],变为 ’ @{varlist2}[1] ’ 或者 ” @{varlist2}[1] ”Robot framework的FOR_IN循环
FOR_IN 循环 设置循环次数 :FOR ${i} IN RANGE 3 # 从 0 开始,循环三次 \ log ${i} :For ${i} IN RANGE 1 10 # 从 1 开始,循环 9 次 \ log ${i} :For ${i} IN RANGE 1 10 2 # 从 1 开始,步长为 2 ,循环 5 次 \ log ${i} #用于与一般关键字做区分,对于循环结构体内的每一行,使用 \ 作为改行的行首关键 字。 #对于循环中的变量,可以在 IN 关键字后给出所有变量,也可以从一个列表中进行赋值, 每次循环从列表中取出一个值 多参循环 :FOR ${i} ${j} IN 1 2 x y \ log many ${i} ${j} # 第一次循环输出 1 , 2 ,第二次循环输入 x,y 多参列表循环 @{list} Create List 1 2 3 amm :FOR ${i} ${j} IN @{list} \ log many ${i} ${j} # 第一次循环输出 1 , 2 ,第二次循环输入 x,y FOR_IN 嵌套循环 # 定义两个关键字内部循环、外部循环进行测试 @{a} Create List a1 a2 a3 a4 @{b} Create List b1 b2 b3 b4 @{c} Create List c1 c2 c3 c4 @{table} create list @{a} @{b} @{c} 外部循环 @{table} ***Keyword*** 内部循环 [Arguments] ${row} :FOR ${cell} IN ${row} \ log ${cell} 外部循环 [Arguments] @{table} :FOR ${row} IN @{table} \ log many 开始进入内部循环 \ 内部循环 ${row} #PS :注意参数传递问题, ${row} 可以代指 @{row} 重复执行 x 次 Repeat Keyword 3 log 循环执行 3 次 退出循环 @{list} Create List 1 2 3 amm :FOR ${i} IN ${list} \ log ${i} \ Run Keyword If ${i} == ${2} Exit For LoopRobot framework变量运算
特殊变量运算 ${test_ 数字变量运算 } set variable ${3*4} ${test_ 布尔类型 true 运算 } set variable ${true*4-3} ${test_ 布尔类型 false 运算 } set variable ${false*4+5} ${test_space 运算 } set variable ${space*6} +111 加减乘除 ${var1} set variable ${5} ${var2} set variable ${6} comment 加减乘除运算 ${var1+var2} evaluate ${var1} + ${var2} ${var1-var2} evaluate ${var1} - ${var2} ${var1*var2} evaluate ${var1} * ${var2} ${var1/var2} evaluate ${var1} / ${var2} Python表达式运算 ${result} set variable ${3.14} ${status} evaluate 0< ${result} <10 ${result 向上取整 } evaluate int( ${result} ) ${result 向下取整 } evaluate math.ceil( ${result} ) math本文标签: RobotFramework 基础语法
版权声明:本文标题:RobotFramework 基础语法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694663106a254734.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论