自动化框架是用来维护、管理、运行测试用例,最终输出测试报告的。而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 后查看