【API进阶之路】研发需求突增3倍,测试团队集体闹离职
摘要:最近研发的需求量涨了3倍,开发团队拼命赶进度,可苦了测试团队。
本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色。
到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年终奖可是息息相关的事儿。业务部门冲业绩,带动着研发的需求不断增加,这个部门说想要提前上线,那个部门说要临时加个需求,研发只能说我们得按排期来,这句话平时可能好使,可一旦需求和业绩相关,那研发就要火力全开,排期什么的就得靠边站了。
最近研发的需求量涨了3倍,开发团队拼命赶进度,却苦了测试团队。原本测试团队就人少压力大,现在需求涨了,测试人员却没增加,测试主管带着几个同事找到老板,说再这样下去真是干不了了。
没有测试可还行?这可急坏了老板,临时招人也来不及。他喊我过去商量,看有没有办法解决。老板的意思是希望我能够去带一带测试团队,给大家缓解下压力。但是吧,加上我一个人也解决不了什么问题呀,这可怎么办?
经过分析,我们发现测试的压力来自2个方面:一方面是要上线的项目集中爆发;另一方面是开发在赶进度,交付质量有所降低,再加上微服务架构下项目单元变多,测试的工作量也成倍增长。得想个办法从根本上解决这些问题。
琢磨了一个晚上,我给老板提交了一份方案:把原先写的测试用例注册到华为云一站式云端测试平台——云测(CloudTest)上,使用云测API进行测试用例管理、接口测试等,提高测试效率,保障项目高质量支付。

使用华为云云测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>结果一</span></li><li class=\"ordered\"><span>结果二</span></li></ol><p><br /></p>",
"test_step" : "<p>步骤一</p>"
} ],
"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>结果一</span></li><li class=\"ordered\"><span>结果二</span></li></ol><p><br /></p>",
"test_step" : "<p>步骤一</p>"
} ],
"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精选手册》
——活动推荐——
华为云已经成为全球主要云服务供应商,在华为云上开放了2400+ API,包括计算、存储、网络、应用服务、软件开发服务、视频、数据库、EI智能等74+产品,如何利用这些丰富强大的API快速开发自己的应用和服务,成为大家关注的热点。
华为云API学习赛,为入门初学者量身定制的学习平台,以赛带学,学以致用。无需代码,只需下载体验模板,按操作文档操作即可完成作品。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机超级激励!!
API入门学习赛·AI人脸识别
API入门学习赛·探险寻宝之旅
【API进阶之路】研发需求突增3倍,测试团队集体闹离职的更多相关文章
- 【API进阶之路】API带来的微创新,打动投资人鼓励我创业
摘要:怎么帮助创作者提高视频的推荐量呢?我发现了:视频的封面图非常重要. 上回说到,老板一拍脑门,交代了一个新项目:小成本开发一款短视频剪辑工具([<[API进阶之路]人少钱少需求多的新项目该怎 ...
- 【API进阶之路】高考要考口语?我用多模态评测API做了一场10w+刷屏活动
摘要:闲着没事用多模态评测API做了一个测评英语口语的互动小游戏,居然成了一场10万人参与的刷屏级活动. 上一期故事说到,我成为了公司技术委员会副主席,上任后的第一件事是建立了一个云容器化的研发资料库 ...
- 【API进阶之路】破圈,用一个API代替10人内容团队
摘要:我用一个API代替10人内容团队,一年帮老板省了一百万. 自从学习API以后,我用技术手段相继帮助业务部.市场部解决了不少难题,算是从纯研发破圈发展到了业务端.老板召开业务讨论会的时候也会带上我 ...
- 【API进阶之路6】一个技术盲点,差点让整个项目翻车
上次教了实习生一个方案之后,这小子跟运营妹子的关系是越走越近,时不时地撒把狗粮,在我司真正实现了研发运营一家亲~(上回你没看?戳上文剧情回顾:万万没想到,一个技术方案帮实习生追到了运营妹子) 这回想跟 ...
- 【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏
摘要:通过把所需建立的工具库做成云容器化应用,用CCE引擎,通过API网关调用云容器引擎中的容器应用.不仅顺应了云原生的发展趋势,还能随时弹性扩容,满足公司规模化发展的需求. 公司开完年中会后,大家的 ...
- 【API进阶之路】用API打造一条自动化内容生产流水线
摘要:搞定了内容审核之后,我又把抓取工具.内容审核API.文本摘要生成API串联在一起,从抓到审再到编,建立了一条自动化的内容生产流水线,编辑团队只需要做优质内容的推荐就可以了. 上周,运营部将官网上 ...
- 【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播
摘要:看我如何通过API Explorer 的SDK接口搞定千万级流量直播. 最近几个月,我的变化其实还蛮大的,从一个被实习生“无视”的“前浪”,转变成了不仅能够解决技术问题还能解决业务问题(顺手还能 ...
- 【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研
摘要:自从学习API后,仿佛解锁了新技能,可别小看了一个小小的API接口,用好了都是能力无穷.这不,用情感分析API来做用户偏好调研,没想到这么一个小创意给公司省了20万调研费用. 上次借着高考热点整 ...
- 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察
摘要: 老大说,我这份用关键词抽取API搞定的用户需求洞察报告,简直比比市场调研的科班人士做得还好. 最近这半个月的午饭,那可是相当不错,市场老大天天请吃饭,不是外面下馆子,就是从家带饺子.说是感谢我 ...
随机推荐
- 《Java从入门到失业》第四章:类和对象(4.6):类路径
4.6类路径 4.6.1什么是类路径 前面我们讨论过包,知道字节码文件最终都会被放到和包名相匹配的树状结构子目录中.例如上一节的例子: 其实类还有一种存放方式,就是可以归档到一个jar文件中,jar文 ...
- 坚果云+svn实现异地非局域网个人代码版本管理
原理大概是A地的设备作为服务端创建仓库,将仓库传上坚果云,同步到B地,再拉取仓库的代码
- Metasploit之漏洞利用( Metasploitable2)
每个操作系统都会存在各种Bug,像Windows这样有版权的操作系统,微软公司会快速地开发针对这些Bug或漏洞的补丁,并为用户提供更新.全世界有大量的漏洞研究人员会夜以继日地发现.研究新的Bug,这些 ...
- Java基于POI实现excel任意多级联动下拉列表——支持从数据库查询出多级数据后直接生成【附源码】
Excel相关知识点 (1)名称管理器--Name Manager [CoderBaby]首先需要创建多个名称(包含key及value),作为下拉列表的数据源,后续通过名称引用.可通过菜单:&quo ...
- 升级到win8.1导致oracle服务丢失的处理
针对升级到win8.1导致oracle服务丢失的处理 1.首先保证oracle相关程序能够运行,如net manager,如果能够运行,说明oracle安装仍然有效,只是因为服务被"净化&q ...
- Python练习题 044:Project Euler 016:乘方结果各个数值之和
本题来自 Project Euler 第16题:https://projecteuler.net/problem=16 ''' Project Euler 16: Power digit sum 2* ...
- 03 以Hello World为例,分析C语言的最小的程序结构
C程序主要包含的部分 预处理器指令 函数 变量 语句 & 表达式 注释 C Hello World 实例 如下程序,可以在屏幕输出短句"Hello World" #incl ...
- 在Python中使用OpenCV(CV2)对图像进行边缘检测
转载:https://blog.csdn.net/cumtb2002/article/details/107798767 Modules used: 使用的模块: For this, we will ...
- 【题解】「MCOI-02」Convex Hull 凸包
题目戳我 \(\text{Solution:}\) \[\sum_{i=1}^n \sum_{j=1}^n \rho(i)\rho(j)\rho(\gcd(i,j)) \] \[=\sum_{d=1} ...
- 用python处理excel文件有多轻松?工作从未如此简单
最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...