问题
目录结构
conftest放在testcase里面,执行用例时先去了page里面的homepage模块,但是模块里面涉及到了登录之后才能操作定位元素,但登录又是作为fixture放在case里面的,运行的时候,没有先去执行conftest的登录判断,conftest里面的session执行后于page页面的操作,向大佬请教下,要如何优化呢?是否把driver初始化放置在conftest里面?
报错信息
环境
win7+python3.8+pytest
目录结构
conftest放在testcase里面,执行用例时先去了page里面的homepage模块,但是模块里面涉及到了登录之后才能操作定位元素,但登录又是作为fixture放在case里面的,运行的时候,没有先去执行conftest的登录判断,conftest里面的session执行后于page页面的操作,向大佬请教下,要如何优化呢?是否把driver初始化放置在conftest里面?
win7+python3.8+pytest
你的业务逻辑和你代码的执行逻辑都对应不起来。
登录理论上来说也是一个po,不应该放在fixture 里面。fixture里面可以放一些和业务逻辑本身无关的,比如driver的初始化
登录也是有一个单独PO的,但是单独某个模块的用例先执行没有找到对应的资料,所以我就想把登录放在fixture里面。如果driver初始化放在fixture里面的话,那我自己封装的basepage类,里面的对元素的操作,每个都要传这个fixture里面的方法,我觉得又有点麻烦。所以现在是有点迷茫了。。。
用setup不就可以了嘛
setup 本来就有类级别模块级别的
我有很多个PO。每个PO里面都要去写setup_class吗?有点麻烦。。。
是有不同的级,但是对于我手上的这个项目来说,区别不大 。。我基本上 一个modele 就是一个class,里面有各种方法。
我现在的疑问就是我以为scope =session,程序执行的时候,这个session从什么时候开始算,是否从po模块的basepage初试化就开始算吧,我执行的时候,每次要到执行用例的时候,才开始有我自己的fixture调试信息。
我现在是这样操作的,也能跑通过,就是感觉有点怪怪的。
其实我一直没明白你需求是什么,是想一个driver 实例跑完所有用例?
不好意思哈,没有表达得很清楚。我的需求就是先执行登录模块的用例,我现在是在basepage初始化driver的地方,引用了登录的方法,也能实现,我是感觉这样的调用不太科学来着,就是想了解下,还有没有其他方式能实现?
另多个模块的用例跑的时候能实现一个driver跑完吗?模块间的driver 传递 是不是框架帮忙做了?
谢谢老师。