2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python web自动化测试框架搭建(功能接口)——功能测试模块

python web自动化测试框架搭建(功能接口)——功能测试模块

时间:2019-08-20 21:18:45

相关推荐

python web自动化测试框架搭建(功能接口)——功能测试模块

功能测试使用selenium,模块有:

1、futil: 公共方法,如元素高亮显示

# coding=utf-8"""高亮显示元素"""def highLight(driver,element):js = '''element = arguments[0];element.setAttribute('style','border: 3px solid red;')'''driver.execute_script(js,element)

2、models: 页面控件和页面操作方法封装

页面基类BasePage.py

# coding=utf-8from selenium import webdriverTIME_OUT=5 #超时时间class BasePage(object):def __init__(self, driver):"""初始化浏览器"""self.driver = driver'''if driver_type == "ie":try:self.driver = webdriver.Ie()except Exception,e:print eelif driver_type == "chrome":try:self.driver = webdriver.Chrome()except Exception,e:print eelse:try:self.driver = webdriver.Firefox() except Exception,e:print e'''def opendriver(self, url):self.driver.get(url)self.driver.maximize_window()self.driver.implicitly_wait(TIME_OUT)def find_element(self, by, value):"""查找元素"""try:return self.driver.find_element(by=by, value=value)except Exception, e:print edef find_elements(self, by, value):"""查找元素集合"""try:return self.driver.find_elements(by=by, value=value)except Exception, e:print edef is_element_isexist(self, By, Value):"""判断元素是否存在"""try:self.driver.find_element(by=By, value=Value)return Trueexcept Exception, e:print ereturn Falsedef close(self):"""当前关闭浏览器tab"""try:self.driver.close()except Exception,e:print edef quit(self):"""退出浏览器进程"""try:self.driver.quit()except Exception,e:print e

具体页面封装和操作LoginPage.py

# coding=utf-8from BasePage import BasePagefrom mon.by import Byclass LoginPage(BasePage):'''登录页面的登录窗口'''user_name = (By.NAME, "username")pass_word = (By.NAME, "password")btn_login = (By.CLASS_NAME, "login-btn")def __init__(self, driver):BasePage.__init__(self, driver)self.driver = driverself.input_username = self.find_element(*self.user_name)self.input_password = self.find_element(*self.pass_word)self.btn_login = self.find_element(*self.btn_login)def login(self, username, password):self.input_username.send_keys(username)self.input_password.send_keys(password)self.btn_login.click()

# coding=utf-8from BasePage import BasePagefrom mon.by import Byclass Index(BasePage):'''首页'''user_menu = (By.ID, "userSetting")user_info = (By.XPATH, "//a[@href='user/userInfo']")language_span = (By.ID, "changeLanguage")chinese_li = (By.XPATH, "//li[@value='zh_cn']")english_li = (By.XPATH, "//li[@value='en']")def __init__(self, driver):BasePage.__init__(self, driver)self.driver = driverself.usermenu = self.find_element(*self.user_menu)self.userinfo = self.find_element(*self.user_info)self.languagespan = self.find_element(*self.language_span)self.chinase = self.find_element(*self.chinese_li)self.english = self.find_element(*self.english_li)def chengeLanguage(self):self.languagespan.click()self.english.click()self.driver.implicitly_wait(5)

2、Report: 测试报告文件夹

3、testcases: 具体测试用例实现

测试用例基类BaseCase.py,负责执行用例运行前和运行结束后操作

# coding=utf-8import unittestimport Loggerfrom selenium import webdriverlog = Logger.Loger()class BaseCaseClass(unittest.TestCase):def setUp(self):# options = webdriver.ChromeOptions()# options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])# options.add_argument("--user-data-dir=C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/Default");# self.driver = webdriver.Chrome(chrome_options=options)self.driver = webdriver.Ie()self.url = ""def tearDown(self):self.driver.close()def loginfo(self, msgStr):log.info(msgStr)

具体用例:

# coding=utf-8from BaseCase import BaseCaseClassfrom functiontest.models.LoginPage import LoginPagefrom functiontest.models.IndexPage import Indexfrom functiontest.futil import Utilclass CheckLogin(BaseCaseClass):def runTest(self):'''name:测试标题为:XX系统verbosity:0'''self.driver.get(self.url)loginPage = LoginPage(self.driver)self.assertEqual(loginPage.driver.title,u"XX系统","标题不正确")class CheckIndex(BaseCaseClass):def runTest(self):'''name:测试首页存在个人资料选项verbosity:0'''self.driver.get(self.url)#self.driver.switch_to_window(self.driver.window_handles[1])loginPage = LoginPage(self.driver)loginPage.login("admin", "xxx")indexPage = Index(self.driver)indexPage.chengeLanguage()indexPage = Index(self.driver)indexPage.usermenu.click()Util.highLight(self.driver, indexPage.userinfo)self.assertEqual(indexPage.userinfo.text, "Personal Data","标题不正确")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。