摘要:最近研发的需求量涨了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入门学习赛·探险寻宝之旅
转载:https://blog.csdn.net/devcloud/article/details/109241959