• 智能生成并盘活API研发资产


    一、基于代码智能生成API文档

    众所周知,Java程序员在写完后端API接口后,都要和前端程序员进行接口调试,这个时候,就要手写API文档了,包括API名称、请求方式、入参、出参、一些注意事项等。
    如果调试出问题了,需要调整代码,再调整API文档,苦不堪言。后来一个同事向我推荐了Eolink可以直接基于代码生成API文档,这,太香了。

    体验链接 ➢ ➢ ➢ https://www.eolink.com/

    1、点击其他,选择API文档生成

    2、点击添加来源,在弹窗中选择通过 Swagger URL 生成 API 文档,然后点击下一步:

    配置完成后,界面会提示配置完成。此时您可以通过在当前页面页点击同步按钮,或者通过 Open API 触发同步操作。

    3、从代码仓库中扫描 API 文档

    目前支持GitHub、Gitlab、码云。
    进入Eolink主页,点击左下角其他,点击API文档生成,点击添加来源,即可看到代码仓库。

    4、以GitHub为例,配置项介绍

    •来源名称
    •代码注释方式(swagger、apiDoc)
    •代码仓库地址
    •用户名:GitHub账户名称
    •仓库名:GitHub Repository 仓库名称
    •访问私钥:仓库私人令牌,可在Personal Access Tokens中生成
    •需要扫描的分支
    •需要扫描的API目录路径:API 层相关代码的存放路径
    •需要扫描的数据结构目录路径
    •目标语言:java、php
    •数据同步方式:目前可选增量更新、全量更新、仅添加新的API三种形式,推荐采用增量更新的方式。每次同步之后,系统都会自动生成API历史版本方便回滚文档,因此不用担心操作失误问题。

    可以根据不同的需求,选择适合自己的方式,直接生成API文档,解放了我们的双手,爽歪歪。

    二、基于API文档智能生成测试用例

    体验链接 ➢ ➢ ➢ https://www.eolink.com/

    通过Eolink的 自动生成测试用例 的功能,可以帮助测试人员根据预先定义的规则快速生成对应接口的测试用例,并可以在次基础上进行二次编辑调整,大大减少测试人员用例编写时间。

    1、新建API

    点击+API按钮,填写 API 的请求地址、请求参数、校验规则等信息,然后保存即可。

    2、校验返回结果

    测试用例支持对返回结果进行校验,以下是几种结果校验规则:

    很多时候,测试需要经过一个漫长的过程,单元测试、前后端联调、系统测试、性能测试等等,一套API接口可能需要很多人、在不同的电脑上进行各种各样的测试,测试一次编写一次API路径、入参……麻烦至极!此时,Eolink又给大家提供了一个很便捷的功能,导出API文档、再到其它电脑导入API文档生成测试用例,让我们一起来体验一下吧。

    3、导出API文档

    4、导入api文档,生成测试用例

    5、API文档导入成功,测试十分便捷

    目前的项目基本都是前后端分离,后端为前端提供接口的同时,还需同时提供接口的说明文档。但我们的代码总是会根据实际情况来实时更新,这个时候有可能会忘记更新接口的说明文档,造成一些不必要的问题。
    通过导出、导入功能,生成可视化 RESTful 风格的 Web 服务的接口文档,前后端工程师沟通起来更加便捷。

    三、基于API文档智能生成请求代码和业务代码

    1、单点测试功能齐全

    •编辑
    •查看、对比API的修改历史
    •当API改变时通知相关成员
    •对API文档发表评论并通知相关人员
    •代码示例
    •复制、删除

    2、API请求代码支持多种语言

    3、生成API请求代码

    基于API文档智能生成请求代码和业务代码,可以查看API的修改历史,大大提高了代码的容错率和健壮性;还支持生成各种编程语言的代码示例,节省了大量的代码交接、讲解时间。

    4、生成业务代码

    登录私有云,点击API代码生成,根据需求,生成业务代码。

    四、生成请求参数,前后置脚本,Mock规则等业务数据

    1、快速生成随机参数值

    点击构造器按钮,在弹窗中选择 动态生成数据,在下拉菜单中可以选择需要生成的随机值,每次请求的时候都可以动态生成不同的请求参数。

    2、对参数进行快速加解密处理

    例如需要对 user_password 字段值:123456 进行 MD5 加密。点击相应参数的 构造器 按钮:

    在弹窗中选择需要处理的数据以及要进行的操作。选择 user_password 的参数值,并且选择 MD5 加密操作,然后点击替换即可:

    构造完成之后会得到 user_password 经过 MD5 加密之后的结果:

    3、编辑前置脚本

    前置脚本都包括什么呢?

    体验链接 ➢ ➢ ➢ https://www.eolink.com/

    4、编辑后置脚本

    后置脚本都包括什么呢?

    5、编辑 Mock API 期望

    在编写API文档返回结果时,若参数字段和类型匹配智能Mock规则,系统则会自动填入对应的Mock值。该功能提供无感的快速mock值配置,减轻mock规则配置的工作负担。
    智能Mock的匹配规则分两种类型:内置规则和自定义规则。
    内置规则是一套完整的预置智能Mock规则,用户不可编辑具体的匹配规则,仅可整体启用或停用。内置规则有助于用户快速使用智能Mock能力。
    自定义规则是用户自定义自由配置的智能Mock匹配规则,用户可以根据个性化需求创建、编辑和删除自定义规则。支持使用通配符、正则表达式、完全匹配的方式来匹配字段名。

    (1)进入空间级公共资源内的智能mock设置,可看到自定义规则模块和内置规则模块。

    (2)在内置规则模块右上角,有开启/停用内置规则的切换按钮。该按钮默认开启,点击按钮则工作空间内停用内置智能Mock规则。

    (3)点击页面标题下的保存按钮,变更方可生效。

    添加/编辑自定义规则

    1. 进入空间级公共资源内的智能mock设置页。
    2. 在自定义规则模块中,点击底部最后一行中输入对应的数据即可添加新的自定义规则:

    (4)字段规则说明

    1.数据类型:匹配的字段数据类型,必填。
    2.匹配方式:用于确认字段名称的匹配方式。默认为通配符,可选择通配符、正则表达式、完全匹配三种方式。
    3.匹配规则:可输入字段名称匹配表达式,必填。根据所选匹配方式输入对应的名称匹配表达式。
    4.匹配大小写:控制字段名称匹配时是否大小写敏感,默认为否。
    5.Mock 规则:支持输入任意固定值或mockjs的占位符。当字段匹配智能Mock规则的数据类型和字段名称后,系统自动填入的mock值。
    6.备注:用于标注说明该智能匹配规则,仅展示于智能mock设置页。
    7.操作:当前仅提供删除操作。

    完成自定义规则添加或编辑后,需点击页面标题下的保存按钮才会生效。否则刷新页面后当次编辑的数据会清空。

    (5)删除自定义设置

    1. 进入空间级公共资源内的智能mock设置页。
    2. 点击对应自定义规则右侧的删除操作按钮,即可进行删除。
    3. 点击页面标题下的保存按钮,变更方可生效。

    (6)规则优先级

    1. 智能Mock中,自定义规则的优先级大于内置规则。若某个字段同时满足自定义规则和内置规则的匹配条件,则该字段的mock规则优先填入自定义规则的mock内容。(即自定义规则>内置规则)
    2. 新创建的自定义规则优先级更高。若某个字段同时满足两个自定义规则的匹配条件,则该字段的mock规则优先填入较新创建的自定义规则的mock内容。

    随着测试API的全面智能化,可以大大的提升测试阶段的工作效率;降低测试岗位的工作难度,进一步拓展职场人的能力边界,使得Java工程师也可以兼职测试工作,成就编程“多面手”。

    五、总结

    智能化测试是近年来最热门的软件测试话题,它已成为许多高级开发和部署实践的关键推动因素。本文通过简单的实例,介绍了基于代码智能生成API文档、基于API文档智能生成测试用例、基于API文档智能生成请求代码和业务代码、生成请求参数、前后置脚本、Mock规则等业务数据,智能化测试相比手动测试成本更低、效率更高、更准确的测试、使应用程序质量和性能更高,让我们一起开启智能化测试的新篇章。

    体验链接 ➢ ➢ ➢ https://www.eolink.com/

  • 相关阅读:
    Minio + Nginx 实现静态资源对外访问
    Java实现---动态修改定时任务的执行时间
    打exit_hook,如何找exit_hook的偏移
    「教师资格证定期注册」相关答疑
    idea 插件 checkstyle 规则示例和说明
    【数学建模】基于matlab GUI Smith画圆软件设计与演示【含Matlab源码 2195期】
    C语言结构体小栗子
    destoon 调用第三方api接口
    剑指office--字符串
    以太坊“共识层”客户端prysm和teku对比选型
  • 原文地址:https://blog.csdn.net/guorui_java/article/details/128193662