自动化工具 接口平台实用功能设计分享——数据库校验

面对疾风吧 · 2020年12月18日 · 最后由 面对疾风吧 回复于 2020年12月19日 · 4122 次阅读

背景

  • 继上次二次开发社区接口平台过去几个月了,实用的过程中也发现了有些场景和功能无法满足,上周趁着项目空闲着手将自己的一些想法一一实现,体验了一周,丝滑般的顺畅,话不多说。将设计思路给大家看下共勉!

功能如下所示

  • 在我们手动接口测试时,往往需要去和数据库做校验,才能够更确保接口的正确性,那么如何来设计这个功能呢,我也翻遍了社区开源的接口平台,暂时没找到一个可以借鉴的。寂静思虑规划后,我就开始着手去做了,下面给大家看下功能。
  • 首先设计了数据库信息页面,因为我们校验的 sql 可能需要选择不同的数据库,所以不能够写死在代码里,这里也加上了人性化的设计,可以点击 ‘测试’ 按钮,查看是否连接成功
  • SQL 管理页面,考虑到我们做数据库校验时,有些接口可以公用到一个 sql,同时也为了管理 sql 方便,我单独设计了一个页面,新建 sql 时,需要指定连接的哪个库,这里需要关联数据库信息表。另外也加入了 ‘测试’ 按钮,让我们知道查询 sql 后的结果
  • 公共参数,故名意思,就是这里的值每个用例的接口都可以实用,在此我设计了四种类型,
    • Python 类型,就是可以为 python 代码,常见的应用场景新增时名称不要重复,那么就可以生成个随机数,会将执行该代码后的结果赋值给实际值进行储存。
    • 关联类型,该类型可以关联任何接口的返回值,并通过 jsonpath 的方式取数。
    • SQL 类型,可以获取到关联 sql 查询的值作为实际值 。
    • 自增类型,有时候觉得随机数生成的没有规律,那么就可以用自增类型,每用一次自动 +1
  • 说到这里我们公共参数和 SQL 到底如何用呢,且看下面
    • 加入了关联校验,响应值就是接口的返回值,数据源实际上为三种:变量(引用了公共参数)、jsonpath(以 jsonpath 的方式去返回值里取数)、字符串
    • 校验数据源,实际也是三种:SQL,选择关联的 SQL,校验值为 SQL 的字段、变量(引用公共参数)、字符串
    • 公共参数规则:目前 ${} 括号里面的我会认为是公共参数,以名称去参数表表查询,并取到对应的值,取不到赋值为不存在等信息反馈给用户
    • 公共参数可以用在 URL、请求体、SQL 语句、关联校验等多种场景
  • 从结果报告里我们也可以看到响应和校验的实际值,来作为用例是否正确的凭据
  • 也加入了易用的小功能,当返回值 json 串太长,不方便复制。于是加入了一件复制按钮

  • 因为有些用例场景需要不同的 host 或者不同的账号来完成,所以加入了可以选择是否默认 host 的功能,虽然工作量小,但是有了它又满足了更多的使用场景了

后续计划

  • 测试平台的功能暂时觉得完成的差不多了,最近也一直着手看性能调优分析,深感自己对这一块太薄弱了,狂啃了两本书
  • 在此求推荐相关性能测试书籍,有其他疑问也可以加我微信 liuxiaolu4986
  • 这个设计我觉得目前比较喜欢,大家有不同的设计也可以互相交流学习哦
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 3 条回复 时间 点赞

支持跨多个数据源的查询吧

我现在的做法是实现一个执行 sql 的接口,然后把执行结果抽取出来和要验证接口的响应值对比。

嗯呢可以的哦,具体是我以查询的结果去取某个字段的值 来跟返回值做的对比,在关联校验时,可以 添加很多行,选择不同的 Sql 语句进行关联校验

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册