自动化框架--unittest框架

发布于:2023-01-04 ⋅ 阅读:(280) ⋅ 点赞:(0)

        自动化框架是用来维护、管理、运行测试用例,最终输出测试报告的。而unittest框架就是其中一种。

1、unittest框架----内置框架,不用安装,引入就可以使用,由4个部分组成

1.        unittest.TestCase        管理测试用例

2.        unittest.TestSuit        整合测试用例

3.        unittest.Loader        加载测试用例

4.        unittest.Runner        执行测试用例

1.1 unittest.TestCase

操作方法:

import unittest

class 类名(unittest.TestCase):

        def setUp(self):

                用例执行前要执行的代码

        def tearDown(self):

                用例执行后需要执行的代码

        #用例说明

        def test_模块_编号(self):

                操作步骤

                断言

if __name__=='__main__':

        unittest.main()

实例:
用unittest框架将编写登录的测试用例并执行

编写测试用例:

import unittest
from selenium import webdriver
from pageobject.login_page import *
from time import sleep
from loguru import logger

class tpshop_login_cases(unittest.TestCase):
    driver = webdriver.Chrome()

    @classmethod
    def tearDownClass(cls) -> None:
        cls.driver.quit()

    def setUp(self):
        self.driver.maximize_window()
        self.driver.get(url_test)

    def tearDown(self):
        self.driver.refresh()

    #登录成功测试用例
    def test_login_succees(self):
        '''登录成功'''

        #操作步骤
        login_test(self.driver, '用户名', '密码', '验证码')
        sleep(3)
        #断言
        try:
            ee = self.driver.find_element(By.LINK_TEXT, '安全退出').text
            self.assertEqual('安全退出',ee)
        except Exception as e:
            logger.error(e)
        else:
            logger.info('login_test','登录成功')
        self.driver.find_element(By.LINK_TEXT,'安全退出').click()

2.加载测试用例,执行测试用例并生成报告 

import unittest
from HTMLTestRunner import HTMLTestRunner
from test_case.test_ddt_cases import tpshop_login_cases
from common.file_dir import *
#测试用例套件生成
suite=unittest.TestSuite()
#测试用例的加载器
loader=unittest.TestLoader()
#加载测试用例
suite.addTest(loader.loadTestsFromTestCase(tpshop_login_cases))
#执行测试用例生成报告
with open(filedir('.html'),'wb+') as f:
    runn=HTMLTestRunner(stream=f, verbosity=1, title='tpshop_login_testcase', description="使用ddt,tp商城")
    runn.run(suite)

文件目录:

 

测试报告:

 总结:使用unittest框架做web的UI自动化能简化很多重复的操作,并且可以使用一些自定义函数封装数据库,方便调用。使用ddt,写入excel能简化测试用例的编写;使用PO分离能更清晰的将业务逻辑与界面元素区分开,方便定位与修改。

本文含有隐藏内容,请 开通VIP 后查看