基础框架
# UnitTest
# 测试用例类继承自unittest.TestCase
# 从TestCase类继承是告诉unittest模块这是一个测试用例的方法:
class TtUnit(unittest.TestCase):
# 前置操作
def setUp(self) -> None:
self.driver = TestKeys('Chrome', 'https://www.baidu.com')
# 后置操作
def tearDown(self) -> None:
time.sleep(10)
self.driver.quit()
# 任务(必须以test开头,_n_可以设置任务执行的先后顺序)
def test_1_python(self, locator_type='id', locator='kw', locator_type1='id', locator_btn='su', text='Java'):
self.driver.input_text(locator_type, locator, text, is_search=Keys.ENTER)
self.driver.click_element(locator_type1, locator_btn)
if __name__ == '__main__':
unittest.main()
unittest包括四个部分
测试用例 TestCase
测试套件 TestSuite
测试部件 TestFixture
测试执行 TestRunner
from demo19 import TestTask
import unittest
import HTMLTestRunner
# 建立测试套件 TestSuite
# 通过unittest.TestSuite()初始化一个
# suite = unittest.TestSuite()TestSuite对象
# 使用TestSuite.addTest()添加自动化任务
# suite.addTest(TestTask('test_python_web'))
# suite.addTest(TestTask('test_js_web'))
# 批量执行自动化操作
dirname = './case/'
suite = unittest.defaultTestLoader.discover(start_dir=dirname, pattern='unit*.py')
if __name__ == '__main__':
# 初始化一个测试执行 TestRunner任务对象
# TestRunner.run(TestSuite)执行测试套件中的测试用例
# runner = unittest.TextTestRunner()
runner = HTMLTestRunner.HTMLTestRunner(open('./result.html', 'wb'), title='TEST_HTML测试报告'
, description='这是一份测试报告,共两条测试用例')
runner.run(suite)
批处理自动化用例
unittest.defaultTestLoader.discover(start_dir, pattern,top_level_dir)
start_dir 测试用例所在文件目录
pattertn 测试用例文件名
top_level_dir 测试文件等级
打印测试报告
需要使用到HTMLTestRunner文件
HTMLTestRunner.HTMLTestRunner(open(’./result.html’, ‘wb’), title=‘TEST_HTML测试报告’, description=‘这是一份测试报告,共两条测试用例’)
open 设置测试报告路径
title 测试报告标题
description 测试报告描述