一、unittest的简单使用
1、所有case都得以test开头
2、整个测试只会执行一次的类方法: setUpClass、tearDownClass 用@classmethod注解
3、每个方法之前都会执行一次的方法:setUp、tearDown
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()
二、unittest与request重构封装
import unittest
from requestsDemo import RunMain
class TestMethod(unittest.TestCase):
# 每个方法之前执行
def setUp(self):
self.run = RunMain()
def test_01(self):
url = "http://127.0.0.1:8000/login/"
data = {
'username': 'ahui',
'password': '123456'
}
res = self.run.run_main(url, 'POST', data)
print(res)
def test_02(self):
url = "http://127.0.0.1:8000/login/"
data = {
'username': 'ju',
'password': '123456'
}
res = self.run.run_main(url, 'POST', data)
print(res)
if __name__ == '__main__':
unittest.main()
requestsDemo文件:
import requests
import json
class RunMain:
# 发送post请求
def send_post(self, url, data):
res = requests.post(url=url, data=data).json()
return json.dumps(res, indent=2)
# 发送get请求
def send_get(self, url, data):
res = requests.get(url=url, data=data).json()
return json.dumps(res, indent=2)
def run_main(self, url, method, data=None):
res = None
if method == "POST":
res = self.send_post(url, data)
else:
res = self.send_get(url, data)
return res
if __name__ == '__main__':
url = "http://127.0.0.1:8000/login/"
data = {
'username': 'ahui',
'password': '123456'
}
run = RunMain(url, 'POST', data)
print(run.res)