前言:做自动化测试,不可能把所有代码都写在同一个文件夹内,那么这里就涉及到框架的设计,而说到搭框架,就必然要用到自定义模块的引用,这部分网上的方法很多,但是小白一个,还是研究了很久才能应用到自己的框架中。因此做个记录备忘。
首先介绍下我的框架,这里,将配置文件及获取cokies的方法放在config文件夹下。
然后在testcase中需要用到readconfig和login中的方法。
导入自定义模块第一种情况:同个文件夹内的调用。
例如:config中,login.py要调用readconfig.py,则只需要在config文件夹中新建一个空文件__init__.py,使其为一个包的概念。然后在login.py中就可以直接用:
from readconfig import ReadConfig.
但是如果login.py要被另一个文件夹的testcase中的addcourse所使用,那么就不能这样写了。必须按第二种情况。
导入自定义模块第二种情况:跨文件夹重复调用。
testcase中的addcourse.py需要用到readconfig.py和 login.py,那么可以将两个文件夹的上一级文件夹即ExamTest添加到环境变量中。
import sys,os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
翻译下就是
添加环境变量(获取父级目录ExamTest(获取父级目录testcase(获取当前文件路径add.course.py)。
建议把每个os打印出来看看,有助于了解。
此时就可以用
from config.readconfig import ReadConfig
from config.login import Login
导入自定义的模块方法。
最后,自学的小白,很多概念性的名词经常搞混,如有用词不当,欢迎指点。