zoukankan      html  css  js  c++  java
  • 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模块来做参数化,这样就不需要写多条登录失败的测试用例。

  • 相关阅读:
    2
    1
    Hadoop集群常见报错汇总
    Kerberos常见报错汇总
    Python软件包管理工具pip实战篇
    Python软件包及环境管理器conda实战篇
    Python的Virtualenv与Venv环境管理器
    Python的编辑工具-Jupyter notebook实战案例
    文档工具GitBook使用指南
    20200912
  • 原文地址:https://www.cnblogs.com/renshengruxi/p/13036214.html
Copyright © 2011-2022 走看看