-
上回说到,老板一拍脑门,交代了一个新项目:小成本开发一款短视频剪辑工具(【《【API进阶之路】人少钱少需求多的新项目该怎么带?》)。我带着研发团队连日加班,终于在月底前开发出1.0版本,提供的功能与市面上现有的剪辑软件差不多,细节体验上可能还要更好一些,但产品推广了一周后发现用户量并没有增加多少。也难怪,同类产品那么多,如果没有特别亮眼的新功能,很难让用户放弃熟悉的工具转而使用新的软件。因此运营部提出来要有创新性的功能,不然不好推广。不用他们提我也在考虑这个问题,我调研了一百多位短视频创作者,发现大家最焦虑的问题不是视频制作本身,而是短视频平台的推荐量,这个推荐量直接关系到视频的观看量和人气值。怎么帮助创作者提高视频的推荐量呢?学习了短视频平台的推荐机制后,我发现了一个关键点:视频的封面图非常重要,封面图的内容很大程度上决定了视频的推荐量、用户打开率等。看来得从“封面图设置”这个点上下功夫了。现在提供的封面图设置功能包括“本地上传图片”和“从视频中截选图片”,我们可以新增一个“封面图制作”的功能,结合观看用户偏好帮助创作者进行封面制作。首先我们要进行观看用户的偏好分析,知道什么样的内容配什么样的图片更能吸引观众,然后设置成规则,在创作者制作封面时检测是否符合规则,并提出创作建议。我记得华为云有一个人脸检测API,可以分析出图片上是否有人脸、性别、年龄、表情等。于是我们抓取了上万个爆款短视频,截取出封面图,用人脸检测API对这些图片进行分析,得出一份《爆款视频封面特征的分类汇总》,并写成“封面质量自检”规则,在封面创作的时候,结合创作者短视频的标题和视频内容弹出对应的建议,比如封面图上是否应该有人像、封面人物的性别/年龄/装扮建议等。人脸检测API可以在华为云API Explorer进行调试。一、开通服务首先要开通人脸检测服务。这里需要注意区域及版本:北京四、版本二。二、正式调用再回到API Explorer中,进行API调试。在API页面中上传图片文件(image_file)并输入需要识别的人脸属性(attributes),点击“调试”,即可进行API接口调试,返回结果。三、参数说明右侧界面的“文档-请求参数/返回参数”中,可详细查看请求参数与返回参数的含义。功能上线后,运营团队以这个为主打点去推广,效果出乎意料地好,更让人意外的是,我接到了一位投资人的邀请,在300平米的大会议室里,投资人听了我过去这段时间的经历,然后问了我一个问题:如果现在给你投资让你去创业,你有什么方向么?幸(ci)福(ji)来得也太突然了吧???创业我还真没想过,投资人说:“等你有了想法,随时找我,我看中了你这个人,技术过硬且能站在业务和市场的角度看问题,一定能做出很棒的产品。”心里一旦有了这个小火苗,就再也扑不灭了,之后的几天,我总是不受控制地去想这件事,创业,干点什么呢?直到我看到了华为云发布的《中国API生态与开发者现状调研报告(2020年)》(点击下载报告完整版),报告提到:在5000+名有效受访者中,100%的受访者都在开发过程中使用过API,但当前API行业在质量保证、开发流程、开发工具等方面还都不太成熟,更有很多API产品还没有被大众所熟知。也许,这就是我的创业机会?说不定,我可以这么做......(【API进阶之路】第一季完结,敬请期待第二季…) 作者有话说:【API进阶之路】第一季已持续更新了20期,这20期里,故事主角靠着各种API所提供的能力,一路打怪升级,从最初被实习生看不起的“前浪”到后来成为公司技术委员会副主席,并且帮助市场、运营团队解决了很多业务难题,甚至到最后独立做出了成功的项目,得到投资人的青睐。故事虽然是虚构的,但这也恰恰体现了API的魅力所在。API提供了软件创意与研发智慧的连接能力,成熟的开发者可以借助API实现快速创新,而初级开发者也可以利用API提供的能力稳定完成开发任务,做到高效持续交付。未来,随着API行业生态的逐步成熟,将为开发者提供更多的助力。第一季的故事体现了主人公借助API的能力,从业务和市场需求的视角上看待产品与研发,强调的是个人的成长与进步;而在第二季中,主人公将从创业者视角和行业视角看待与使用API,继续进阶。感谢大家对第一季故事的关注,我们下季再见。了解更多API信息:“免费下载创新加速利器《华为云API精选手册》《中国API生态与开发者现状调研报告(2020年)》【拓展阅读】【API进阶之路】因为不会创建云服务器,我被实习生摆了一道【API进阶之路】前浪的绝地反击与自我证明【API进阶之路】甩锅大会上,我是如何绝地求生的【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!【API进阶之路】一个技术盲点,差点让整个项目翻车【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察【API进阶之路】破圈,用一个API代替10人内容团队【API进阶之路】用API打造一条自动化内容生产流水线【API进阶之路】没有AI工程师也能做OCR文字识别【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?【API进阶之路】研发需求突增3倍,测试团队集体闹离职【API进阶之路】人少钱少需求多的新项目,该怎么带?
-
上回说到,老板一拍脑门,交代了一个新项目:小成本开发一款短视频剪辑工具(【《【API进阶之路】人少钱少需求多的新项目该怎么带?》)。我带着研发团队连日加班,终于在月底前开发出1.0版本,提供的功能与市面上现有的剪辑软件差不多,细节体验上可能还要更好一些,但产品推广了一周后发现用户量并没有增加多少。也难怪,同类产品那么多,如果没有特别亮眼的新功能,很难让用户放弃熟悉的工具转而使用新的软件。因此运营部提出来要有创新性的功能,不然不好推广。不用他们提我也在考虑这个问题,我调研了一百多位短视频创作者,发现大家最焦虑的问题不是视频制作本身,而是短视频平台的推荐量,这个推荐量直接关系到视频的观看量和人气值。怎么帮助创作者提高视频的推荐量呢?学习了短视频平台的推荐机制后,我发现了一个关键点:视频的封面图非常重要,封面图的内容很大程度上决定了视频的推荐量、用户打开率等。看来得从“封面图设置”这个点上下功夫了。现在提供的封面图设置功能包括“本地上传图片”和“从视频中截选图片”,我们可以新增一个“封面图制作”的功能,结合观看用户偏好帮助创作者进行封面制作。首先我们要进行观看用户的偏好分析,知道什么样的内容配什么样的图片更能吸引观众,然后设置成规则,在创作者制作封面时检测是否符合规则,并提出创作建议。我记得华为云有一个人脸检测API,可以分析出图片上是否有人脸、性别、年龄、表情等。于是我们抓取了上万个爆款短视频,截取出封面图,用人脸检测API对这些图片进行分析,得出一份《爆款视频封面特征的分类汇总》,并写成“封面质量自检”规则,在封面创作的时候,结合创作者短视频的标题和视频内容弹出对应的建议,比如封面图上是否应该有人像、封面人物的性别/年龄/装扮建议等。人脸检测API可以在华为云API Explorer进行调试。一、开通服务首先要开通人脸检测服务。这里需要注意区域及版本:北京四、版本二。二、正式调用再回到API Explorer中,进行API调试。在API页面中上传图片文件(image_file)并输入需要识别的人脸属性(attributes),点击“调试”,即可进行API接口调试,返回结果。三、参数说明右侧界面的“文档-请求参数/返回参数”中,可详细查看请求参数与返回参数的含义。功能上线后,运营团队以这个为主打点去推广,效果出乎意料地好,更让人意外的是,我接到了一位投资人的邀请,在300平米的大会议室里,投资人听了我过去这段时间的经历,然后问了我一个问题:如果现在给你投资让你去创业,你有什么方向么?幸(ci)福(ji)来得也太突然了吧???创业我还真没想过,投资人说:“等你有了想法,随时找我,我看中了你这个人,技术过硬且能站在业务和市场的角度看问题,一定能做出很棒的产品。”心里一旦有了这个小火苗,就再也扑不灭了,之后的几天,我总是不受控制地去想这件事,创业,干点什么呢?直到我看到了华为云发布的《中国API生态与开发者现状调研报告(2020年)》(点击下载报告完整版),报告提到:在5000+名有效受访者中,100%的受访者都在开发过程中使用过API,但当前API行业在质量保证、开发流程、开发工具等方面还都不太成熟,更有很多API产品还没有被大众所熟知。也许,这就是我的创业机会?说不定,我可以这么做......(【API进阶之路】第一季完结,敬请期待第二季…) 作者有话说:【API进阶之路】第一季已持续更新了20期,这20期里,故事主角靠着各种API所提供的能力,一路打怪升级,从最初被实习生看不起的“前浪”到后来成为公司技术委员会副主席,并且帮助市场、运营团队解决了很多业务难题,甚至到最后独立做出了成功的项目,得到投资人的青睐。故事虽然是虚构的,但这也恰恰体现了API的魅力所在。API提供了软件创意与研发智慧的连接能力,成熟的开发者可以借助API实现快速创新,而初级开发者也可以利用API提供的能力稳定完成开发任务,做到高效持续交付。未来,随着API行业生态的逐步成熟,将为开发者提供更多的助力。第一季的故事体现了主人公借助API的能力,从业务和市场需求的视角上看待产品与研发,强调的是个人的成长与进步;而在第二季中,主人公将从创业者视角和行业视角看待与使用API,继续进阶。感谢大家对第一季故事的关注,我们下季再见。了解更多API信息:“免费下载创新加速利器《华为云API精选手册》《中国API生态与开发者现状调研报告(2020年)》【拓展阅读】【API进阶之路】因为不会创建云服务器,我被实习生摆了一道【API进阶之路】前浪的绝地反击与自我证明【API进阶之路】甩锅大会上,我是如何绝地求生的【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!【API进阶之路】一个技术盲点,差点让整个项目翻车【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察【API进阶之路】破圈,用一个API代替10人内容团队【API进阶之路】用API打造一条自动化内容生产流水线【API进阶之路】没有AI工程师也能做OCR文字识别【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?【API进阶之路】研发需求突增3倍,测试团队集体闹离职【API进阶之路】人少钱少需求多的新项目,该怎么带?
-
摘要:最近研发的需求量涨了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精选手册》
-
摘要:程序猿小Hi入职公司不到三个月,就被老板单独叫到了办公室……初创公司R:刚刚创立,致力于通过信息化技术,帮助中小企业数字化转型,华丽转身。公司成员:老板、程序猿小Hi、… …程序猿小Hi入职公司不到三个月,就被老板单独叫到了办公室。小Hi心情既激动又不安,激动的是老板是不是要给自己升职加薪,不安的是不是自己表现不好,老板要炒鱿鱼,毕竟疫情是一个很好的借口。来到了老板的办公室,不等小Hi说话,就单刀直入,说:小Hi啊,你来公司挺长时间了(还没到三个月,老板健忘?),你的工作做得挺好(心里开始爽歪歪),今天有个重要任务要交给你(凉了一半,升职加薪忘了吧)。小Hi:好的,老板你有啥就直接吩咐,保证高效完成(心里开始有点忐忑)。老板:昨天有个新客户,提了个需求,他们是在XX高新区,公司多切人员杂,在目前疫情情况下,想在门岗处增加门禁,识别外来人员,加强疫情管控。这是他们的需求文档,公司的其他人都出差了,这个任务就交给你了。记住,要做成模块化,方便后续客户应用。小Hi:是,老板,我好好看看他们的需求文档。……小Hi离开老板办公室,打开需求文档一看,六个大字映入眼帘:我们要人脸识别(不对,是七个),心里翻滚着五味杂陈,“模块化”和“人脸识别”,这就是需求。第一次接到了老板的任务,小Hi陷入了“深思”(吃鸡游戏中…)第一个需求是“模块化”,模块化就是要求封装内部细节,精简对外交互,实现高内聚低耦合。小Hi第一时间就想到了通过提供API来保障自身的独立性,以及清晰化的对外交互界面,大学里学的那点API相关的知识开始在脑海里迸发:API的定义:应用程序接口(Application Programming Interface)是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。常见的API类型有:1)RESTful API:基于HTTP、URI和XML等的常见的Web服务接口标准,描述了一个架构样式的网络系统,其核心是面向资源的。2)SOAP接口:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。3)RPC接口:远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。4)RMI接口:远程方法调用RMI是针对于java语言的, RMI 允许您使用Java编写分布式对象。API的设计原则,好API的6个特质:1)极简:极简的API是指对外暴露的尽可能少,这样的API更易理解、记忆、调试和变更。2)完备:完备的API是指用户期望有的功能都包含了,满足用户的需求,是完备的。3)语义清晰简单:接口、参数、帮助等的语义清晰简单,使用常用语和缩略语,不适用生僻语,尽量减少意外。4)符合直觉:经验不很丰富的用户不用阅读API文档就能搞懂API,而且程序员不用了解API就能看明白使用API的代码。5)易于记忆:为使API易于记忆,API的命名约定应该具有一致性和精确性。使用易于识别的模式和概念,并且避免用缩写。6)引导API使用者写出可读代码:代码只写一次,却要多次的阅读(还有调试和修改)。写出可读性好的代码有时候要花费更多的时间,但对于产品的整个生命周期来说是节省了时间的。注:源自Qt的API设计原则,详见https://github.com/oldratlee/translations/blob/master/api-design-principles-from-qt/README.mdAPI相关概念1)API网关:服务与服务之间通信的中介或桥梁,提供服务接入和鉴权、API注册、流控、管理等API托管服务。2)API全生命周期管理:覆盖了API的设计、开发、测试、发布、订阅、使用和分析的端到端、全流程的管理。第二个需求是“人脸识别”,小Hi没有AI相关技术积累,开始捉急,忽然灵光一闪,想起来前两天华为云专家过来交流,有提到华为云的AI能力,于是激动的打开了浏览器。输入https://www.huaweicloud.com/,打开华为云,选择“开发者”=>“资源工具”下的API Explorer,查看华为云所有开放API:在API Explorer上面,可以快速查看对应云服务的开放API:在搜索框输入人脸识别,搜索相关的云服务:打开人脸识别服务,有人脸比对、人脸检测、人脸搜索、人脸资源管理、人脸库资源管理等,挺多API的,太棒了。迫不及待调试一把,登录华为云(没注册的赶紧注册下),选择到人脸识别控制台页面(https://console.huaweicloud.com/frs/?region=cn-north-1#/frs/home),开通人脸比对服务: 在API Explorer上选择人脸比对API(FaceCompareByFile),查看此API详细介绍信息,包括接口说明、请求参数、示例、返回参数、错误码等,此API支持对比两张人脸图片信息,判断是否同一个人的置信度:我们直接可以选择要比对的图片,在API Explorer上点击调试按钮来在线调试这个API:点击调试后,可以得到比对结果,相似度94.699%(代表同一个人的概率很大):再调试了多个API接口,查阅了人脸识别服务介绍后,小Hi心里有着落了,一张“蓝图”在脑海中绘制:小Hi顿时信心爆棚起来,这下可以在老板面前好好表现下了。你以为这就结束了吗?图样图森破,小Hi还是太年轻,按以往经验,蓝图和落地至少还差个银河的距离,等待小Hi的是怎么快速实现这个公共服务,未完待续 ……
-
突然想起来不知道哪位名人曾经说过:工作啊,就没有一帆风顺的,如果太平稳,你就离“优化”不远了。上回说,年底各业务线的开发需求暴增,导致测试团队压力太大集体闹离职,我提出了一个方案,用华为云的云测工具来减轻测试压力。(回顾:【API进阶之路】研发需求突增3倍,测试团队集体闹离职)这阵离职风波总算是过去了,在月度总结复盘会上,老板直接发问:“你们研发部门有那么多人,为什么还会出现这种情况呢?”他这一问我立马感觉到有情况,之前我们一起分析过原因了,今天又这么问,怕不只是因为这件事了。果不其然,老板接着说,公司决定上线一个短视频制作工具,抓住当前短视频风口发展新业务。但现在同类产品比较多,前期试水阶段不会投入太多资源,让我们自己安排人力进行平台开发。这......本来开发资源就紧张,再做新业务,可能又会有一部分人投进去出不来,之前很多老项目就是这样,探索了一段时间没有**展,又不能轻易放弃,研发资源被不断占用。做得好的话后期的需求也没法估算,到时候还会面临这种需求突增的情况,开发运维测试的压力也会很大。那有没有什么办法从项目开始就解决这个问题呢?会后,我跟研发老大研究了一个新的方案:使用华为云应用管理与运维平台(ServiceStage)来做新项目的开发和管理。应用管理与运维平台(ServiceStage)是一个应用托管和微服务管理平台,可以简化部署、监控、运维和治理等应用生命周期管理工作。ServiceStage提供了微服务、移动和Web类应用开发的全栈解决方案,不但能够提高开发效率,也减轻了后期管理的压力。(图 ServiceStage功能)这个项目我亲自带,使用ServiceStage的方式也比较简单, ServiceStage提供了各种API接口:包括部署任务、环境管理、应用管理、组件管理、注册发现等,满足开发、部署、托管、运维的需求,通过调用API就可以直接完成以上操作。以环境管理和应用管理为例介绍操作步骤。前提条件l 获取IAM的token,调用token认证,并将token值设置为环境变量:export Token={token}l 获取ServiceStage的endpoint。示例1:环境管理操作步骤1、调用“创建环境接口”,添加基础资源。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/environments" -d '{ "name": "dev-env", "description": "develop environment", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ] }'返回结果如下,得到的id,后续示例中以{environment_id}代替。{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }2、调用“修改环境资源接口”,为环境添加其他需要的资源。根据自己已有的资源和需求,可以将和环境相同vpc下的ecs,cce,elb,cse,eip等多种类型的资源添加到环境中。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PATCH "https://{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}/resources" -d '{ "add_optional_resources": [{ "id": "default", "type": "cse" }] }'返回结果{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "optional_resources": [ { "id": "default", "type": "cse" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }3、调用“根据环境ID获取环境详细信息接口”,去查询环境请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}"返回结果{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "optional_resources": [ { "id": "default", "type": "cse" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }示例2:应用管理操作步骤1、调用“创建应用接口”,创建应用。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/applications" -d '{ "name": "TestApp", "description": "application_description", "enterprise_project_id": "0" }'返回结果如下,得到的id,后续示例中以{application_id}代替。{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp", "description": "application_description", "creator": "string", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "create_time": 1578984171041, "update_time": 1578984171041 }2、调用“修改应用配置信息接口”,为应用添加环境变量,后续在该应用某环境下部署的组件都会继承该应用的环境变量。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PUT "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/configuration" -d '{ "environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": { "env": [ { "name": "app-env", "value": "env" } ] } }'返回结果{ "application_id": "06cf2fda-af45-44b4-9e22-6294c4804515", "environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": { "env": [ { "name": "app-env", "value": "env" } ] } }3、调用“根据应用ID获取应用详细信息接口”,查询应用详细信息。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}"返回结果{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp", "description": "description", "creator": "xxx", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "create_time": 1578984171041, "update_time": 1578984171041 }还可以实现组件管理、注册发现等操作。 了解更多API信息:“免费下载创新加速利器《华为云API精选手册》《中国API生态与开发者现状调研报告(2020年)》【拓展阅读】【API进阶之路】因为不会创建云服务器,我被实习生摆了一道【API进阶之路】前浪的绝地反击与自我证明【API进阶之路】甩锅大会上,我是如何绝地求生的【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!【API进阶之路】一个技术盲点,差点让整个项目翻车【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察【API进阶之路】破圈,用一个API代替10人内容团队【API进阶之路】用API打造一条自动化内容生产流水线【API进阶之路】没有AI工程师也能做OCR文字识别【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?【API进阶之路】研发需求突增3倍,测试团队集体闹离职——活动推荐——华为云已经成为全球主要云服务供应商,在华为云上开放了2400+ API,包括计算、存储、网络、应用服务、软件开发服务、视频、数据库、EI智能等74+产品,如何利用这些丰富强大的API快速开发自己的应用和服务,成为大家关注的热点。华为云API学习赛,为入门初学者量身定制的学习平台,以赛带学,学以致用。无需代码,只需下载体验模板,按操作文档操作即可完成作品。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机超级激励!!识别下图二维码即可报名参加。API入门学习赛·AI人脸识别报名地址奖项设置API入门学习赛·探险寻宝之旅报名地址奖项设置
-
突然想起来不知道哪位名人曾经说过:工作啊,就没有一帆风顺的,如果太平稳,你就离**掉不远了。上回说,年底各业务线的开发需求暴增,导致测试团队压力太大集体闹离职,我提出了一个方案,用华为云的云测工具来减轻测试压力。(回顾:【API进阶之路】研发需求突增3倍,测试团队集体闹离职)这阵离职风波总算是过去了,在月度总结复盘会上,老板直接发问:“你们研发部门有那么多人,为什么还会出现这种情况呢?”他这一问我立马感觉到有情况,之前我们一起分析过原因了,今天又这么问,怕不只是因为这件事了。果不其然,老板接着说,公司决定上线一个短视频制作工具,抓住当前短视频风口发展新业务。但现在同类产品比较多,前期试水阶段不会投入太多资源,让我们自己安排人力进行平台开发。这......本来开发资源就紧张,再做新业务,可能又会有一部分人投进去出不来,之前很多老项目就是这样,探索了一段时间没有**展,又不能轻易放弃,研发资源被不断占用。做得好的话后期的需求也没法估算,到时候还会面临这种需求突增的情况,开发运维测试的压力也会很大。那有没有什么办法从项目开始就解决这个问题呢?会后,我跟研发老大研究了一个新的方案:使用华为云应用管理与运维平台(ServiceStage)来做新项目的开发和管理。应用管理与运维平台(ServiceStage)是一个应用托管和微服务管理平台,可以简化部署、监控、运维和治理等应用生命周期管理工作。ServiceStage提供了微服务、移动和Web类应用开发的全栈解决方案,不但能够提高开发效率,也减轻了后期管理的压力。(图 ServiceStage功能)这个项目我亲自带,使用ServiceStage的方式也比较简单, ServiceStage提供了各种API接口:包括部署任务、环境管理、应用管理、组件管理、注册发现等,满足开发、部署、托管、运维的需求,通过调用API就可以直接完成以上操作。以环境管理和应用管理为例介绍操作步骤。前提条件l 获取IAM的token,调用token认证,并将token值设置为环境变量:export Token={token}l 获取ServiceStage的endpoint。示例1:环境管理操作步骤1、调用“创建环境接口”,添加基础资源。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/environments" -d '{ "name": "dev-env", "description": "develop environment", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ] }'返回结果如下,得到的id,后续示例中以{environment_id}代替。{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }2、调用“修改环境资源接口”,为环境添加其他需要的资源。根据自己已有的资源和需求,可以将和环境相同vpc下的ecs,cce,elb,cse,eip等多种类型的资源添加到环境中。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PATCH "https://{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}/resources" -d '{ "add_optional_resources": [{ "id": "default", "type": "cse" }] }'返回结果{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "optional_resources": [ { "id": "default", "type": "cse" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }3、调用“根据环境ID获取环境详细信息接口”,去查询环境请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/environments/{environment_id}"返回结果{ "id": "ea011e01-2eb5-453f-87bf-874e4a855abe", "name": "dev-env", "alias": null, "description": "develop environment", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "charge_mode": "provided", "vpc_id": "b9b8f9ad-1a2e-403d-83f1-cb71a3c06df8", "base_resources": [ { "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", "type": "cce" } ], "optional_resources": [ { "id": "default", "type": "cse" } ], "creator": "xxx", "create_time": 1578984198394, "update_time": 1578984198394 }示例2:应用管理操作步骤1、调用“创建应用接口”,创建应用。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X POST "https://{servicestage_endpoint}/v2/{project_id}/cas/applications" -d '{ "name": "TestApp", "description": "application_description", "enterprise_project_id": "0" }'返回结果如下,得到的id,后续示例中以{application_id}代替。{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp", "description": "application_description", "creator": "string", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "create_time": 1578984171041, "update_time": 1578984171041 }2、调用“修改应用配置信息接口”,为应用添加环境变量,后续在该应用某环境下部署的组件都会继承该应用的环境变量。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X PUT "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}/configuration" -d '{ "environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": { "env": [ { "name": "app-env", "value": "env" } ] } }'返回结果{ "application_id": "06cf2fda-af45-44b4-9e22-6294c4804515", "environment_id": "0fa75dfe-0d32-4bc1-848b-8008cf3f2567", "configuration": { "env": [ { "name": "app-env", "value": "env" } ] } }3、调用“根据应用ID获取应用详细信息接口”,查询应用详细信息。请求示例curl -k -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -X GET "https://{servicestage_endpoint}/v2/{project_id}/cas/applications/{application_id}"返回结果{ "id": "06cf2fda-af45-44b4-9e22-6294c4804515", "name": "TestApp", "description": "description", "creator": "xxx", "project_id": "bf8523d898b64e4eb956e3be3555ca16", "enterprise_project_id": "0", "create_time": 1578984171041, "update_time": 1578984171041 }还可以实现组件管理、注册发现等操作。 了解更多API信息:“免费下载创新加速利器《华为云API精选手册》《中国API生态与开发者现状调研报告(2020年)》【拓展阅读】【API进阶之路】因为不会创建云服务器,我被实习生摆了一道【API进阶之路】前浪的绝地反击与自我证明【API进阶之路】甩锅大会上,我是如何绝地求生的【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!【API进阶之路】一个技术盲点,差点让整个项目翻车【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察【API进阶之路】破圈,用一个API代替10人内容团队【API进阶之路】用API打造一条自动化内容生产流水线【API进阶之路】没有AI工程师也能做OCR文字识别【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?【API进阶之路】研发需求突增3倍,测试团队集体闹离职——活动推荐——华为云已经成为全球主要云服务供应商,在华为云上开放了2400+ API,包括计算、存储、网络、应用服务、软件开发服务、视频、数据库、EI智能等74+产品,如何利用这些丰富强大的API快速开发自己的应用和服务,成为大家关注的热点。华为云API学习赛,为入门初学者量身定制的学习平台,以赛带学,学以致用。无需代码,只需下载体验模板,按操作文档操作即可完成作品。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机超级激励!!识别下图二维码即可报名参加。API入门学习赛·AI人脸识别报名地址奖项设置API入门学习赛·探险寻宝之旅报名地址奖项设置
-
-
摘要:华为云联合多家单位发布了《中国API生态与开发者现状调研报告(2020年)》,旨在通过API生态、API开发者、使用者、API全生命周期管理等多视角展现我国API发展的现状与机遇,力求为相关企业、组织、个人制定API战略提供一个参考视角。当前,数字化转型已深入各行各业,API——这个曾经的底层代码接口,不仅发展成为产品本身,更成为企业承载价值、连接业务的核心载体,一个由API使用者和开发者组成的、围绕API产品生命周期的价值交换新模式正日益成熟,特别是与微服务、DevOps等技术的融合,都将使得API战略成为企业加速创新的利器。虽然API已经作为数据服务等功能接口广泛应用在诸多场景,但大量组织对于API生命周期的管理流程、工具使用、价值实现还存在相当程度的认识偏差。API不仅需要最高程度的管理,更重要的是,开发者需要思考如何借助外部的消费者市场,从“应用层”退到“技术层”、将“新技术”推向“新业务”,将通用的能力输送给多元行业和场景,不断将内部功能转化为对外服务的做法。基于此,华为云联合InfoQ研究院等多家单位发布了《中国API生态与开发者现状调研报告(2020年)》,旨在通过API生态、API开发者、使用者、API全生命周期管理等多视角展现我国API发展的现状与机遇,力求为相关企业、组织、个人制定API战略提供一个参考视角。(文末可下载完整报告)一、API生态视角在API生态视角下,参与调研的API使用者与开发者人数比例约为2:1,且从事开发、设计/架构的开发者占比最大,总计达到约64%,而从事文档、部署运维、安全、技术支持、运营监控等职能的人员占比较小。另外,从业年限在3年以下的开发者占比为44.4%,经验并不算丰富。这在一定程度上可以说明我国API生态的产品能力不足、市场尚处早期发展阶段。一方面,仅少量企业或组织有能力通过开发API的手段优化内部效率、并通过优质的管理将内部功能转化为对外服务业务;进一步讲,这样的组织以API开发为主、以API所能提供的能力为核心竞争力,而对于API的管理、维护能力投入不足。相较之下,更多的公司希望借助外部工具快速实现自己的业务逻辑,因此市场对于通过API的方式获取技术能力的需求较为旺盛,对于很多开发者来说,提供API产品仍然具备较大的市场空间。二、API使用者视角在API使用者视角下,对于API的主要诉求已由获取数据转变为获取技术能力、甚至业务能力,使用者渴望高效便捷的寻找、调用方式,除关注API产品本身性能外,也愈发关注优质的后续服务和使用体验。三、API开发者视角在API开发者视角下,当前开发API主要用于优化内部系统、工具和团队协作,其次是促进形成生态、开展外部合作,较少被用于盈利,这表明API的竞争还处在蓝海时代。从开发行为来看,API的性能、可用性、功能性和安全性是开发者的关注重点,Java和IntelliJ IDEA是目前最主流的API开发语言和集成环境;此外,API的开发还需要广泛地借助设计、文档管理、测试等环节的各类工具,工具的易用性受到了重点关注。四、API生命周期管理在API生命周期管理的维度,API应用的开发和管理正在向成规模、成体系的团队化、标准化模式演进,建立规范的API管理流程已经成为共识,标准流程的建立涵盖了API设计、测试、文档、监控等各个环节,各类工具的开发和使用也愈发受到重视。在API设计环节,RAML、Swagger等单一功能的开源编辑器都提供了优秀的编辑工具以支持各自的语言,它们依然是开发者进行API设计的首选。在API测试环节,YAPI、Postman是目前最主流的测试工具,分别有76.5%和43.2%的API使用者和开发者使用过多款API测试工具,体现了其激烈的市场竞争,也说明还没有哪款测试工具赢得了用户的绝对信任。在API文档管理方面,有13.8%的API使用者和23.3%的API开发者选择使用自研的API文档工具,主流文档工具的缺失给双方都造成了一定困扰。此外,仅少数组织拥有自动化生成API文档的能力,这项能力的不足也从侧面反映出现有的自动化生成工具难以满足应用需求。就API管理意识而言,API网关已经成为了开放API的首选方式,一定程度上表明了开发者强烈的API管理需求。相对而言,使用者对于API管理的意识还较为薄弱。五、展望未来展望未来,API技术依然面临全面的挑战,受到最多关注的包括标准化、可组合性/可重用性、以及安全性,尤其是API的标准化将有利于推动API应用的互联互通,真正成为项目开发的加速器和连接枢纽。预测API的技术发展,首先,微服务架构将与整体的API策略深度绑定;其次,物联网的实现将越来越依赖API技术;第三,DevOps和API的融合将产生更大的业务价值。《中国API生态与开发者现状调研报告(2020年)》是华为云、InfoQ研究院共同发起,中国信息通信研究院作为指导单位深度参与,联合用友、环信、MobTech、蒲公英、APICloud、EOLINKER、DCloud、开源中国等多家单位,采集、优选5000余份数据,并结合多位行业专家的权威解读和精彩见解制作而成。更多详细内容请下载完整版《中国API生态与开发者现状调研报告(2020年)》
-
从0了解DevOps 点我直达链接>>>>此篇包含:一、入门系列,带你从头了解DevOps,二、理论实践指导,三、DevOps on DevCloud系列,四、行业相关信息【敏捷合集】2021版敏捷系列合集 &精选技术讨论帖 点我直达链接>>>>华为云DevCloud大咖分享汇总(附PPT下载) 0 华为云DevCloud大咖分享汇总(附PPT下载) 1华为大咖分享:华为敏捷项目管理实践(后附PPT下载)2 华为大咖分享:AI在软件测试领域应用探索(后附PPT下载) 3华为大咖分享:微服务架构设计与实践(后附PPT下载)4华为大咖分享:拥抱Git,提升研发效率(后附PPT下载) 5华为大咖分享:游戏企业转型之道:敏捷与DevOps实践(后附PPT下载)6 华为大咖分享:基于容器的Devops(后附PPT下载) 7华为大咖分享:华为专家揭秘研发效能提升之道/DevCloud研发实践(后附PPT下载)8华为大咖分享:关于DevOps,听听华为专家怎么说(后附PPT下载)9华为大咖分享:交付在云端-全云DevOps研发实践10华为大咖分享:五星级软件工程师的高效秘诀(后附PPT下载) 11华为大咖分享:DevCloud on DevCloud 从1月1次到1天10次发布的实践分享(后附PPT下载) 12华为微服务转型DevOps实践13华为大咖分享:大型云平台的DevOps实践14华为大咖分享:Focus on Value 的思考与实践精粹(后附PPT下载)15华为大咖分享:云上开发,代码托管只是第一步(后附PPT下载) 16华为大咖分享:反脆弱,高效能组织的能力构建(后附PPT下载)17从Change、merge到New Challenge--华为内源平台到研发云平台的发展历程(后附PPT下载)18华为大咖分享:华为云DevCloud 百人规模化精益DevOps转型(后附PPT下载)19华为大咖分享:架构师的基本功之管理篇20一文读懂云原生2.0时代的DevOps体系框架21华为大咖分享:华为云如何构建高效可信的持续交付能力22华为大咖分享:【HC2018 Session】基于Pipeline的DevOps核心实践_DevCloud_华为云论坛(后附PPT下载)23华为大咖分享:Gopher China2020 华为云的go语言云原生实战经验_DevCloud_华为云论坛 (后附PPT下载)24华为大咖分享:德智体美劳全面发展的DevOps_DevCloud_华为云论坛 (后附PPT下载)25华为大咖分享:如何让团队在高度共识中完成需求沟通与设计(后附PPT下载)26华为大咖分享:华为云DevCloud——云测API全场景测试技术与实践(后附PPT下载)27华为大咖分享:华为敏捷与DevOps实践分享(后附PPT下载)产品经理-全连接系列1【产品经理-全连接系列 之001】Epic/Feature/Story/Task/Bug到底是什么?2【产品经理-全连接系列 之002】企业应该如何开展敏捷,或者DevOps这样的研发变革(1)3【产品经理-全连接系列 之003】华为敏捷/DevOps实践一点一滴_如何开好站立会议 4【产品经理-全连接系列 之004】华为敏捷/DevOps实践一点一滴_Excel为什么越来越少用?5【产品经理-全连接系列 之005】华为敏捷/DevOps实践一点一滴_如何开好一个敏捷回顾会议6【产品经理-全连接系列 之006】华为敏捷/DevOps实践一点一滴_如何从Excle管理软件的方式中走出来7【产品经理-全连接系列之007】为什么用户故事的故事点用斐波那契数列??8【产品经理-全连接系列之008】华为敏捷/DevOps实践一点一滴——如何开好迭代计划会议 9【产品经理-全连接系列之009】Wiki这么多年,为什么还依然得到很多开发人员和团队的喜爱DevOps智库1重磅!史上最全的DevOps资料分享!22019年中国DevOps行业现状报告:中国信息通信研究院、华为云DevCloud、南京大学联合发布3DevOps实施落地的两个法宝:粒度&解耦 附PDF下载4【转载】【资料下载合集】HDC.Cloud华为开发者大会20205【DevCloud · 敏捷智库】软件项目需求变更频繁,如何做好有效的需求管理和规划?6 【敏捷智库知识卡】第1-7期合集(内附下载资料)7【敏捷智库知识卡】 第8期 拍脑袋估算法?OUT!:科学估算,平稳生产,嗷闪!8【敏捷智库知识卡】第9期 微服务架构难落地?MSA实施指导框架来帮你9【敏捷智库知识卡】 第10期 任务不让指派还没人认领,我咋整?—— Scrum Master的心酸谁能知?10【敏捷智库知识卡】 第11期 项目团队人员变动频繁怎么办——大牛走了,你怕不怕?11【敏捷智库知识卡】第12期 需求剪不断理还乱(内附1-12期卡片合集下载)12DevOps人员常用的linux命令13【转载】六步教你玩转DevOps上华为云DevCloud实践14DevOps敏捷60问,一定有你想了解的问题数据库学习1【转载】【最全华为云数据库资料】庖丁解牛——带你了解华为云数据库的精髓 2JDBC练习--适合于新手或者温习jdbc(一个简易的在后台的学生信息的增删改查)Python技术学习1【转载】Python面试的一些心得,与练习题分享...2pyhon初学笔记要点归纳!3Python常用基础知识点4【转载】60+精华:从基础到实战 带你极速掌握 Python技术API进阶之路0《2020年API现状调研报告》1《华为云API精选手册》2【API进阶之路】因为不会创建云服务器,我被实习生摆了一道3【API进阶之路】前浪的绝地反击与自我证明4【API进阶之路】甩锅大会上,我是如何绝地求生的5【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”6【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!7【API进阶之路】一个技术盲点,差点让整个项目翻车8【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播9【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!10【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏11【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的12【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研13【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察14【API进阶之路】破圈,用一个API代替10人内容团队15【API进阶之路】用API打造一条自动化内容生产流水线16【API进阶之路】没有AI工程师也能做OCR文字识别17【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频18【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?19【API进阶之路】研发需求突增3倍,测试团队集体闹离职20【API进阶之路】人少钱少需求多的新项目,该怎么带?21【API进阶之路】本季大结局:API带来的微创新,打动投资人鼓励我创业包不同系列视频1【包不同的沙雕敏捷】第一集 砸锅卖铁买兰博2【包不同的沙雕敏捷】第二集 需求管理靠看板3【包不同的沙雕敏捷】第三集 小步快跑Scrum其他1史上最全的架构师图谱(后附高清大图)2【电子书下载】人工智能技术入门该读哪些书?这里有一份精选书单3看看是不是你想要的:pycharm永久激活!!!
-
《中国API生态与开发者现状调研报告(2020年)》已正式发布,下拉至文末可免费下载。当前,数字化转型已深入各行各业,API——这个曾经的底层代码接口,不仅发展成为产品本身,更成为企业承载价值、连接业务的核心载体,一个由API使用者和开发者组成的、围绕API产品生命周期的价值交换新模式正日益成熟,特别是与微服务、DevOps等技术的融合,都将使得API战略成为企业加速创新的利器。虽然API已经作为数据服务等功能接口广泛应用在诸多场景,但大量组织对于API生命周期的管理流程、工具使用、价值实现还存在相当程度的认识偏差。API不仅需要最高程度的管理,更重要的是,开发者需要思考如何借助外部的消费者市场,从“应用层”退到“技术层”、将“新技术”推向“新业务”,将通用的能力输送给多元行业和场景,不断将内部功能转化为对外服务的做法。基于此,InfoQ研究院联合华为云等多家单位发布了《中国API生态与开发者现状调研报告(2020年)》,旨在通过API生态、API开发者、使用者、API全生命周期管理等多视角展现我国API发展的现状与机遇,力求为相关企业、组织、个人制定API战略提供一个参考视角。 在API生态视角下,参与调研的API使用者与开发者人数比例约为2:1,且从事开发、设计/架构的开发者占比最大,总计达到约64%,而从事文档、部署运维、安全、技术支持、运营监控等职能的人员占比较小。另外,从业年限在3年以下的开发者占比为44.4%,经验并不算丰富。 这在一定程度上可以说明我国API生态的产品能力不足、市场尚处早期发展阶段。一方面,仅少量企业或组织有能力通过开发API的手段优化内部效率、并通过优质的管理将内部功能转化为对外服务业务;进一步讲,这样的组织以API开发为主、以API所能提供的能力为核心竞争力,而对于API的管理、维护能力投入不足。相较之下,更多的公司希望借助外部工具快速实现自己的业务逻辑,因此市场对于通过API的方式获取技术能力的需求较为旺盛,对于很多开发者来说,提供API产品仍然具备较大的市场空间。在API使用者视角下,对于API的主要诉求已由获取数据转变为获取技术能力、甚至业务能力,使用者渴望高效便捷的寻找、调用方式,除关注API产品本身性能外,也愈发关注优质的后续服务和使用体验。 在API开发者视角下,当前开发API主要用于优化内部系统、工具和团队协作,其次是促进形成生态、开展外部合作,较少被用于盈利,这表明API的竞争还处在蓝海时代。从开发行为来看,API的性能、可用性、功能性和安全性是开发者的关注重点,Java和IntelliJ IDEA是目前最主流的API开发语言和集成环境;此外,API的开发还需要广泛地借助设计、文档管理、测试等环节的各类工具,工具的易用性受到了重点关注。 在API生命周期管理的维度,API应用的开发和管理正在向成规模、成体系的团队化、标准化模式演进,建立规范的API管理流程已经成为共识,标准流程的建立涵盖了API设计、测试、文档、监控等各个环节,各类工具的开发和使用也愈发受到重视。 在API设计环节,RAML、Swagger等单一功能的开源编辑器都提供了优秀的编辑工具以支持各自的语言,它们依然是开发者进行API设计的首选。在API测试环节,YAPI、Postman是目前最主流的测试工具,分别有76.5%和43.2%的API使用者和开发者使用过多款API测试工具,体现了其激烈的市场竞争,也说明还没有哪款测试工具赢得了用户的绝对信任。在API文档管理方面,有13.8%的API使用者和23.3%的API开发者选择使用自研的API文档工具,主流文档工具的缺失给双方都造成了一定困扰。此外,仅少数组织拥有自动化生成API文档的能力,这项能力的不足也从侧面反映出现有的自动化生成工具难以满足应用需求。就API管理意识而言,API网关已经成为了开放API的首选方式,一定程度上表明了开发者强烈的API管理需求。相对而言,使用者对于API管理的意识还较为薄弱。展望未来,API技术依然面临全面的挑战,受到最多关注的包括标准化、可组合性/可重用性、以及安全性,尤其是API的标准化将有利于推动API应用的互联互通,真正成为项目开发的加速器和连接枢纽。预测API的技术发展,首先,微服务架构将与整体的API策略深度绑定;其次,物联网的实现将越来越依赖API技术;第三,DevOps和API的融合将产生更大的业务价值。 《中国API生态与开发者现状调研报告(2020年)》是InfoQ研究院、华为云共同发起,中国信息通信研究院作为指导单位深度参与,联合用友、环信等多家单位,采集、优选5000余份数据,并结合多位行业专家的权威解读和精彩见解制作而成。更多详细内容请下载完整版《中国API生态与开发者现状调研报告(2020年)》福利:《华为云API精选手册》公开发布,收录了30个API应用,覆盖企业应用、EI企业智能、基础服务等多个应用领域,点击免费下载。
-
【华为云·API应用与开发实战训练营】3 章节,全面理解华为云API应用能力4 步骤,系统掌握API全生命周期管理6 话题,深入研讨数字化时代技术创新趋势一、课程介绍随着云计算、大数据等技术的发展成熟,互联网技术逐步渗透到企业生产制造/供应链管理/人财货客管理等各个方面,企业的数字化转型将成为互联网行业下一个发展阶段的重要命题。在传统企业数字化转型的浪潮下,互联网开放平台已渐成趋势,开放平台通过“能力模块化和微服务化,使能公司实现数字化转型和大平台下的精兵作战,加速数字化转型。”而在这其中,日渐衍生出API经济新蓝海。越来越多的开发者在项目开发过程中使用API应用来完成项目并提升交付效率,而华为云已经可以围绕API提供完整解决方案的能力。【华为云·API应用与开发实战训练营】依托华为云,让学员在学习API相关知识点的同时,能够借由API Explorer、API Gateway、ROMA等华为云服务进行实践。课程讲述了数字化转型、开放平台与API之间的关系,介绍了API生命周期管理与API网关在云原生、微服务下的应用,结合华为云开放平台、资源工具进行云资源创建、项目管理、应用开发等多个实践内容。帮助开发者,特别是让帮助企业进行数字化转型的开发者,能够借助华为云各项API的能力实现研发提效与业务创新。二、课程目标1、本课程由华为云知名专家联手倾力打造,结合华为云API Explorer、API Gateway、ROMA等华为云服务,对API知识体系和实践进行系统化的剖析和融合。2、通过学习本课程,可以系统性地掌握 API的基础知识、最佳实践,为企业实现数字化转型打下坚实基础。3、本课程还将帮助各位管理者和开发者从理论+实践两个方面全面掌握华为云开放平台各项能力,同时配合丰富细致的教材引导学员一步步掌握API应用开发及全生命周期管理的方法,包括使用华为云开放平台调用、发布、调试API接口的全过程。4、 在开放平台的大趋势下,通过学习本课程,帮助企业及开发者将自身业务对外开放,参与到API经济建设与开发者生态中来。三、培训对象本课程的定位是针对开发者、合作伙伴及客户进行赋能,帮助其了解华为云的API能力,以及如何使用华为云API进行开发与集成。适合想要了解数字化转型或考虑转型为数字化企业的组织中的任何人,想要使用或正在使用华为云开放平台的组织中的任何人,目标受众包括但不限于:软件和系统开发者系统工程师产品和服务管理者项目经理测试工程师IT服务管理运营和支持人员四、课程大纲课程包括三个方面的内容:理论讲解、实操演练、测试检验,内容主体定位于API全生命周期,从设计开发、测试部署,到API网关整体使用。另外包含了华为云基础服务的API使用,例如ECS、IAM等。 五、授课方式授课方式:线下授课课程时间:2天
-
本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色。到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年终奖可是息息相关的事儿。业务部门冲业绩,带动着研发的需求不断增加,这个部门说想要提前上线,那个部门说要临时加个需求,研发只能说我们得按排期来,这句话平时可能好使,可一旦需求和业绩相关,那研发就要火力全开,排期什么的就得靠边站了。最近研发的需求量涨了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>结果一<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精选手册》【拓展阅读】【API进阶之路】因为不会创建云服务器,我被实习生摆了一道【API进阶之路】前浪的绝地反击与自我证明【API进阶之路】甩锅大会上,我是如何绝地求生的【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!【API进阶之路】一个技术盲点,差点让整个项目翻车【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察【API进阶之路】破圈,用一个API代替10人内容团队【API进阶之路】用API打造一条自动化内容生产流水线【API进阶之路】没有AI工程师也能做OCR文字识别【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?——活动推荐——华为云已经成为全球主要云服务供应商,在华为云上开放了2400+ API,包括计算、存储、网络、应用服务、软件开发服务、视频、数据库、EI智能等74+产品,如何利用这些丰富强大的API快速开发自己的应用和服务,成为大家关注的热点。华为云API学习赛,为入门初学者量身定制的学习平台,以赛带学,学以致用。无需代码,只需下载体验模板,按操作文档操作即可完成作品。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机超级激励!!识别下图二维码即可报名参加。API入门学习赛·AI人脸识别报名地址奖项设置API入门学习赛·探险寻宝之旅报名地址奖项设置
-
本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色。到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年终奖可是息息相关的事儿。业务部门冲业绩,带动着研发的需求不断增加,这个部门说想要提前上线,那个部门说要临时加个需求,研发只能说我们得按排期来,这句话平时可能好使,可一旦需求和业绩相关,那研发就要火力全开,排期什么的就得靠边站了。最近研发的需求量涨了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精选手册》【拓展阅读】【API进阶之路】因为不会创建云服务器,我被实习生摆了一道【API进阶之路】前浪的绝地反击与自我证明【API进阶之路】甩锅大会上,我是如何绝地求生的【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!【API进阶之路】一个技术盲点,差点让整个项目翻车【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察【API进阶之路】破圈,用一个API代替10人内容团队【API进阶之路】用API打造一条自动化内容生产流水线【API进阶之路】没有AI工程师也能做OCR文字识别【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频【API进阶之路】干掉PPT!现场编码的职级晋升答辩你参加过么?——活动推荐——华为云已经成为全球主要云服务供应商,在华为云上开放了2400+ API,包括计算、存储、网络、应用服务、软件开发服务、视频、数据库、EI智能等74+产品,如何利用这些丰富强大的API快速开发自己的应用和服务,成为大家关注的热点。华为云API学习赛,为入门初学者量身定制的学习平台,以赛带学,学以致用。无需代码,只需下载体验模板,按操作文档操作即可完成作品。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机超级激励!!识别下图二维码即可报名参加。API入门学习赛·AI人脸识别报名地址奖项设置API入门学习赛·探险寻宝之旅报名地址奖项设置
-
分享任务规则&奖励:活动时间:2020年10月16日-2020年11月15日 · 分享任务规则&奖励:分享文案+链接,每次分享可获得500码豆,最多可获1000码豆;第一步: 分享以下文案+活动链接至朋友圈或100人以上技术群(微信、QQ、钉钉不限);(注:如分享朋友圈需满1小时后截图)每次分享完成并上传截图可获得500码豆(最高可获得1000码豆),码豆可用于兑换码豆会员中心精美实物礼品。分享文案&链接:我正在参与华为云学院赋能学习季精选课程:《API网关:助力API经济》,课程学习加Demo体验,30分钟轻松玩转华为云API网关,参与学习还能赢精美好礼!活动链接:https://bbs.huaweicloud.com/forum/thread-65521-1-1.html第二步: 分享完成后截图,点击这里或复制打开链接:https://www.wjx.top/jq/93822668.aspx 上传分享截图;符合要求的截图即可算作分享成功;码豆奖励会在活动结束后15个工作日内发放。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签