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

  • 相关阅读:
    【VS2013编译DirectX Tutorials时遇到的错误】"const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
    python3 登录接口
    Python-网络编程
    Python之mock接口开发
    python基础笔记(五):操作excel、mysql、redis
    python基础笔记(六):md5加密
    python3基础笔记(四):模块安装&os模块&时间模块
    python3基础笔记(三):函数
    python3基础笔记(二):文件操作、json操作
    Python3基础笔记
  • 原文地址:https://www.cnblogs.com/renshengruxi/p/13036214.html
Copyright © 2020-2023  润新知