Flask接口签名sign原理与实例代码浅析
222
2023-05-19
新冠疫情肆虐,Eolinker 结合自身长期的远程研发协作经验,为企业推出 API 管理远程协作指南,以下方案不仅在 Eolinker 内部,也在众多客户中得到验证,希望能够帮助您快速了解如何将 API 管理与自动化测试运用在实际的远程办公中。
在过去,许多研发团队并不注重研发过程中的 API 管理,认为API管理无非是管理一下API文档,只需要用word文档或者wiki把API描述写一下,等到需要进行团队协作的时候再把API文档通过文件或者wiki的方式发给前端和测试人员即可。这时候的API管理方式粗放,我们把它称之为1.0时代。
但随着敏捷观念的不断普及,大家开始发现传统的API管理只侧重管理API文档是不行的,存在以下明显的问题:
API文档编写不规范:缺乏统一文档格式,简写、漏写或不写详细说明(开发人员总觉得自己看得懂即可)。 储存平台不统一:公司内部每个项目团队都有自己的使用习惯,甚至一个项目内部可以同时存在多个API管理工具,平台不统一导致无法高效维护和协作。 文档更新不及时:开发团队习惯于先开发后补文档,认为文档对于开发工作而已是一个附加的内容,导致更新不及时。 变更历史不记录:由于没有及时维护文档,当需要回头检查项目或进行工作交接时就会发现看文档不如看代码,反而拖慢工作进度。 测试人员无法快速编写测试用例:由于传统API文档仅仅是个文档,测试人员还需要使用其他工具编写测试用例。 并没有降低沟通成本:由于上述原因,前端、后端、测试、运维等成员经常由于不清晰的文档而引发争论,有时候反而增加了沟通成本。为了解决上述问题而出现2.0时代的工具,开始思考如何将开发与测试结合,比如通过代码注解生成API文档来减少后端开发编写文档的负担、可以基于API文档直接进行测试等。这个时代最突出的产品是Swagger、Postman、Jmeter、SoupUI等产品。随着研发测试一体化的观念推广,这些产品逐渐成为目前主流API管理与测试工具,有着庞大的用户群体。
但是上述产品出现时并未流行远程协作,因此其产品设计基本是基于本地开发和个人使用,因此当遇到越来越高的迭代速度和质量要求时便显得力不从心,从而出现以下问题:
前端开发进度受制于后端:单纯API文档缺乏Mock API,前端需要等待后端开发完成才能拿到测试数据,自己构造测试数据费时费力。 文档变更不通知:后端开发改了代码和接口习惯于口头沟通,而不是通过文档明确地指出修改的内容,导致后期沟通成本高昂。 接口测试不方便:需要看着接口文档再另外使用工具进行测试,如果接口发生了变化,写好的测试也作废了,增加了重复工作量。 测试工作重复:需要看着接口文档再另外使用工具进行测试,如果接口发生了变化,写好的测试也作废了,增加了重复工作。 工作成果无法分享:每个测试人员都用单机测试工具编写测试脚本,但却没法共享和协作。 测试工作不自动化:一直希望促进自动化测试,但是没有真正运作起来,每天“点点点”依然消耗大量测试团队的精力。 测试效果无法量化:无法准确了解测试效果,没人可以说清今天、昨天、上周、这个月的测试情况如何,和之前比有何改进。 测试工作被动:测试总是排在最后进行,无法参与项目讨论,无法进行快速大范围回归测试,甚至无法按时完成测试任务,导致项目延期或带着忐忑上线。并且这些产品并未解决 API 研发协作过程中的核心问题:如何将开发、测试、运维、团队协作四者结合,成为一个适用于团队的、灵活的、统一的API管理平台。并且能够为后续API监控、运维提供直接的支持。
我们将实现了开发、测试、运维、协作等四大要素的成为3.0时代的产品。而 Eolinker 自2017年成立以来,一直致力于构建 API 全生命周期管理解决方案,目前是国内最大的在线 API 研发管理平台,旗下的线上SaaS产品以及离线私有化产品包括:
API 生成平台(API Factory) API 研发管理与自动化测试平台(API Studio) API 监控平台(API Monitoring) API 微服务网关平台(API Gateway) API 开放平台(API Open Platform),即将发布相信大家早已听说过以下开发模式:文档驱动开发(DDD)以及测试驱动开发(TDD)。
文档驱动开发指的是在开发之前先把文档写好,明确功能需求、入参出参定义、异常情况处理等之后再进行开发。这就好比我们在做题之前需要先了解清楚题目要求,否则不审题就下笔很容易导致最后返工。
而测试驱动开发指的是在开发之前先把测试方案/用例写好,只开发能够顺利通过测试的功能,如果测试不通过则持续进行改进。这就好比我们考试前会先了解考试通过的标准,没有标准乱答一通肯定没有好结果。
以上两种开发方式进行结合后就是 Eolinker API Studio 的设计理念:文档与测试驱动开发(DTDD)。简单地说就是:
用标准文档代替口头约定和笔记文档,让开发、测试、运维、协作有迹可循; 快速用测试结果推动开发进度,让团队沟通更充分、管理有事实依据,实现敏捷开发。因此,在 Eolinker API Studio 中,几乎所有的协作工作都是围绕着 API 文档进行的,当你创建了 API 文档之后,你可以随时查看 API 的改动情况、根据 API 文档发起 API 测试、编写 API 测试用例、创建 Mock API、进行 API 自动化测试等。
我们在接触了大量的客户后发现,采用 “DTDD” 模式比单纯用TDD或DDD方式的效果更好,相比之前提到2.0时代的研发效率提升以及项目质量提升更是要提高数倍。
因此我们非常建议您尝试这种方式进行工作。
在 Eolinker API Studio 中,所有的 API 都是以项目的方式进行妥善管理,因此我们首先需要创建一个 API 管理项目。同时我们也提供了一键导入功能,可以快速将Swagger、Postman、RAP、YAPI等产品内的数据快速迁移到 Eolinker 中。
在 API Studio 中,您可以通过三种方式来创建API文档:
手动创建API文档,API Studio提供了非常全面的API文档格式,能够详细记录您的API信息。这种方式适合所有用户,并且也是我们推荐的方式。 关联项目与Swagger URL,API Studio自动从该地址获取最新API文档。这种方式适合之前已经在使用Swagger,并且倾向于将文档写在代码注解中的用户。但这种方式会带来代码入侵的问题,让代码中加入了许多无关的信息从而增加维护成本。 关联项目与代码仓库,API Studio自动从代码仓库中扫描代码注解生成API文档。目前这种方式支持Java以及PHP两种语言。这种方式也会带来代码入侵的问题。当我们创建好 API 文档之后,可以在 API Studio 中看到清晰的 API 文档信息,并且可以在此基础上进行测试API、编写API测试用例、编写Mock API、管理API版本等等的操作。
当我们创建好 API 文档之后,可以立刻对该 API 进行测试,API Studio 提供了以下主要特性来帮助测试人员快速发起 API 测试:
1. 支持本地测试、局域网测试、在线测试等;
2. 支持一键切换测试环境,使用全局变量、增加额外请求参数、改变请求地址等;
3. 支持直接在界面编辑JSON、XML请求数据,不再需要手写JSON、XML等数据结构;
4. 支持将测试数据保存为测试用例,以后可以直接使用测试用例进行测试;
5. 支持批量测试 API,比如测试登录接口的多种情况并且返回实时测试数据;
6. 支持在测试过程中编写代码进行签名、加解密、生成随机数据等操作;
7. …下图:在测试界面可以直接编写JSON数据。
下图:一秒切换测试环境并且发起测试。
在以往的协作方式中,测试人员工作总是排在最后进行,无法参与项目讨论,无法进行快速大范围回归测试,甚至无法按时完成测试任务,导致项目延期或带着忐忑上线。
在 API Studio 中,由于协作是基于 API 文档进行的,当后端开发人员将 API 文档写好之后,测试人员就可以马上介入,在 API 文档的基础上编写测试用例,让测试工作前移。
当 API 开发完成之后,测试人员可以一键将 API 的测试用例全部测完,并且得到详细的测试报告。后端开发只需要看到测试结果就能够知道自己的 API 是否满足测试需求,如果有异常则可针对性改进。
当 API 发生改变后,测试人员只需要一键即可进行 API 回归测试,真正解放劳动力。
通过上述方式,后端和测试人员可以进行更紧密地沟通,让测试驱动开发完成。
下图:批量测试 API 的多种数据情况,并且获得详细测试报告,可以在报告中查看API异常原因。
在瀑布流开发模式中,如果前端开发人员需要进行页面对接,需要后端先完成 API 的开发工作,因此前后端开发的进度会互相影响。
通过 Mock API,您可以事先编写好 API 的数据生成规则,由 API Studio 动态生成 API 的返回数据。开发人员通过访问 Mock API 来获得页面所需要的数据,完成对接工作。
Mock API 支持根据不同的请求参数返回不同的 HTTP Status Code、Header、Body等数据。你可以在一个 API 文档里创建多个Mock API ,模拟前端发起的各种请求,方便对前端逻辑进行校验。
当项目正式发布时,只需将 Mock API 的地址前缀替换为实际的访问地址即可。
比如:同一个项目中的Mock API的地址前缀是相同的(如mock.eolinker.com/uasyd1/…),因此可以在代码中将Mock API的地址前缀作为全局变量,项目上线时仅需替换变量的值即可改变整个项目的 API 请求地址前缀。
下图:该API创建了多个Mock API,前端可以传递不同的请求参数获取相应的返回结果,比如用户名为 jack liu时返回登录成功,用户名为 percy时返回登录失败或随机字符串。
许多用户在维护 API 时,经常遇到 API 文档变更了,但是前端和测试人员却不知道的问题。为了解决这个痛点,API Studio 提供了变更通知功能,当 API 发生变化时通过邮件和站内信自动通知相关成员,并且显示变更的内容。
并且在 API Studio 中,我们将 API 的状态划分为以下阶段,方便成员在查看 API 文档时了解 API 当前所处的状态。
结合 API 变更通知的功能,我们就能够实现:
当API状态变为“开发”时,通知后端开发; 当API变为“对接”时,通知前端进行对接; 当API变为“测试”时,通知测试人员进行测试; 等等…下图:设置当API删除或异常时,通知某位成员。
当您进行远程协作时,可以直接在 API 文档上发布评论,所有的沟通内容都会跟随 API 文档保留下来并且按照版本分类好,而不是零散地存在各种聊天工具中。这样避免后期沟通时找不到依据而浪费时间。
下图:在 API 文档中直接发表评论,并且@了项目中的另一位成员查看。
API Studio中还提供了非常强大的 API 版本管理功能,您可以随时回滚到任意一次 API 文档版本,并且还可以对比两个版本之间的差异。
当无法用语言沟通更新了什么时,不妨试试版本对比~
如下:当前版本相比历史版本,删减了某些参数,会在界面中以红色标出。
API Studio的功能还远不止如此,您可以在项目中进行严格的人员权限管理、API状态码管理、项目文档管理、测试环境管理等等,一切都是为了让团队协作能够更加轻松高效。
在 API Studio 中还提供了目前市面上领先的 API 自动化测试功能:
零代码自动化测试:不需要写任何代码即可进行 API 自动化测试; 代码模式自动化测试:编写少量 Javascript 代码即可进行复杂流程的自动化测试; 支持操作数据库:测试过程中支持操作数据库,执行数据插入、删除、编辑等操作; 数据驱动测试:一个测试用例支持测试多组数据,分别生成测试报告; 自动生成测试报告:每次测试都可以生成详细测试报告,支持在线查看和离线下载; 支持定时测试任务:设置定时器自动执行测试任务,将报告发送给指定人员邮箱; 支持 Open API 触发测试:可以通过 API 对接 Jenkins,随时进行 API 自动化测试; 极低学习门槛:15分钟培训即可快速上手进行 API 自动化测试;可以帮助您快速解决以下常见问题:
需求发布前需要对项目进行回归测试,传统测试方式的覆盖面窄、效率低下。可以用自动化测试提高测试范围以及效率; 产品需求变动/代码改动后,测试人员无法确定测试范围。可以用自动化测试进行大范围回归测试保证基本业务正常; 传统测试方式的周期长,无法每天、每小时、24小时随时执行测试,并且依赖于人的专业性,测试效果不可靠。可以用 API 自动化测试的定时测试任务或者将 API Studio 集成到 Jenkins 上,实现代码提交即触发测试并实时得到测试报告。 传统测试团队成员之间缺乏协作,互相不清楚各自编写的测试用例、测试脚本、测试结果等,导致重复劳动。可以用 API Studio 实现测试团队的在线协作。 测试团队使用 API Studio 日常维护 API 自动化测试用例后,可有效解决上述问题,帮助测试团队提高测试能力和效率。在 API Studio 中,我们提供了 UI 和代码模式两种测试用例编写模式:
UI模式:支持通过界面模式编辑 API 自动化测试用例,无需编写代码即可完成较复杂的API自动化测试工作。 脚本模式:通过编写Javascript代码,可以完成复杂的API自动化测试工作。由于篇幅原因,我们在此仅演示 API Studio 的自动化测试效果,如需了解具体内容可以访问 Eolinker 官方网站查看。
如下图所示,您可通过界面方式编辑 API 测试流程、API 之间的数据管理、返回的校验规则,甚至是插入数据库操作等,然后一键即可获得测试报告。
脚本模式中,您只需要编写几行代码即可发起测试,并且支持从 API 文档自动生成测试脚本!
我们可以选择多个测试用例,一键批量测试并得到测试报告。
API Studio 中提供了多种自动化测试的触发方式:
手动触发; 定时触发; Open API 触发,可对接到 Jenkins 等持续开发平台中。灵活运用即可打造一个属于您的测试效率神器!
疫情的肆虐让无数的企业经营受阻,以上是Eolinker 结合自身长期的远程研发协作经验,为企业推出 API 管理远程协作指南,以下方案不仅在 Eolinker 内部,也在众多客户中得到验证,希望能够帮助您快速了解如何将 API 管理与自动化测试运用在实际的远程办公中。我们希望能够为此尽绵薄之力,帮助更多企业从传统、低效的开发方式中解脱出来。
如需了解更多关于 Eolinker 的产品信息,欢迎通过以下方式与我们联系:
官方网站:https://www.eolinker.com/
产品手册:点击这里下载产品手册
400电话客服:400-616-0330
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~