Python+Selenium+Unittest实现PO模式web自动化框架(6)
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模块来做参数化,这样就不需要写多条登录失败的测试用例。
posted on 2020-06-03 11:07 Test-Admin 阅读(1202) 评论(0) 编辑 收藏 举报