在自动化用例脚本编写时,用例之间应该是相互独立的,目的是为了避免用例执行结果相互干扰,在测试结果出现问题时,便于快速定位问题、排查问题,可以准确定位到是哪个用例出现了故障,不会因为用例之间的相互依赖关系而使问题的排查变得复杂,同时便于共享,其他成员可以直接使用这些测试用例进行测试。本文主要总结了一些保障测试用例独立性的要点。
原则:
一条 testcase 只允许编写一条测试用例
基于用户对象控制数据,用例初始化时需清空用户下的所有数据
用例的前置数据都需要在 testCase下重新生成
后置步骤可以实现数据的清理方法(数据库存储的数据、channel.close()、file.close())
不能基于被测试过的数据执行用例,比方说获取首页便签接口的验证,前置的数据已经被删除后再进行恢复
demo:
import unittest
class Test(unittest.TestCase):
# 实例化
# 定义环境变量
# 定义接口变量
def setUp(self) -> None:
# 基于用户进行数据清理
pass
def testCase01_major(self):
"""新建分组的主流程"""
# 新建分组的接口请求
# 精准校验断言
# 数据源的校验
def testCase02_major(self):
"""查询分组的主流程"""
# 前置分组数据
# 查询分组的接口请求
# 精准校验断言
def testCase03_input_must_key(self):
"""not must key: noteId"""
pass
def testCase04_input_must_key(self):
"""not must key: groupId"""
pass
具体落地情况:
数据清理方法放在 setup 用例的方法前置下,不需要在用例中或用例结束实现数据的清理
用例的前置步骤需要在 testCase 下实现
需要提前准备好测试账号,用于测试数据的构建、修改、删除、查询
数据清理方法只能基于测试账号进行清理,不允许实现清表清库
尽量避免使用用例并行执行
评论区