robot framework的标签是一个简单而又强大的分类机制,功能如下:
- 标签在reports,logs以及测试数据中展示,显示关于测试用例的元数据信息
- 用例的执行统计(total,passed,failed就是自动基于标签收集的)
- 使用标签,可以包含或排除测试用例来执行
- 使用标签,可以指定哪些是关键用例
标签的几种方式:
- Force Tags:包含该设置的测试用例文件中所有用例都被指定打上这些标签
- Default Tags:没有单独设置Tags的用例将被打上这些默认标签
- [Tags] in the Test Case table:每个测试用例各自要打的标签,如果设置了,就不再包含Default Tags。所以可以通过设置一个空值来覆盖默认标签,也可用NONE。
- --settag 命令行选项:所有通过包含该选项的命令执行的测试用例,除了已有的标签,都会再加上选项中指定的标签。
标签本身就是任意的文本,但是它们会被标签化:去除所有的空格,全部转为小写。如果一个用例被打上相同的标签多次,仅保留第一个。标签可以使用变量来创建,只要变量存在即可。
建议使用标签来指定环境或用户信息等这类元数据。
实例一:登录
*** Test Cases *** 登录 [Tags] dltest 登录app 15000000001 mima 161a3797c824bccd58c *** Keywords *** 登录app [Arguments] ${username} ${password} ${jPushId} ${ssohost}=${EMPTY} log 开始登录 ${data}= Create Dictionary loginName=${username} password=${password} jPushId=${jPushId} ${json}= Rest.post /rest/account/login ${data} form ${ssohost} Should Be True ${json["success"]} Rest.post [Arguments] ${uri} ${params} ${type}=form ${cur_host}=${EMPTY} #设置代理服务器,方便调试 ${proxy}= Create Dictionary http=http://1270.0.1:8888 ${host}= Set Variable ${EMPTY} : FOR ${tag} IN @{TEST TAGS} ${host}= Evaluate $hosts.get($tag,"") Run Keyword If "${host}"!="" Exit For Loop #创建session,跨域模式,不需要维护Session Run Keyword If "${cur_host}"!="" Create Session _session ${cur_host} ... ELSE Create Session _session ${host} #根据请求数据的类型设置header ${headers}= Run Keyword If "${type}"=="form" Create Dictionary Content-Type=application/x-www-form-urlencoded ... ELSE IF "${type}"=="json" Create Dictionary content-Type=application/json ${response}= Post Request _session ${uri} ${params} headers=${headers} Should Be Equal As Strings ${response.status_code} 200 log ${response.text} ${json}= Set Variable ${response.json()} [Return] ${json}