业务场景
用例 1-用例 2-用例 3
到达用例 3 发现不满足继续执行的条件
那我就要继续从用例 1 开始执行吧
那要怎样才能重头执行呢
目前框架 pytest
还是说到达用例 3 执行不下去直接就失败了
pytest 有失败重试 但只能标记其中一条吧 并不是从头重新执行
如果做好测试用例的单一性,应该不存在你说的这种问题。
你安排的这一组测试用例,就是为了测试某个确定性的场景,所以不应该存在用例 3 满足不了条件,如果满足不了,就是有问题的啊。应该从用例 1 的测试数据准备开始,就是为了这个场景能够被执行下去。
个人不是很建议在场景用例中做过多的判断,否则这个场景要做验什么,到最后你自己都搞不清楚。如果分支过多,那测试用例执行通过了,你到底是验证到了哪个分支,你自己都不知道。
你把用例理解为业务逻辑 + 断言,用例 1-用例 2-用例 3 就可以拆分成:
用例 1=流程 1+ 断言,
用例 2=流程 1+ 流程 2+ 断言,
用例 3=流程 1+ 流程 2+ 流程 3+ 断言,
用例 3 失败了不就从流程 1 开始走了么。
另外就场景法来说
流程 1->流程 2->流程 3 这个场景属于基本场景,只看正向覆盖,只需要 1 条用例覆盖整条即可。
中间流程 1、流程 2 如果有其他分支应该作为可选场景进行路径覆盖。(比如流程 1->流程 4)
确实应该从一开始就确定某一场景,但问题是用例 1 的时候并没法区分所要执行的场景,除非固定死这一种场景就用这一条数据。
我目前做法是随机获取一条数据,只有一条场景是,用例 2 的数据会关联到用例 3,所以会出现到用例 3 执行不下去,需要修改用例 2 的数据,用例 3 才有可能执行下去 。其他场景的用例 3 不会有这种情况
用例 3 里面包括流程 1-流程-2,难道把流程 1、2 写成函数来调用吗,这样用例 3 里都包括了用例 1、2 了,为啥还要分别写个用例 1、2。
用例设计最好都是单独可执行吧,流程 3 如果必须要流程 1、2 的数据,那可以前置生成吧。
用例之间不是应该能独立运行吗
如果场景用例 1、2、3 是一个完整场景相关步骤
首先、执行前要确保用例场景已设置正确,或可以自动设置
场景条件满足后,如果执行过程中发现步骤 3 又不具备条件执行,那应属于用例执行失败
如果场景用例 1、2、3 是单独的场景用例,之前的验证没有关联性,应对其数据/条件进行解耦,结果清晰