1. 程式人生 > >自動化平臺介面

自動化平臺介面

2018-09-27整理

返回值

Json訊息格式:所有服務端返回的訊息都使用如下格式的包裝:

{
   "status":0,
   "message":"xxx"
}

status=0說明請求成功,message攜帶資料結果

status!=0說明失敗,具體失敗原因參見status數值。

status取值含義

0 成功 1 使用者未登入 2 使用者被禁用 3 沒有許可權訪問 4 sessionId錯誤,可能是被偽造的,視同未登入,需要使用者重新登入 5 使用者資訊不完全,需要補全資訊 6 邀請碼不存在 10 引數格式錯誤 11 用例重名 12 apk名稱錯誤,用於上傳apk時,appname和apk解析結果不一致時報錯。 13 裝置全部被佔用 14 引數值錯誤19 操作過期 20 應用|用例解析錯誤 21 apk下載失敗(用於通過網站下載方式上傳apk時的下載失敗) 22 apk大小超過限制 23 apk上傳/下載操作過於頻繁,1分鐘內操作3次開始標記,2分鐘內禁止該操作 24 限制一個使用者在5分鐘內最多發15個任務 25 獲取應用失敗 26 下載地址不正確 27 管理員已知曉,定位問題後第一時間回覆哦。 28 webTask中選擇的公有裝置數超過該使用者級別的限制數。目前所有使用者的公有裝置數限制為20。 29 該使用者當天傳送任務數超過每個賬戶每天傳送任務數的限制。 30 這個webTask中用例數超過選擇用例數的限制。 31 操作失敗 32 用例組不存在 33 公共用例組中存在其他使用者的重名用例組34 未測試通過的用例組不能移入公共用例池 35 當前用例組版本已經移入公共庫 40 沒有管理員許可權 41 管理員單獨密碼輸入錯誤 43 模擬使用者功能只能在內網使用 44 請求資源不存在 45 apk的安全等級為危險 460 上傳的檔案不存在 461 解壓後的資料夾不存在 462 用例檔案無效 50 內部錯誤 60 資料庫錯誤

介面

用例與lib庫上傳

POST /arcus/caseFile/uploadCaseAndLib

request

引數名 型別 必填/選填  
caseAndLibFile MultipartFile 必填 包含用例與lib庫的zip包

response

成功

{
   "message": {
       "cases": [
          {
               "caseName": "test1_send_gossip_text",
               "description": "",
               "caseFileName": "maimai_gossip"
          },...
      ],
       "uploadId": "0923b374ae36dd0ab236d7c6c679fa4b",
       "scriptType": "Python"
  },
   "status": 0
}

失敗

{
   "status" : 1 | 10 | 20 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

新增用例

POST /arcus/caseFile/add

request

引數名 型別 必填/選填 描述
packageName String 必填  
appName String 必填  
uploadId String 必填 /arcus/caseFile/uploadCaseAndLib介面的返回值
scriptType String 必填 Python | Java
cases Array 必填 ["caseFileName1$$$caseNameA", "caseFileName2$$$caseNameB", ...]
cover String 選填 目前為總是覆蓋

response

成功

{
   "status" : 0,
   "message" : null
}

失敗

{
   "status" : 1 | 10 | 11 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

刪除用例檔案

POST /arcus/caseFile/delete

request

引數名 型別 必填/選填 描述
ids Array 必填 用例檔案id陣列

response

成功

{
   "status" : 0,
   "message" : null
}

失敗

{
   "status" : 1 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

用例列表

GET /arcus/caseFile/scriptList

request

引數名 型別 必填/選填 描述
packageName String 選填 包名
appName String 選填 應用名
groupId String 選填 用例組ID

response

成功

{
   "message": [
      {
           "modifyTime": "2018-09-25 15:39:21",
           "tested": false,
           "appName": "脈脈",
           "scriptType": "Python",
           "groupId": "hello_world",
           "name": "doing",
           "platformType": "Android",
           "description": null,
           "id": "2510",
           "packageName": "com.taou.maimai",
           "caseFileName": "hello_world"
      },...
  ],
   "status": 0
}

失敗

{
   "status" : 1 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

公共用例列表

GET /arcus/caseFile/publicScriptList

request

引數名 型別 必填/選填 描述
packageName String 必填 包名
appName String 必填 應用名
groupId String 必填 用例組ID
userNameMd5 String 必填 使用者標識

response

成功

{
   "message": [
      {
           "modifyTime": "2018-09-26 21:05:26",
           "tested": false,
           "appName": "脈脈",
           "scriptType": "Python",
           "groupId": "maimai_test_ok_b",
           "name": "test2_send_emoji_message1",
           "platformType": "Android",
           "description": null,
           "id": "2609",
           "packageName": "com.taou.maimai",
           "caseFileName": "maimai_test_ok_b"
      },...
  ],
   "status": 0
}

失敗

{
   "status" : 1 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

用例組列表

GET /arcus/caseGroup/list

request

引數名 型別 必填/選填 描述
packageName String 選填 包名
appName String 選填 應用名
showCaseNames String 選填 顯示用例組下的用例欄位

response

成功

{
   "message": [
      {
           "personalManageStatus": "NO_PUBLIC",
           "modifyTime": "2018-09-25 15:39:20",
           "execStatus": "NOT_RUNNING",
           "appName": "脈脈",
           "scriptType": "Python",
           "name": "maimai_gossip",
           "platformType": "Android",
           "publicGroup": false,
           "moveInTime": "",
           "id": "maimai_gossip",
           "packageName": "com.taou.maimai",
           "userNameMd5": "6f3f095f72f3b950"
      },...
  ],
   "status": 0
}

失敗

{
   "status" : 1 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

刪除用例組

POST /arcus/caseGroup/delete

request

引數名 型別 必填/選填 描述
packageName String 必填 包名
appName String 必填 應用名
groupId String 必填 用例組ID

response

成功

{
   "status" : 0,
   "message" : null
}

失敗

{
   "status" : 1 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

移入公共用例池

POST /arcus/caseGroup/moveInPublic

request

引數名 型別 必填/選填 描述
packageName String 必填 包名
appName String 必填 應用名
groupId String 必填 用例組ID

response

成功

{
   "status" : 0,
   "message" : null
}

失敗

{
   "status" : 1 | 33 | 34 | 35 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

從公共用例池回退

POST /arcus/caseGroup/returnFromPublic

request

引數名 型別 必填/選填 描述
packageName String 必填 包名
appName String 必填 應用名
groupId String 必填 用例組ID
returnReason String 選填 回退原因

response

成功

{
   "status" : 0,
   "message" : null
}

失敗

{
   "status" : 1 | 3 | 32 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

公共用例組列表

GET /arcus/caseGroup/publicList

request

引數名 型別 必填/選填 描述
packageName String 選填 包名
appName String 選填 應用名
page String 選填 頁數,預設為0
pz String 選填 每頁顯示記錄數,預設為0,全部顯示
orderBy String 選填 排序欄位:appName、modifyTime、moveInTime等
reverse String 選填 true | false,是否倒序
showCaseNames String 選填 顯示用例組下的用例欄位

response

成功

{
   "message": {
       "total": 1,
       "page": 1,
       "items": [
          {
               "execStatus": "SUCCESS",
               "appName": "脈脈",
               "platformType": "Android",
               "userNameMd5": "4d167387b28d13b3",
               "returnTime": "",
               "testAppVersion": "4.23.22(1279)",
               "modifyTime": "2018-09-18 20:58:51",
               "publicManageStatus": "MOVE_IN",
               "scriptType": "Python",
               "name": "maimai_test_ok_b",
               "publicGroup": true,
               "testExecTime": "2018-09-25 15:38:19",
               "id": "maimai_test_ok_b",
               "packageName": "com.taou.maimai"
          },...
      ]
  },
   "status": 0
}

失敗

{
   "status" : 1 | 3 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

更新狀態為穩定

POST /arcus/caseGroup/updatePublicCaseGroupToStable

request

引數名 型別 必填/選填 描述
packageName String 必填 包名
appName String 必填 應用名
groupId String 必填 用例組ID

response

成功

{
   "status" : 0,
   "message" : null
}

失敗

{
   "status" : 1 | 3 | 32 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

通過裝置獲取任務報告的用例組列表

GET /arcus/report/getScriptListWithGroupForDevice

request

引數名 型別 必填/選填 描述
wTaskId String 必填 web任務ID
model String 必填 裝置型號
osVersion String 必填 系統版本

response

成功

{
   "message": {
       "scriptTaskList": {
           "maimai_test_ok_a": [
              {
                   "scriptId": "2567",
                   "name": "test2_send_emoji_message",
                   "status": "executefail",
                   "mTaskId": "5bab1e4f4b197704e7a1f9c5:1",
                   "bInstall": true,
                   "bLaunch": true,
                   "bScript": true,
                   "bUninstall": true,
                   "bFinish": true
              },...
          ],...
      },
       "count": {
           "running": 0,
           "fail": 0,
           "waiting": 0,
           "pass": 3,
           "platformError": 0
      },
       "deviceInfo": {
           "screenSize": "5.5",
           "osVersion": "7.1.2",
           "cpuModel": "高通 MSM8953",
           "cpuCoreCount": "八核",
           "cpuFeq": "",
           "model": "vivo X9",
           "resolution": "1080*1920",
           "brand": "vivo"
      },
       "scriptOrderExec": "true"
  },
   "status": 0
}

失敗

{
   "status" : 1 | 3 | 10 | 50 ,
   "message" : "XXXXXX", //錯誤原因,有可能為null
}

獲取任務報告中用例的詳細資訊

GET /arcus/report/getScriptDetail

request

引數名 型別 必填/選填 描述
mTaskId String 必填 mobile任務ID
scriptId String 必填 用例ID

response

成功

{
   "message": {
       "bScript": false,
       "bInstall": true,
       "scriptLogUrl": "http://arcus.in.taou.com/arcus/mobileTaskResult/result/get/log?id003d5bab1e4f4b197704e7a1f9c5_1_2567.log",
       "logcatUrl": "http://arcus.in.taou.com/arcus/mobileTaskResult/result/get/log?id003d5bab1e4f4b197704e7a1f9c5:1-logcat",
       "taskLogUrl": "http://arcus.in.taou.com/arcus/mobileTaskResult/result/get/log?id003d5bab1e4f4b197704e7a1f9c5:1-tasklog",
       "bFinish": true,
       "bUninstall": true,
       "mTaskType": "SCRIPT",
       "scriptResults": [
          {
               "id": "2567",
               "name": "test2_send_emoji_message",
               "fileName": "maimai_test_ok_a",
               "scriptLogKey": "http://arcus.in.taou.com/arcus/mobileTaskResult/result/get/log?id003d5bab1e4f4b197704e7a1f9c5_1_2567.log",
               "execTime": 76437,
               "result": false,
               "screenshotMap": {
                   "5bab1e4f4b197704e7a1f9c5_1_2567_0": "5bab1e4f4b197704e7a1f9c5_1_2567_0.png"
              },
               "screenshots": {
                   "5bab1e