建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

Cynthia成

发帖: 48粉丝: 19

发消息 + 关注

更新于2020年10月21日 10:40:38 1100 2
直达本楼层的链接
楼主
显示全部楼层
[技术干货] 【API进阶之路】研发需求突增3倍,测试团队集体闹离职

本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色。

到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年终奖可是息息相关的事儿。业务部门冲业绩,带动着研发的需求不断增加,这个部门说想要提前上线,那个部门说要临时加个需求,研发只能说我们得按排期来,这句话平时可能好使,可一旦需求和业绩相关,那研发就要火力全开,排期什么的就得靠边站了。

最近研发的需求量涨了3倍,开发团队拼命赶进度,却苦了测试团队。原本测试团队就人少压力大,现在需求涨了,测试人员却没增加,测试主管带着几个同事找到老板,说再这样下去真是干不了了。

没有测试可还行?这可急坏了老板,临时招人也来不及。他喊我过去商量,看有没有办法解决。老板的意思是希望我能够去带一带测试团队,给大家缓解下压力。但是吧,加上我一个人也解决不了什么问题呀,这可怎么办?

经过分析,我们发现测试的压力来自2个方面:一方面是要上线的项目集中爆发;另一方面是开发在赶进度,交付质量有所降低,再加上微服务架构下项目单元变多,测试的工作量也成倍增长。得想个办法从根本上解决这些问题。 

琢磨了一个晚上,我给老板提交了一份方案:把原先写的测试用例注册到华为云一站式云端测试平台——云测(CloudTest)上,使用云测API进行测试用例管理、接口测试等,提高测试效率,保障项目高质量支付。

云测.png

使用华为云云测API也比较容易,具体步骤如下。

一、TestHub服务操作

TestHub服务操作包括:新测试类型服务注册到云测、用户获取自己当前已经注册的服务。 

1、确定调用API鉴权时使用的Token,获取响应Header参数中X-Subject-Token对应的值。

2、确定Testhub服务名称及用户服务域名并注册。

接口相关信息:URL格式-POST /v1/services

请求示例:发送一条POST请求。

POST: https://{endpoint}/v1/services

{
  "service_name" : "这是一个测试类型名称",
  "server_host" : "https://xxx.xxx.xxx"
}

响应示例

{
  "service_name" : "这是一个测试类型名称",
  "service_id" : 13
}

3、确定Testhub服务已被注册成功。

接口相关信息:URL格式- GET /v1/services

请求示例:发送一条GET请求。

GET:https://{endpoint}/v1/services

响应示例:获取到返回的注册信息即证明用户已注册成功。

{
  "services" : [ {
    "id" : 13,
    "name" : "这是一个测试类型名称"
  } ]
}

二、用例操作

用例操作包括:创建测试用例、更新测试用例、获取测试用例详情、批量执行用例接口、批量更新测试用例结果。

1、确定调用API鉴权时使用的Token,获取响应Header参数中X-Subject-Token对应的值。

2、创建新的测试用例。

接口相关信息:URL格式-POST /v1/projects/{project_id}/testcases

请求示例:发送一条POST请求。

POST: https://{endpoint}/v1/projects/{project_id}/testcases

{
  "name" : "testcaseXXX",
  "service_id" : 13,
  "rank_id" : "2",
  "testcase_number" : "1234",
  "extend_info" : {
    "description" : "这是一条描述信息",
    "preparation" : "这是一条前置条件xxxxxx",
    "steps" : [ {
      "expect_result" : "<ol class=\"ordered\"><li class=\"ordered\"><span>结果一<li class=\"ordered\"><span>结果二<br />",
      "test_step" : "步骤一"
    } ],
    "label_list" : [ "标签一", "标签二" ],
    "module_id" : "b66aab5469cc4ab39b0dda8e644a42a4",
    "test_version_id" : "8.1.2",
    "fix_version_id" : "8.2.0.1",
    "assigned_id" : "b66aab5469cc4ab39b0dda8e644a42a4",
    "issue_id" : "b66aab5469cc4ab39b0dda8e644a42a4"
  }
}

响应示例

{
  "testcase_id" : "efdb403066474ab08836b9eeaaa23bca",
  "project_id" : "aswe4w5ty4032344tgse345eeaaa23bc",
  "service_id" : 13,
  "name" : "这是一个测试计划名称",
  "testcase_number" : "1234",
  "rank_id" : "2",
  "status_id" : "0",
  "assigned_user" : {
    "id" : "efdb403066474ab08836b9eeaaa23bca",
    "name" : "name_xxxxxx"
  },
  "execute_count" : 3,
  "result_id" : "0",
  "extend_info" : {
    "author" : {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx",
      "time" : "2020-06-09 16:55:57"
    },
    "updator" : {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx",
      "time" : "2020-06-09 16:55:57"
    },
    "domain" : {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx"
    },
    "description" : "这是一条描述信息",
    "preparation" : "这是一条前置条件xxxxxx ",
    "steps" : [ {
      "expect_result" : "<ol class=\"ordered\"><li class=\"ordered\"><span>结果一<li class=\"ordered\"><span>结果二<br />",
      "test_step" : "步骤一"
    } ],
    "label_list" : [ {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx"
    } ],
    "defect_list" : [ {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx"
    } ],
    "module" : {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx"
    },
    "issue" : {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx"
    },
    "test_version_id" : "string",
    "fixed_version" : {
      "id" : "efdb403066474ab08836b9eeaaa23bca",
      "name" : "name_xxxxxx"
    }
  }
}

3、确定用例创建成功且无需修改后,可执行用例并更新用例结果。

接口相关信息:URL格式-POST /v1/projects/{project_id}/testcases/execution

请求示例:发送一条POST请求。

POST: https://{endpoint}/v1/projects/{project_id}/testcases/execution

{
    "service_id": 13,
    "plan_id": "b66aab5469cc4ab39b0dda8e644a42a4",
    "execute_list": [
        {
            "testcase_id": "b66aab5469cc4ab39b0dda8e644a42a4",
            "execute_id": "efdb403066474ab08836b9eeaaa23bca",
            "result_id": "0",
            "start_time": 2020-06-2218: 11: 54
        }
    ]
}

响应示例

{
  "error_code" : "CLOUDTEST.000XXXXXX",
  "error_msg" : "失败原因XXXXX",
  "error_detail" : {
    "failed" : [ {
      "error_code" : "CLOUDTEST.000XXXXXX",
      "error_msg" : "失败原因XXXXX",
      "testcase_id" : "efdb403066474ab08836b9eeaaa23bca"
    } , {
      "error_code" : "CLOUDTEST.000XXXXXX",
      "error_msg" : "失败原因XXXXX",
      "testcase_id" : "251fca07b22f493692eb06b1754f07a8"
    }]
  }
}

4、等待用例脚本执行完毕后,需要调用接口将执行结果通过接口返回到Testhub服务同步数据。

接口相关信息:URL格式-POST /v1/projects/{project_id}/testcases/result

请求示例:发送一条POST请求。

POST:https://{endpoint}/v1/projects/{project_id}/testcases/result

{
    "service_id": 13,
    "execute_list": [
        {
            "testcase_id": "b66aab5469cc4ab39b0dda8e644a42a4",
            "execute_id": "efdb403066474ab08836b9eeaaa23bca",
            "result_id": "0",
            "end_time": 2020-06-23 18: 11: 54,
            "duration": 120,
            "description": "这是一条备注信息"
        }
    ]
}

响应示例

{
  "error_code" : "CLOUDTEST.000XXXXXX",
  "error_msg" : "失败原因XXXXX",
  "error_detail" : {
    "failed" : [ {
      "error_code" : "CLOUDTEST.000XXXXXX",
      "error_msg" : "失败原因XXXXX",
      "testcase_id" : "efdb403066474ab08836b9eeaaa23bca"
    } , {
      "error_code" : "CLOUDTEST.000XXXXXX",
      "error_msg" : "失败原因XXXXX",
      "testcase_id" : "251fca07b22f493692eb06b1754f07a8"
    }]
  }
}

通过云测平台,测试效率、交付质量都得到了提升,测试团队再也没人提离职了。


了解更多华为云API信息:

免费下载创新加速利器《华为云API精选手册》


【拓展阅读】

  1. 【API进阶之路】因为不会创建云服务器,我被实习生摆了一道

  2. 【API进阶之路】前浪的绝地反击与自我证明

  3. 【API进阶之路】甩锅大会上,我是如何绝地求生的

  4. 【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”

  5. 【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!

  6. 【API进阶之路】一个技术盲点,差点让整个项目翻车

  7. 【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播

  8. 【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!

  9. 【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏

  10. 【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的

  11. 【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研

  12. 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察

  13. 【API进阶之路】破圈,用一个API代替10人内容团队

  14. 【API进阶之路】用API打造一条自动化内容生产流水线

  15. 【API进阶之路】没有AI工程师也能做OCR文字识别

  16. 【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频

  17. 【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?


——活动推荐——

华为云已经成为全球主要云服务供应商,在华为云上开放了2400+ API,包括计算、存储、网络、应用服务、软件开发服务、视频、数据库、EI智能等74+产品,如何利用这些丰富强大的API快速开发自己的应用和服务,成为大家关注的热点。

华为云API学习赛,为入门初学者量身定制的学习平台,以赛带学,学以致用。无需代码,只需下载体验模板,按操作文档操作即可完成作品。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机超级激励!!识别下图二维码即可报名参加。

API入门学习赛·AI人脸识别

API入门学习赛·探险寻宝之旅


举报
分享

分享文章到朋友圈

分享文章到微博

氟西汀

发帖: 300粉丝: 25

发消息 + 关注

发表于2020年10月21日 10:58:08
直达本楼层的链接
沙发
显示全部楼层

属实难呐

评论
Cynthia成 2020-10-30 09:12 评论

不怕 有妙招~(*^▽^*)

... 查看全部
点赞 评论 引用 举报

白先生

发帖: 0粉丝: 4

发消息 + 关注

发表于2020年12月07日 10:17:34
直达本楼层的链接
板凳
显示全部楼层

感谢分享

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册