robot调用关键字传参的方式是用分隔符分开不同参数,如
keyword arg1 arg2 arg3 arg4
当参数中传入了使用@符号的列表变量时,@符号会将列表展开:
@{list1}= Create List arg2 arg3 arg4
keyword arg1 @{list1} 等效于 keyword arg1 arg2 arg3 arg4
keyword arg1 @{list1} arg5 等效于 keyword arg1 arg2 arg3 arg4 arg5
如果不想展开则使用$形式,这里类似于Perl中的引用和解引用,对于字典变量,&和$也类似。
举例说明
关键字定义为
@RobotKeyword
public int lengthOfList(String str,List<String> arr){
return str.length()+arr.size();
}
lengthOfList关键字返回的是字符串长度+列表长度
@RobotKeyword
public int keysCount(Map<String,Object> kvs){
return kvs.size();
}
keysCount关键字返回key的数量
*** Test Cases ***
直接使用列表原始值时
${len1}= lengthOfList str item0 item1
log ${len1}
should be true ${len1}==5
传入列表变量时
@{list}= Create List a0 a1 a2
${len0}= lengthOfList str1 ${list} #str:str1 arr:[a0,a1,a2]
${len1}= lengthOfList str1 @{list} #str:str1 arr:[a0,a1,a2]
${len2}= lengthOfList @{list} #str:a0 arr:[a1,a2]
${len3}= lengthOfList str1 str2 @{list} a3 #str:str1 arr:[str2,a0,a1,a2,a3]
should be true ${len0}==${len1}
should be true ${len1}==7
should be true ${len2}==4
should be true ${len3}==9
直接传入字典原始值时
${len1}= keysCount k1=v1 k2=v2 k3=v3
log ${len1}
should be true ${len1}==3
传入字典变量时
&{dic}= Create Dictionary k1=v1 k2=v2 k3=v3
${len0}= keysCount &{dic}
${len1}= keysCount ${dic}
${len2}= keysCount k4=v4 &{dic} k5=v5
should be true ${len0}==${len1}
should be true ${len0}==3
should be true ${len2}==5
有些情况下必须使用$引用方式,如关键字形参改为如下情况
public int lengthOfList(List<String> arr1,List<String> arr2)
public int keysCount(Map<String,Object> kvs1,Map<String,Object> kvs2)
浙公网安备 33010602011771号