TestCases目录下是存放测试用例的目录。
TestCases目录下的测试用例采用unittest框架来构建。
例如:登录功能的测试用例。(test_1_login.py)
# --^_^-- coding:utf-8 --^_^--
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模块来做参数化,这样就不需要写多条登录失败的测试用例。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章