接口测试 各位大佬,请教一下无返回参数的接口应该怎么测试呢?

爱吃螃蟹 · 2021年04月29日 · 最后由 剪烛 回复于 2021年05月01日 · 499 次阅读

背景:
SDK 接口无返回值,里面封装了一系列逻辑,包括一些不对外的状态值的变更。
该接口无回参,成功与否会分别去调用监听器里不同的方法,返回不同的标志。

问题描述
接口执行后,测试可以去断言被调起的监听器的返回值是否符合预期。但是接口内部对于一些状态的改变如果存在不符合预期的情况,是不对外暴露出来的。这种情况下,怎么去监测不对外暴露的这些状态的正确性呢?

一些思考
1、可以去看日志,日志里面有详细的输出各个状态的改变,但是问题是日志输出需要人工去看,没有办法实现自动化。

2、让开发把这些状态改变做成回参抛出来,但是估计不太现实。

求教各位大佬有没有相关的经验,指导一二,叩谢!

共收到 8 条回复 时间 点赞

1.可以实现自动化吧

sdk 是你们自家的么?如果是,让开发加几个一些可以查状态值的方法,是不是就可以?

1、可以去看日志,日志里面有详细的输出各个状态的改变,但是问题是日志输出需要人工去看,没有办法实现自动化。

为啥不可以实现自动化?

剪烛 回复

这话说的不严谨,其实是我不知道咋实现自动化。
难道是写成 shell 脚本去捞吗?
或者可以搭建另外一个服务去捞数据,然后做成 api 接口去获取?

陈恒捷 回复

是我们自己的,但是开发很忙,估计不愿意配合。
另外也很好奇他们为啥不抛回参而是调监听器去判断状态。。

爱吃螃蟹 回复

1、开发很忙不愿意配合——给你代码权限,你撸完加上单测,直接提 PR 给开发审核合并

2、从日志输出获取信息——不用那么复杂吧,最简单操作完毕后,直接调 shell 命令 tail 一下日志文件最后几行,用正则提取就好。

建议用第一种方式,既帮助你熟悉 sdk 内部实现,也降低自动化成本,关键还提高了你在开发眼中的地位,以后做这类可测性提升的意见建议也会更容易被接纳吧。

另外,不知道你这里提到的监听器具体对应是什么,建议你也先了解清楚内部实现以及为何这么实现,再确定最佳解决方案吧。

爱吃螃蟹 回复

不用好奇,接口无返回值对你们当前的情况可能是更好的设计实现。既然调监听器能达到测试验证的目的,就不用纠结什么了吧

爱吃螃蟹 回复

办法总比困难多。
我们也有,验证的时候没办法通过 api 拿到信息的情况,我们通过调用系统日志来看的,直接筛选关键词

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