• 工程结构
• Project工程
• TestSuite测试套件
• TestCase测试案例
• Resource资源文件
• Settings设置项-导入加载资源
• ExternalResource外部资源
• 常量和变量
• Keyword关键字
• 循环&分支
• RF内置测试库
工程结构
Settings设置项
• DefaultTags用于指定 测试用例的标签.
• Library 引入的各种依赖包
eg:Library JdbutilLibrary
• Resource 各种依赖文件
注意路径结构:Resource ../../values/test/urlconf.robot
• Setup 在测试用例之前执行
• TestTemplate用于指定 测试模板.测试用例本身将只包含数据,每行数据都是传递给该关键字的参数,最终实现数据驱动的测试
常量与变量
• 常量
环境变量(统一用标识符”%”来使用)
数值常量(例如数值2.6,可以写成${2.6})
特殊字符常量(${/},${:},${False},${None},${SPACE}等)
• 变量介绍:
Robot Framework 的变量分为 标量, 列表 和 字典, 分别使用语法格式 ${SCALAR}, @{LIST} 和 &{DICT} 来定义。
• 变量赋值 ----变量定义区域:变量区,case区域
${service} SetVariable rpmBindCardInit
• 取关键字返回值作为变量值
${request_time} sendPost.Get Time Stamp
${RESPONSE} DO SOMETHING ${PARAMS}
或:
${RESPONSE}= DOSOMETHING ${PARAMS}
• 列表变量赋值
@{NAMES} Matti Teppo
@{NAMES2} @{NAMES} Seppo
@{NOTHING}
@{MANY} one two three four
... five six seven
• 获取列表项
使用下标语法 @{NAME}[index] 可以获取到列表变量中指定项的值, 其中 index 是要获取的项的下标. 下标从0开始, 负数的下标等同于从列表末尾向前数. 下标长度超过列表范围会导致错误.eg.@{USER}[0]
也可以使用For循环遍历列表
• 字典声明
&{USER1} name=Matti address=xxx phone=123
&{USER2} name=Teppo address=yyy phone=456
&{MANY}first=1 second=${2} ${3}=third
&{EVENMORE} &{MANY} first=override empty=
... =empty key\=here=value
• 获取字典值
可以通过 &{NAME}[key] 这样的语法格式获取字典中某项的值, 其中 key 是键的名称. 键名当作字符串处理, 非字符串的键可以用变量代替. 通过这种方式获取到的值可作为标量变量使用.
当字典被当作列表迭代时, 实际返回的值是字典的键. 例如, @{MANY} 变量的值是 [‘first‘, ‘second‘, 3].
Keywords
基准库中的关键字:log、定义变量:Set variable、连接对象:Catenate、定义列表:Create List、设置休眠时间:sleep等。
自定义关键字:
• GetPay Password
${cipher}Password PayEncrypt ${S_KEY} ${USER_PASSWORD_PAY}
[Return] ${cipher}
• GETNOW TIME S
${timestamp} JdbutilLibrary.Get Timestamp s
[Return] ${timestamp}
• GETNOW TIME MS
• ${timestampms} JdbutilLibrary.Get Timestamp ms
循环和分支
• runkeyword if分支
run keyword if ${timeLimited}
... client http post ${USER2.session} /mybankv21/phptradeui/extendterm/add data=${submitData} expect=1
... ELSE
• For循环:
• 在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环结构体内的每一行,使用\ 作为改行的行首关键字
[Arguments] @{users}
: FOR ${user} IN @{users}
\ User Login ${user}
RF内置测试库
• Builtin: Robot Framework 标准类库,提供常用的关键字,例如:log
• Convert:转换-eg:类型转换、大小写转换
• Verify:Fail,停止当前Case
• Variables:${service} Set Variable rpmBindCardInit
• RunKeyword:Run Keyword If Test Failed
• Evaluate:随机数、随机字符串、字符串处理、日期处理等
• ${str} Evaluate String.ascii_uppercase string
• Collections(List、Dictionary)
• ${commitData} Create Dictionary
• ... comp_jdbid=11111
• DateTime、File、path等等
PythonRequests-发送请求
• Get方法:requests.get(url+uri+‘?‘+res,cookies=cookie,headers=header)
• Post方法:r = requests.post(url+uri,cookies=cookie,data=data)
• 不需要cookie信息: req = request.Request(url+uri, data=data)
结果查看及问题定位
• 通过DEBUG打断点调试,在Message Log窗口中查看日志;
• 通过console控制台打开report.html或log.html查看详细信息;
debug
常见问题
• 引用方法后,进行导包,ctrl+1;
• 空格不符合规范会报错,建议直接使用Tab键;
• 所需关键字没有被封装,自己完成python方法实现,然后引用;
原文:https://www.cnblogs.com/yinwenbin/p/10433028.html