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}