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')
浙公网安备 33010602011771号