import os from selenium import webdriver class BasePage: #构造函数 def __init__(self,driver): self.driver=driver def get_chrome(self): chrome_path = os.path.dirname(__file__) + ‘./../webdriver/chromedriver.exe‘ driver = webdriver.Chrome(executable_path=chrome_path) return driver # 访问URL def open_url(self): self.driver.get(self.url) # 退出 def quit(self): self.driver.quit() # 元素定位,*不定长参数 def locator(self,location): return self.driver.find_element(*location) # 输入 def input(self,location,txt): self.locator(location).send_keys(txt) # 点击 def click(self,location): self.locator(location).click() # 获取标题 def get_title(self): return self.driver.title # ...
class LoginPage(BasePage): url=‘...‘ #页面元素 user=(By.ID,‘os_username‘) pwd=(By.ID,‘os_password‘) button=(By.ID,‘loginButton‘) def login(self,username,password): self.open_url() self.input(self.user,username) self.input(self.pwd,password) self.click(self.button)
- username: TANGHAO009 password: w6736039 #- # username: TANGH # password: w67339 #- # username: # password:
import unittest from study_pom_ui.page_object.login_page import LoginPage from study_pom_ui.page_object.click_page import ClickPage from ddt import ddt,file_data from study_pom_ui.base.base_page import BasePage @ddt class TestLogin(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = BasePage.get_chrome(cls) cls.lp=LoginPage(cls.driver) cls.cp=ClickPage(cls.driver) @file_data(‘../data/login.yaml‘) def test_01(self,**kwargs): self._testMethodName = ‘case_01‘ self._testMethodDoc = ‘测试是否confluence能够成功登陆‘ username=kwargs[‘username‘] password=kwargs[‘password‘] self.lp.login(username,password) ac=BasePage.get_title(self) self.assertEqual(ac,"主页面 - Confluence") def test_02(self): self._testMethodName = ‘case_02‘ self._testMethodDoc = ‘测试是否member能够正常点击‘ self.driver.implicitly_wait(100) self.cp.click_member() ac=BasePage.get_title(self) self.assertEqual(ac,"用户目录 - Confluence") @classmethod def tearDownClass(cls): BasePage.quit(cls) if __name__=="__main__": unittest.main(verbosity=2)
import os import unittest import HTMLTestReportCN # 加载所有用例到all_suite套件 case_path =os.path.dirname( __file__ ) + ‘./Testcase/‘ discover = unittest.defaultTestLoader.discover(start_dir=case_path, pattern=‘test_*.py‘, top_level_dir=case_path ) all_suite = unittest.TestSuite() all_suite.addTest( discover ) #配置测试报告并执行用例 report_path = os.path.dirname(__file__) + ‘/reports/‘ report_dir =HTMLTestReportCN.ReportDirectory(report_path) report_dir.create_dir(‘网页自动化测试项目‘) result_html_path =HTMLTestReportCN.GlobalMsg.get_value(‘report_path‘) fp = open(result_html_path,‘wb‘) html_runner =HTMLTestReportCN.HTMLTestRunner(stream=fp, title=‘哒哒哒网页自动化测试项目‘, description=‘confluence网页‘, tester=‘哒哒哒‘) html_runner.run( all_suite )
原文:https://www.cnblogs.com/tang-hao001/p/14094248.html