通过 unittest 框架 进行接口测试,参数与代码分离,通过json文件存储参数,通过with函数获取json文件内的内容
将获取json文件的操作放在 setUp()里面,这样所有的用例都可以进行获取
setUp(self):执行用例过程中在每一条test用例执行前都会提取一次
setUpClass(cls):执行用例过程中所有用例只会提取一次
GET请求setUpClass() 案例
#encoding:utf-8 import unittest import json import requests class v2exapi(unittest.TestCase):
#装饰器 @classmethod def setUpClass(cls): #赋值参数文件路径及文件名 user_file_data = "./user_data.json" print("读取参数文件") # 通过with函数打开参数文件 with open(user_file_data) as f: # 通过 .rede()一次性读取所有文件内容 cls.user_data = json.loads(f.read()) def test_v2es(self): # for循环遍历参数文件中的内容 for data in self.user_data: #对json格式文件,采用根据键获取相对value,进行赋值 path = data["path"] url = data["url"] #requests.get 请求接口,以json的格式返回结果 res = requests.get(url=path + url).json() #进行比对性断言,判断返回是否正确 self.assertEqual(res["name"],"python") print(res) def test_v2es1(self): # for循环遍历参数文件中的内容 for data in self.user_data: #对json格式文件,采用根据键获取相对value,进行赋值 path = data["path"] url = data["url"] #requests.get 请求接口,以json的格式返回结果 res = requests.get(url=path + url).json() #进行比对性断言,判断返回是否正确 self.assertEqual(res["name"],"python") print(res) if __name__ == "__main__": unittest.main()
执行结果 执行一次 setUpClass()
GET请求setUp() 案例
#encoding:utf-8 import unittest import json import requests class v2exapi(unittest.TestCase): def setUp(self): #赋值参数文件路径及文件名 user_file_data = "./user_data.json" print("读取参数文件") # 通过with函数打开参数文件 with open(user_file_data) as f: # 通过 .rede()一次性读取所有文件内容 self.user_data = json.loads(f.read()) def test_v2es(self): # for循环遍历参数文件中的内容 for data in self.user_data: #对json格式文件,采用根据键获取相对value,进行赋值 path = data["path"] url = data["url"] #requests.get 请求接口,以json的格式返回结果 res = requests.get(url=path + url).json() #进行比对性断言,判断返回是否正确 self.assertEqual(res["name"],"python") print(res) def test_v2es1(self): # for循环遍历参数文件中的内容 for data in self.user_data: #对json格式文件,采用根据键获取相对value,进行赋值 path = data["path"] url = data["url"] #requests.get 请求接口,以json的格式返回结果 res = requests.get(url=path + url).json() #进行比对性断言,判断返回是否正确 self.assertEqual(res["name"],"python") print(res) if __name__ == "__main__": unittest.main()
执行结果 执行两次setUp()
原文:https://www.cnblogs.com/LT-XILI/p/14514956.html