下面介绍内容为接口测试的基本简单实现,其中包括了几种不同的添加case和生成测试报告的方法,代码已测试通过,并附上报告截图 --------------------------分割线----------------------------------------------------------
import unittest import xmlrunner import HTMLTestRunner import time class Test(unittest.TestCase): flag = 1 ‘‘‘setUp() 在每个测试方法执行前执行一次,tearDown() 在每个测试方法执行后执行一次, 如本例子的test_Add1和test_Add2 ; setUp用来为准备测试环境和数据,tearDown用来清理环境和数据,以备之后的测试‘‘‘ ‘‘‘类方法 setUpClass() 在所有测试方法开始执行前执行一次, tearDownClass() 在所有测试方法执行后执行一次‘‘‘ def setUp(self): print("每个测试case开始执行前执行") def tearDown(self): print("每个测试case结束执行后执行") @classmethod def setUpClass(cls): print("所有测试case开始执行前执行") @classmethod def tearDownClass(cls): print("所有测试case结束执行后执行.") def add(self,a,b): return a+b # 每个测试方法均以 test 开头,否则是不被unittest识别的。 def test_Add1(self): print(‘test_Add1‘) self.assertEqual(3,self.add(1,2)) def test_Add2(self): print(‘test_Add2‘) self.assertEqual(3,self.add(1,4)) ‘‘‘skip装饰器一共有三个 unittest.skip(reason) unittest.skipIf(condition, reason) unittest.skipUnless(condition, reason) skip无条件跳过,skipIf当condition为True时跳过,skipUnless当condition为False时跳过‘‘‘ @unittest.skip("跳过tes_Add3") def test_Add3(self): self.assertEqual(6,self.add(2,4)) print(‘test_Add3‘) @unittest.skipIf(flag == 1, "当condition为True时跳过") def test_Add4(self): print(‘test_Add4‘) self.assertEqual(6,self.add(2,4)) @unittest.skipUnless(flag == 1, "当condition为False时跳过") def test_Add5(self): print(‘test_Add5‘) self.assertEqual(6, self.add(2, 4)) if __name__ == ‘__main__‘: test_suite = unittest.TestSuite() # 添加case方法一:执行case顺序根据与添加的顺序一致 ‘‘‘test_cases = [Test("test_Add5"),Test("test_Add2"),Test("test_Add3"),Test("test_Add4"),Test("test_Add1")] test_suite.addTests(test_cases)‘‘‘ # 添加case方法二:单独一个一个添加 ‘‘‘test_suite.addTest(Test("test_Add5")) # test_suite.addTest(Test("test_Add4"))‘‘‘ # 添加case方法三:loadTestsFromTestCase(),传入TestCase # test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Test)) # 添加case方法四 test_suite.addTest(unittest.makeSuite(Test)) # 生成Text格式测试报告 ‘‘‘with open(‘TextTestRunnerReport.txt‘, ‘a‘) as f: runner = unittest.TextTestRunner(stream=f, verbosity=2) runner.run(test_suite)‘‘‘ # 生成xml格式的测试报告 ‘‘‘# test_suite.addTest(unittest.makeSuite(Test)) runner = xmlrunner.XMLTestRunner(output=‘report‘) # 指定报告放的目录 runner.run(test_suite)‘‘‘ # 生成HTML格式的测试报告 now = time.strftime(u‘%Y%m%d%H%M‘) # test_suite.addTest(Test(‘test_Add1‘)) # test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Test)) report = ".\\report\\" + now + "HTMLreport.html" with open(report,‘wb‘) as f: runner = HTMLTestRunner.HTMLTestRunner(f, verbosity=2, title=‘这是HTML格式测试报告‘, description=‘测试报告‘) runner.run(test_suite) # verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告 # unittest.main(verbosity=2) ------------------ -------------------- ------------------------分割线---------------- -------------------- -----------------------------
text报告格式截图:
xml报告格式截图:
html格式报告截图:
查看更多关于python+unittest接口测试与报告生成的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did172359