1、Python单元测试的使用

单元测试代码如下:



#coding:utf-8
import unittest
class TestMethod(unittest.TestCase):

@classmethod
def setUpClass(cls):
print("类执行之前的方法")

@classmethod
def tearDownClass(cls):
print("类执行之后的方法")

# 每次方法执行之前执行
def setUp(self):
print('test-->setup')
# 每次方法执行之后执行
def tearDown(self):
print('test-->tearDown')
def test_01(self):
print("这是第一个测试方法")
def test_02(self):
print("这是第二个测试方法")

if __name__ == '__main__':
unittest.main()


  

输出结果如下



 E:\workspace_python\pythondemon>python test_method.py
类执行之前的方法
test-->setup
这是第一个测试方法
test-->tearDown
.test-->setup
这是第二个测试方法
test-->tearDown
.类执行之后的方法


  

 

2、单元测试结合request的使用

创建base,文件结构如下

Python 单元测试_用例

 

 创建空文件  __init__.py

 

demon6_http.py



import requests, json

class RunHttp:

# 构造方法
def __init__(self, url, method, data=None):
self.result = self.send_http(url, method, data)
# print(self.result)
def __init__(self):
print('--构造函数---------------')

def send_get(self,url, data):
res = requests.get(url, data)
return res.json()

def send_post(self,url, data):
res = requests.post(url, data)
return res.json()


def send_http(self,url, method,data=None):
print("method=" + method)
if 'GET' == method:
return self.send_get(url, data)
else:
return self.send_post(url, data)

if __name__ == '__main__':

url="https://www.fastmock.site/mock/80a256fd71635691b5e37ef11ba0baca/user/logon"
data={
"username": "zhangsan",
"password": "123456"
}
run = RunHttp(url, 'POST', data)
print(run.result)


  

test_method_requests.py 文件



#coding:utf-8
import unittest
# 导入RunHttp类
from demon6_http import RunHttp
class TestMethod(unittest.TestCase):

# 每次方法执行之前执行
def setUp(self):
self.run = RunHttp()

def test_01(self):
url="https://www.fastmock.site/mock/80a256fd71635691b5e37ef11ba0baca/user/logon"
data={
"username": "zhangsan",
"password": "123456"
}

res = self.run.send_http(url,"POST", data)
print(res)
self.assertEqual(res['code'],'0000',"测试失败")
# 全局变量
globals()["userid"] = '100099';


def test_02(self):
print("全局变量userid=" + userid)
url="https://www.fastmock.site/mock/80a256fd71635691b5e37ef11ba0baca/user/logon"
res = self.run.send_http(url,"GET", None)
print(res)
self.assertEqual(res['code'],'0002',"测试失败")

# 不执行这个测试用例
@unittest.skip('test_03')
def test_03(self):
print("这是第三个Test用例")

def test_04(self):
print("这是第四个Test用例")

def test_05(self):
print("这是第五个Test用例")


if __name__ == '__main__':
# 运行所有的测试方法
# unittest.main()

# 控制测试方法,和执行顺序
suite = unittest.TestSuite()
suite.addTest(TestMethod('test_05'))
suite.addTest(TestMethod('test_04'))
unittest.TextTestRunner().run(suite);