1.采用PO分层的思想, 对页面元素进行封装, 一个page文件分为元素层, 操作层,业务层, 那么就会有多个page文件需要在脚本里进行引用, 一个一个的导包就太费时间了.
2.此时我们就可以引出一个统一入口类来管理我们的page对象.
这样我们就通过实例化这个统一入口类的类方法来调用被这个统一入口类管理着的业务层了.
3.此时我想着,能不能在 page的init 文件下用一个类来实例化page文件下的所有业务对象, 然后就可以直接通过page文件来使用?
然后 我就复制了一个现有的脚本, 使用这个page的init 属性来获取业务层的实例化对象,
然后就出现异常了,就是第一个用例是正常的, 第二个就异常报错. 我本来是在类级别的fixture中实例化这个统一入口类的, 我就换到了方法级别的fixture里, 还是异常, 最后将它放在test用例里也是一样, 而且异常报错的原因都是一样的.
我推测是属性占用原因, 因为我亲眼观察着脚本的执行, 第一次是正常流程, 因为我就在参数化的时候就写了两个元祖,所以这条用例会执行两次, 第二次的时候能够启动app, 但是没有办法获取到init文件里的page对象.
报错的信息都是和session有关,有可能是init文件是首次使用到page这个包就初始化了, 但是随着appium的driver的退出和关闭就断开会话了,但是整个程序仍然在执行, page的生命周期还没结束,所以又没法重新初始化这个包里的init 文件, 就导致产生了属性占用的冲突
自动化脚本中统一入口类的使用问题
最新推荐文章于 2022-03-11 14:09:43 发布