比如有一个获取商品库存的接口,想要获取某个商品的库存,必须要有该商品吧
用的 pytest+yaml,目前想到这些方式
这三种方式哪种比较好呢,或者说有更好的方式,求教,十分感谢
1、存量商品可以写死一个之前已有的商品(如果怕被人误删或者误改,可以写个方法每次执行前插入 or 更新数据库的对应数据) 2、新增商品接口,获取新增的商品 建议以上都考虑实现,因为分别覆盖的是存量和新入库商品的场景,都需要测试覆盖
看场景。
如果是单接口测试,那前置条件越简单稳定越好。这种场景推荐方法 1
如果是场景测试,比如要完整走一遍 创建 - 获取库存 - 购买 - 减库存 ,那需要用方法 3
方法 2 个人不是很推荐,因为测试环境数据比较多样,且有可能存在脏数据。直接获取已有商品有可能获取到脏数据,导致不稳定。
我的理解: 你要获取商品库存,首先数据库要有商品,不管是涉及 1 张表还是 2 张表,这是必备条件。 一般是 2 张表的方式,比如: A 表字段:商品 ID,商品名称 B 表字段:商品 ID,库存数量 所以要确定的是
那么操作步骤,一定是先查询,或先创建再查询,意味着你可以查到一个商品 ID 的集合,比如查前 10 条 然后构建一个随机选择的方式,得到某个商品,最终,你就可以调接口看返回值了。
这边推荐用 3 可以适应各种环境 减少静态数据的依赖可以让自动化在各种环境游刃有余
看实现成本和维护成本 1、除非是数据的动态构造比较麻烦,一般使用动态实现适配各个环境,并且避免静态数据被偶然篡改造成的不稳定 2、动态准备数据可能降低用例执行通过率以及增加执行时长,可以用异步方式提前准备并写入自定义数据库或缓存中,执行时直接使用