自动化平台接口

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": {
                   "5bab1e4f4b197704e7a1f9c5_1_2567_0_png": "bb6df9a453c2d424aef7e9c80320e46c.png"
              }
          }
      ],
       "deviceInfo": {
           "storageFree": 0,
           "memFree": 317,
           "memTotal": 3590,
           "cpuModel": "高通 MSM8953",
           "ip": "10.9.0.48",
           "cpuCoreCount": "八核",
           "storageTotal": 0,
           "resolution": "1080*1920",
           "screenSize": "5.5",
           "osVersion": "7.1.2",
           "sdcardTotal": 0,
           "sdcardFree": 0,
           "model": "vivo X9",
           "cpuFeq": "未知",
           "sn": "c9ceda59",
           "brand": "vivo"
      },
       "screenshots": [
          {
               "name": "5bab1e4f4b197704e7a1f9c5_1_2567_0_png",
               "url": "bb6df9a453c2d424aef7e9c80320e46c.png"
          }
      ],
       "result": false,
       "errorLogcatUrl": "",
       "performance": {
           "installTime": 15.54,
           "firstLaunchTime": 2.72
      },
       "bLaunch": true,
       "errors": []
  },
   "status": 0
}

失败

{
   "status" : 1 | 10 | 50 ,
   "message" : "XXXXXX", //错误原因,有可能为null
}

公共用例回退历史列表

GET /arcus/history/returnFromPublicList

request

参数名
类型
必填/选填
描述
packageName String 选填 包名
appName String 选填 应用名
page String 选填 页数,默认为0
pz String 选填 每页显示记录数,默认为0,全部显示
orderBy String 选填 排序字段:appName、groupId、recordTime等
reverse String 选填 true | false,是否倒序

response

成功

{
   "message": {
       "total": 1,
       "page": 1,
       "items": [
          {
               "groupName": "maimai_test_ok_c",
               "publisherOpUserName": "张辉",
               "execStatus": "SUCCESS",
               "recordTime": "2018-09-18 21:16:49",
               "appName": "脉脉",
               "returnReason": "",
               "groupId": "maimai_test_ok_c",
               "ownerUserName": "王欣",
               "testExecTime": "2018-09-18 21:13:16",
               "packageName": "com.taou.maimai",
               "testAppVersion": "4.23.22(1279)"
          }
      ]
  },
   "status": 0
}

失败

{
   "status" : 1 | 3 | 50 ,
   "message" : "XXXXXX", //错误原因,有可能为null
}

公共用例报告列表

GET /arcus/task/publicScriptTaskList

request

参数名
类型
必填/选填
描述
packageName String 选填 包名
appName String 选填 应用名
page String 选填 页数,默认为0
pz String 选填 每页显示记录数,默认为0,全部显示
sort String 选填 排序字段:appName、modifyTime、moveInTime等
reverse String 选填 true | false,是否倒序
keyword String 选填 应用名称|版本号(versionName或versionCode)进行搜索
filter String 选填 all | done | waiting | pending | running | pause

response

成功

{
   "message": {
       "total": 2,
       "taskList": [
          {
               "appName": "脉脉",
               "runPercent": 100,
               "description": "1设备+1用例+性能+安全",
               "useNewAlgorithm": true,
               "versionName": "4.23.22",
               "readReport": true,
               "versionCode": "1279",
               "throughputRate": 100,
               "webTaskId": "5ba9e5b94b197704e7c4a94c",
               "startTime": "2018-09-25 15:37:28",
               "packageName": "com.taou.maimai",
               "apkSize": "24.15",
               "endTime": "2018-09-25 15:38:34",
               "scriptAlwaysRun": "false",
               "status": "DONE"
          },...
      ],
       "page": 1
  },
   "status": 0
}

失败

{
   "status" : 1 | 50 ,
   "message" : "XXXXXX", //错误原因,有可能为null
}

任务派发

POST /arcus/task/dispatch

request

参数名
类型
必填/选填
描述
data String 必填 序列化的DistributeWebTask类

DistributeWebTask类

public class DistributeWebTask {
private String userNameMd5; //用户名md5
private List<WebTaskType> type; //web任务类型
private String hasJava; //是否带有java脚本
private List<String> scriptType;
private String apkId; //APK的md5
/* 公有的型号过滤器列表
* String为”设备型号$$$OS版本“
*/
private List<String> publicMobileFilter;

private List<String> badPublicMobileFilter;
/* 私有的型号过滤器列表
* String为”用户名$$$设备型号$$$OS版本“
*/
private List<String> privateMobileFilter;

private List<String> mailList;
private String uiTravelUserName; //UI遍历自动填充用户名
private String uiTravelPassword; //UI遍历自动填充密码
private boolean uiTravelChecked; //用户是否选中使用登陆信息
private long uiTravelExecTime; //UI遍历执行时间,单位:秒
private int uiTravelExecSteps; //UI遍历执行步数,单位:步
private int uiTravelType = -1; //UI遍历类型
private int uiTravelSwipeType = -1; //欢迎界面滑动方式
private String rerunFrom; //说明任务是重测,从哪个项目开始重测的。(存的是需要重测的webTaskId)
private List<PluginItemPojo> plugins; //当用户在同一个webTask中勾选多个插件时,会有多个。每个元素都是pluginId 和 pluginArgs组成

private List<String> caseGroups; //用例组列表(item:caseGroupId$$$userNameMd5)
private boolean scriptOrderExec; //脚本是否顺序执行
private boolean scriptAlwaysRun;  //脚本是否持续执行
private boolean publicScript; //公共用例任务
   private boolean scriptNodejsRegression; //是否为用例nodejs回归
   private int uiTravelDeep;   //UI遍历的深度
}

response

成功

{
"status": 0,
"message":
{
"appName":"应用apk名称" ,
"packageName":"" ,
"versionName":"" ,
"versionCode":"",
"apkSize": 20.00,
"launcherActivity":"" ,
"mainActivity":"" ,
"iconUrl":"http://xxx",
"dispatchTime": "",
"scriptCount": 20,
"deviceCount": 20,
"bUITravel": true,
"estimateRunTime": "2-8小时",
"saveMoney": 75,
"filterMobiles" : [
{"brand": "华为",
"model": "H60-L102",
"osVersion" "android 4.1.4",
"resolution": "800*600",
},
...
]
}
}

失败

{
   "status" : 1 | 10 | 13 | 50 ,
   "message" : "XXXXXX", //错误原因,有可能为null
}
 

猜你喜欢

转载自www.cnblogs.com/trxdy/p/9954931.html