unittest使用

import unittest
from test_1 import test01
from test_1.test01 import Test1_test01
from test_1.test_2.test02 import Test2_test02

suite = unittest.TestLoader().loadTestsFromTestCase(Test1_test01)
suite01 = unittest.TestLoader().loadTestsFromTestCase(Test2_test02)
unittest.main(defaultTest='suite01')

from test_1 import test01
suite02 = unittest.TestLoader().loadTestsFromModule(test01)
suite03 = unittest.TestLoader().loadTestsFromName('test_1.test01.Test1_test01.test_one')

倒入测试套件
suite03 = unittest.TestLoader().loadTestsFromName('test_1.test01.Test1_test01.test_one')
suite04 = unittest.TestLoader().loadTestsFromName('test_1.test_2.test02.Test2_test02.test_one')

allsuite = unittest.TestSuite()
allsuite.addTests(suite03)
allsuite.addTests(suite04)

unittest.main(defaultTest='allsuite'). #

discover方法
discover = unittest.TestLoader().discover(start_dir='./', pattern='test.py', top_level_dir='./')
discover=unittest.defaultTestLoader.discover(start_dir='./', pattern='test
.py', top_level_dir='./')

测试用例执行顺序:
1、根据用例名的ascii码来执行用例
2、根据添加在测试套件里面的顺序。先添加的先执行

忽略测试用例写法
@unittest.skip('未上线')
def test_two(self):
print('执行Test2_test02_test_two')

测试结果表示:
.表示测试通过。F表示测试失败,S表示跳过

@unittest.skip('未上线')
def test_two(self):
    print('执行Test2_test02_test_two')

@unittest.skipIf(True, '条件为真时跳过')
def test_three(self):
    print('执行Test2_test02_test_three')

@unittest.skipUnless(False, '条件为假时跳过')
def test_four(self):
    print('执行Test2_test02_test_four')

@unittest.expectedFailure.  #执行失败后不计入失败数量。expected failures=1
def test_five(self):
    print('执行Test2_test02_test_five')
    self.assertEqual(1 + 1, 3, '测试执行失败')

执行测试用例查看测试结果方式:verbosity=0,1,2(详细模式)
1、unittest.main(defaultTest='discover', verbosity=1)
2、runner = unittest.TextTestRunner(stream=None, verbosity=2)
runner.run(discover)
3、存入测试文件
with open('test_report.txt', 'w', encoding='utf-8') as file:
runner = unittest.TextTestRunner(stream=file, verbosity=2)
runner.run(discover)
4、使用第三方模块。 htmlTestRunner
将htmlTestRunner放置项目下或者python的lib目录下
import HTMLTestRunner

file = open('test_report2.html', 'w') #有的用wb
runner = HTMLTestRunner.HTMLTestRunner(stream=file, title='测试报告', description='测试报告描述')
runner.run(discover)

@unittest.skip('未上线')
def test_two(self):
    '''Test2_test02的第二条用例'''
    print('执行Test2_test02_test_two')

用例中可通过‘’‘ ’‘’增加每条用例的描述

unnitest断言验证
1、self.assertTrue(EC.alert_is_present()) 查看界面是否弹出来alert
2、self.assertTrue(EC.presence_of_element_located(ele_input_user)) 界面是否存在该元素
current_path = os.path.dirname(file)
driver_path = os.path.join(current_path, '../../driver/chromedriver')

posted @ 2022-01-22 17:05  半俗半雅半疯癫吧  阅读(79)  评论(0)    收藏  举报