前置准备
configpraser 读取配置文件
[engintype]
#drivertype=firefox注意这里只能有一个键值对存在
drivertype=chrome
通过config = configpraser.ConfigPraser()
config.read(配置文件的路径)
config.get("engintype","drivertype")来读取信息
准备日志类
import logging import os import time class Logger(object): #传入的logger名字 def __init__(self,loggername): ''' 指定保存日志的文件路径,日志级别,以及调用的文件 将日志存放在指定的文件中去 :param logger: ''' self.logger = logging.getLogger(loggername) self.logger.setLevel(logging.DEBUG) #设置日志的类型 #创建一个时间戳,用于日志的保存 timestamps = time.strftime("%Y%m%d%H%M%S",time.localtime(time.time())) #获取日志的保存的路径 log_path = os.path.dirname(os.path.abspath("."))+"/logs/" # 如果case组织结构式 / testsuit / featuremodel / xxx.py , 那么得到的相对路径的父路径就是项目根目录 log_name=log_path+timestamps+".log" #创建一个handler fh = logging.FileHandler(log_name) fh.setLevel(logging.INFO) #创建一个handler,用于控制台输出 console_output = logging.StreamHandler() console_output.setLevel(logging.INFO) #定义输出的格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) console_output.setFormatter(formatter) #给logger添加handler self.logger.addHandler(fh) self.logger.addHandler(console_output) def getlog(self): return self.logger
准备引擎类
import configparser import os.path from selenium import webdriver from framework.logger import Logger #测试configparser的用法 # print(os.path.abspath("."))#获取当前的路劲 # config = configparser.ConfigParser() # file_path = os.path.dirname(os.path.abspath('.')) + '\\config\\browser_engin.ini' # config.read(file_path) # print(config.get("browsertype","browserName")) logger = Logger(loggername="BrowserEngine").getlog() class BrowseEngin(object): dir = os.path.dirname(os.path.abspath(",")) chrome_driver_path = dir+"/tools/chromedriver.exe" ie_driver_path = dir+"/tools/IEDriverServer.exe" def __init__(self,driver): self.driver = driver def open_browser(self,driver): config = configparser.ConfigParser() file_path = os.path.dirname(os.path.abspath('.')) + '/config/browser_engin.ini' config.read(file_path) browser = config.get("browsertype","browserName") logger.info("you had select %s browser" % browser) url = config.get("testServer","URL") logger.info("the test server url is %s"% url) if browser =="Firefox": driver = webdriver.Firefox() logger.info("start firefox browser") if browser == "Chrome": driver = webdriver.Chrome(self.chrome_driver_path) logger.info("start firefox browser") if browser =="IE": driver = webdriver.Ie(self.ie_driver_path) logger.info("start firefox browser") driver.get(url) logger.info("Open url: %s" % url) driver.maximize_window() logger.info("Maximize the current window.") driver.implicitly_wait(10) logger.info("Set implicitly wait 10 seconds.") return driver def quit_browser(self): logger.info("Now ,close and quit the browser") self.driver.quit()
准备测试类验证改引擎是否可用
import unittest from framework import brower_engin import time class BaiduSearch(unittest.TestCase): def setUp(self): browser = brower_engin.BrowseEngin(self) self.driver = browser.open_browser(self) def tearDown(self): self.driver.quit() def test_baidu_search(self): self.driver.find_element_by_id('kw').send_keys("selenium") time.sleep(1) self.assertEqual("selenium",self.driver.title,"fail") if __name__=="__main__": unittest.main()