问答 关于接口自动化测试用例思路的两种方案,应该选哪种呢

wangwangtest · 2026年01月27日 · 最后由 zby123 回复于 2026年02月03日 · 4847 次阅读

需要测试的接口:
接口名称:根据商品状态进行查询
关键参数:status(0:未上架,1:已上架,2:已下架)

商品状态:未上架、已上架、已下架
商品状态流转: 未上架 →(上架操作)→ 已上架 →(下架操作)→ 已下架

方案一:
1.分别构造 未上架、已上架、已下架 状态的商品数据;
2.调用接口,依次传入 status=0、status=1、status=2,验证返回结果是否符合预期

方案二:
1. 构造一个 未上架 的商品;
2.传 status=0 查询,验证结果;
3.上架该商品,使其变为 “已上架” 状态;
4.传 status=1 查询,验证结果;
5.下架该商品,使其变为 “已下架” 状态;
6.传 status=2 查询,验证结果。

问下大家,应该选择哪种方案呢,问了两个 AI,两种答案都有

共收到 12 条回复 时间 点赞
僅樓主可見

明显方案一更合适,对于人类而言操作步骤简单,单位时间内测试效率更高。对于 AI 而言,往往不会站在人类惰性上面去考虑问题。

如何分别构造 未上架、已上架、已下架 状态的商品数据?
是按照方案二的 1、3、5 流程构造吗, 那么你需要执行 3 次 , 那还不如直接使用方案一效率更高
还是通过改数据? 或者从数据库里捞取已有的数据?, 各有优缺点

方案一简单,方案二链路长,如果依赖的多个服务部稳定,用例稳定性会低一些;个人感觉是。方案二 + 稳定的测试换 应该也可

除非有什么特殊要求,不然首选第一种;接口自动化用例需要有原子性,每个 case 只测一个东西,保持简单

我喜欢方案二,可以一条用例跑完,数据也只产生一条,数据清理也简单,我做自动化不是为了找 bug,而是验证业务流转,提效。方案一要多产生 2 条数据,清理的时候也要麻烦点。当然每个人思路不一样 我看大家好像都喜欢方案一😀 😀

吼猴 回复

就是按照方案二的 1.3.5,构造的数据,都是通过接口造的
通过数据库造的话,应该不建议吧?可能会有数据库字段变了、或者写入读取逻辑变了

方案 1 适合已产品状态为基地的测试流。方案二适合以围绕产品配置的测试流。一个是静态数据,一个是动态数据。

看心情,不重要

方案 2 是最符合使用流程的,接口测试就应该是这样的流程场景的测试。
如果提前造好了数据,只是验证这个接口是否 OK,没有验证到整个流程是否 OK。

如果上架和下架的操作有其他的自动化测试 case 验证是否成功,操作之后数据入库是否正确,那也可以使用方案一。
如果有单独的上架和下架操作的测试步骤;感觉还是写在一起更好。

简而言之就是,方案 1 验证单一的查询接口,方案 2 验证的是流程场景,我觉得方案 1 和方案 2 都应该存在,可以分两类跑,一类单一接口跑不同参数(这类还可以作为线上的一个巡检的方案),另一类可以单独跑,因为这类的稳定性可能会偏差一些

单纯的验证查询,肯定必须是方案 1,方案 2 你没法确认查询 status=0 在只有状态=0 的数据的情况下,是否还会查询出其他的数据。

需要 登录 後方可回應,如果你還沒有帳號按這裡 注册