1.TestCases目錄下的模塊
TestCases目錄下是存放測試用例的目錄。
TestCases目錄下的測試用例采用unittest框架來構建。
例如:登錄功能的測試用例。(test_1_login.py)
# --^_^-- coding:utf-8 --^_^-- # @Remark:測試登錄功能 import unittest from selenium import webdriver from PageObjects.login.login_page import LoginPage from PageObjects.home.home_page import HomePage from TestDatas import login_datas as ld from TestDatas import Comm_Datas as cd from Common import logger import logging import ddt import time @ddt.ddt class TestLogin(unittest.TestCase): @classmethod def setUpClass(cls): # 前置:打開瀏覽器,登錄網頁 cls.driver = webdriver.Chrome() cls.driver.maximize_window() cls.driver.get(cd.web_login_url) cls.lp = LoginPage(cls.driver) # 刷新一下當前頁面 def tearDown(self): self.driver.refresh() # 正常用例 def test_login_2_success(self): logging.info("*********登錄用例:正常場景-登錄成功*********") # 步驟:登錄頁面-登錄操作 self.lp.login(ld.success_data["user"], ld.success_data["pwd"]) time.sleep(3) # 斷言:首頁-【今日事務】這個元素存在 self.assertTrue(HomePage(self.driver).check_login_ele_exists()) # 異常用例 @ddt.data(*ld.wrong_datas) def test_login_1_error(self, data): time.sleep(2) logging.info("*********登錄用例:異常場景-登錄失敗*********") self.lp.login(data["user"], data["pwd"]) time.sleep(2) # 斷言:判斷提示信息是否一致 self.assertEqual(data["check"],LoginPage(self.driver).get_errorMsg()) @classmethod def tearDownClass(cls): # 后置:關閉瀏覽器 cls.driver.quit()
登錄的用例函數,只需要調用在PageObjects目錄下登錄頁面的登錄功能即可,而不需要再次編寫元素定位和元素操作。
登錄的用例分成登錄成功和登錄失敗的用例,登錄失敗有(用戶名錯誤,密碼錯誤)等情況,但是參數就只有用戶名和密碼,只不過值發生變化,所以可以用ddt模塊來做參數化,這樣就不需要寫多條登錄失敗的測試用例。