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_pythonpythondemon>python test_method.py 类执行之前的方法 test-->setup 这是第一个测试方法 test-->tearDown .test-->setup 这是第二个测试方法 test-->tearDown .类执行之后的方法
2、单元测试结合request的使用
创建base,文件结构如下
创建空文件 __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);