本文为Python自动化测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁。
本文应用到POM模型、selenium、unittest框架、configparser配置文件、smtplib邮件发送、HTMLTestRunner测试报告模块结合登录案例实现简单自动化测试框架
项目主要包括以下几个部分
conif.ini 放置配置文件
例如:
myunit.py文件放置的浏览器操作代码
import unittest
from selenium import webdriver
class MyTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(10)
self.driver.maximize_window()
def tearDown(self):
self.driver.quit()
if __name__=='__main__':
unittest.main()
base.py中放置浏览器对象操作代码
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import os,configparser
class Page(object):
path = os.path.dirname(os.path.abspath("."))
cfpath = os.path.join(path, 'autoparker\config\conf.ini')
conf = configparser.ConfigParser()
conf.read(cfpath)
url=conf.get('base','url')
def __init__(self,driver,url=url):
self.driver=driver
self.url=url
def open(self):
self.driver.get(self.url)
def find_element(self,*loc):#传入参数为元组需要加*,本身就是元组的不需要*
#print(*loc)
try:
WebDriverWait(self.driver,10).until(EC.visibility_of_element_located(loc))
return self.driver.find_element(*loc)
except:
print('页面中未找到 %s 元素'%(self,loc))
def find_elements(self,*loc):
return self.driver.find_elements(*loc)
def send_keys(self,loc,value):
self.find_element(*loc).send_keys(value)
def click(self,loc):
self.find_element(*loc).click()
def clear(self,loc):
self.find_element(*loc).clear()
loginpage.py中放置通用登录模块代码(尽量避免重复代码)
from selenium.webdriver