在项目中使用Selenium进行自动化,非常自然想到用单例对WebDriver进行管理,出于如下考虑:
1)提高成功率。多个实例会使得出现多个浏览器窗口,界面识别会出现问题,影响成功率。
2)关键对象易维护。整个Selenium项目中,Webdriver是最重要的一个对象,通过单例对其进行控制,在使用时更简单。
当然,也牺牲了效率,比如就无法通过多线程进行多个Driver并行执行用例,但对于项目初期,个人认为稳定才是关键,毕竟自动化可以7*24跑,牺牲的效率通过SeleniumGrid可以补充。同时,在网上看到更多的也是单例控制WebDriver。
单例模式简介:
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。
项目中用是为保证测试中WebDriver只有一个实例,提高成功率。
单例模式的三种实现方式。
本项目使用的是懒汉方式,具体实现如下。