场景:
有一批case,需要实时获取最新数据,再根据某些规则生成可供paramtrize使用的用例集,由于执行测试之前,先执行了收集过程,所以导致paramtrize中使用的数据不是最新数据,需要在paramtrize执行之前,先将数据预热(大概要实现的过程为:执行收集前,获取最新数据,并将最新数据写入yaml文件,在收集case时,读取yaml文件的最新数据,并执行数据解析封装)
case如下图
个人已经尝试的方法/思路:
方法一(无法实现):采用fixture实现setUp和tearDown过程,如图:
多次尝试后,setUp和tearDown过程在用例收集完毕,执行测试时才被调用,故无法实现需求
方法二(无法实现):在conftest.py中使用hook函数—pytest_sessionstart函数
要么报错,要么无任何反应
方法三(无法实现):在conftest.py中使用hook函数–pytest_collection函数
要么报错,要么无任何反应
PS:忘记截图啦,代码与方法二一致
方法四(无法实现):在conftest.py中使用request.param传递case
前置条件是:1. 存在setUp和tearDown过程的fixture(scope=“session”, autouse=True) 2. 存在通过request.param传递数据的fixture ==>结果是 2先被加载 再加载了1 数据还是对不齐
求助一下大佬,还有其他办法能实现吗??还是hook函数用错了呢???使用哪个hook函数?如何实现呢?