python中unittest库的用法_python unittest库的入门学习

unittest的基本概念

创建测试用例类

unittest的使用示例

一、基本概念

Testcase是所有测试用例的基类

TestSuite是创建一个测试“容器”,可以往里面加case

TextTestRunner是运行测试用例

二、如何创建测试用例类

所有的用例类都需要继承TestCase

测试用例中setUp和tearDown是每一个case开始和结束的时候都回执行的

测试用例必须以test开头

还可以在用例类中定义类方法,setUpClass和tearDownClass,在每一个用例类的开始和结尾处都执行一遍。

import unittest

#测试类必须要继承unittest.TestCase

class TestMethod(unittest.TestCase):

@classmethod

def setUpClass(cls):

print('类执行之前')

@classmethod

def tearDownClass(cls):

print('类结束之后')

#每一个测试方法开始要执行的方法

def setUp(self):

print("测试方法开始啦")

#每一个测试方法结束后执行的方法

def tearDown(self):

print("测试方法结束啦")

#测试方法必须要以test开头!!!

def test01(self):

print("这个是测试方法01")

def test02(self):

print("这个是测试方法02")

if __name__=="__main__":

三、使用示例:

import unittest

import json

from demo import RunMain

class TestMethod(unittest.TestCase):

def setUp(self):

self.run = RunMain()

def test_01(self):

data = {

'username':'nick',

'password':'123',

'errorCode':'1000'

}

url = "http://localhost:8000/login/"

res = self.run.run_main(url, 'POST', data)

#self.assertEqual(res['errorCode'],'1000',"测试成功")

print(res)

# 打印全局变量

#print(userid)

#@unittest.skip('test_02')

def test_02(self):

# 全局变量

#globlas()['userid'] = '10000'

data = {

'username':'nick',

'password':'123',

'errorCode':1001

}

url = "http://localhost:8000/login/"

res = self.run.run_main(url, 'POST', data)

#self.assertEqual(res['errorCode'],'1001',"测试失败")

print(res)

if __name__ == '__main__':

#unittest.main()

suite = unittest.TestSuite()

suite.addTest(TestMethod('test_02'))

suite.addTest(TestMethod('test_01'))

unittest.TextTestRunner().run(suite)

globlas()['userid'] = '10000'是全局变量。比如第一个test的执行需要依赖第二个test,这时候就需要一个global,让第二个test也可以访问第一个test方法中的变量或者返回值

assertEqual是断言

@unittest.skip这个装饰器是用于过滤不需要执行的test

main方法中的unittest.main()是执行这个类中的所有代码,如果只想只想部分test,可以先创建一个“容器”suite,再往里面addtest,最后执行容器

unittest.TextTestRunner().run(suite)

示例三:

import HTMLTestRunner

import unittest

class MyTest(unittest.TestCase):#继承unittest.TestCase

def tearDown(self):

#每个测试用例执行之后做操作

print('111')

def setUp(self):

#每个测试用例执行之前做操作

print(22222)

def test_run(self):

# self.assertEqual(1,1)

self.assertIs(1,1)

#测试用例

def test_run2(self):

# self.assertEqual(1,1)

self.assertIs(1,1)

#测试用例

def test_run3(self):

# self.assertEqual(1,1)

self.assertIs(1,1)

#测试用例

def test_run1(self):

# self.assertEqual(1,1)

self.assertIs(1,1)

#测试用例

if __name__ == '__main__':

test_suite = unittest.TestSuite()#创建一个测试集合

test_suite.addTest(MyTest('test_run1'))#测试套件中添加测试用例

#test_suite.addTest(unittest.makeSuite(MyTest))#使用makeSuite方法添加所有的测试方法

fp = open('res.html','wb')#打开一个保存结果的html文件

runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='api测试报告',description='测试情况')

#生成执行用例的对象

runner.run(test_suite)

#执行测试套件

如果执行了之后无法生成测试报告,那就直接在命令行中执行这个py文件就行了,这个是pycharm的毛病。。。

可以参考:https://blog.csdn.net/xie_0723/article/details/50825310

更多uinttest的资料https://www.cnblogs.com/feng0815/p/8045850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值