用unittest加载完测试脚本然后启动测试套发现启动了多个浏览器的问题

场景:没有使用unittest框架自带的loadtest而是自己封装的搜索固定目录下用例然后导入后加载用例到suite中,然后执行了3个脚本发现启动了3个浏览器窗口,调试代码发现每次import一个脚本就会启动一个浏览器,因为每个脚本都会用到浏览器驱动,所以进入自己写的浏览器驱动类中看到__init__初始化一个脚本文件时候driver.get(url),顿时明了,放到__init__外面就OK了,想想也是脑袋晕对python导入模块后都做了什么不熟导致的。

def find_case(case_path):
if os.path.exists(case_path):
script_list = os.listdir(case_path)
for script in script_list:
testScript = os.path.join(case_path, script)
if os.path.isdir(testScript):
find_case(testScript)
elif script[0:3] == "NO_" and script[-3:] == ".py":
script_dir = os.path.dirname(testScript)
script_path = ".".join(script_dir.split("\\")[2:])
path = "from " + script_path + " import "
exec_str = path + script[:-3]
exec(exec_str, globals())
case = "%s.%s('%s')" % (script[:-3], script[:-3], "test_procedure")
case_list.append(case)
return case_list 
class ASS(object):

def __init__(self):
self.URL = env_config_info['URL']
self.USERNAME = env_config_info['USERNAME']
self.PASSWORD = env_config_info['PASSWORD']
self.LOGBTN = env_config_info['LOGBTN']
self.LOGINVER = env_config_info['LOGINVER']
self.driver = None


def login(self):
self.driver = browser.get(url=self.URL)
ass = ASS()
logger = LogFactory.get_logger(os.path.abspath(__file__))
config = Config(os.path.dirname(__file__)+"/CASEDATAFILE")


class NO_1_001(TestCaseFactory):
posted @ 2018-07-18 13:45  Mariahcat  阅读(256)  评论(0编辑  收藏  举报