|
- import ddt, unittest, os, yaml
- from Interface.testFengzhuang import TestApi
- from public.get_excel import makedata
- from public.log import LOG
- from public.panduan import assertre
- from config.config import TestPlanUrl
-
- file_dir = os.path.join(os.getcwd(), 'test_Report')
- file_reslut = os.path.join(file_dir, 'caseresult.yaml')
-
- data_test = makedata()
-
-
- def write(data):
- with open(file_reslut, 'a', encoding='utf-8') as f:
- yaml.dump(data, f, allow_unicode=True)
-
-
- def read(data):
- f = open(file_reslut, 'r', encoding='utf-8')
- d = yaml.load(f, Loader=yaml.FullLoader)
- return d[data]
-
-
- @ddt.ddt
- class MyTest(unittest.TestCase):
- def setUp(self):
- LOG.info('测试用例开始执行')
-
- def tearDown(self):
- LOG.info('测试用例执行完毕')
-
- @ddt.data(*data_test)
- def test_api(self, data_test):
- '''
- 1.处理参数
- 2.判断参数是否有依赖
- 3.依赖用例参数从本地获取
- 4.获取失败,用例失败
- 5.拼接后请求
- '''
- parem = {'key': data_test['key']}
- try:
- parem_dict = eval(data_test['coneent'])
- for key, value in parem_dict.items():
- if str(value).startswith("&"):
- try:
- reply_key_id = str(value).split("&")[-1].split("=")
- reply_keyid = reply_key_id[0]
- reply_key_key = reply_key_id[1]
- reslut = read(reply_keyid)
- if reslut is None:
- self.assertTrue(False, '依赖用例获取失败')
- get_value = reslut[reply_key_key]
- if get_value is None:
- self.assertTrue(False, '依赖参数获取失败,不存在')
- parem_dict[key] = get_value
- except Exception as e:
- LOG.info("用例依赖执行失败:" + str(e))
- self.assertTrue(False, '用例依赖执行失败')
-
- parem.update({'info': parem_dict})
- except:
- self.assertTrue(False, msg="参数格式不对")
- LOG.info(parem)
- api = TestApi(url=TestPlanUrl + data_test['url'],
- parame=parem,
- method=data_test['method'])
- LOG.info('输入参数:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'], data_test['assertconnect'],
- LOG.info('输入参数:url:%s,key:%s,参数:%s,请求方式:%s' % (
- data_test['url'], data_test['key'], data_test['assertconnect'],
- data_test['method']))))
- apijson = api.getJson()
- reslut = {}
- reslut[data_test['id']] = apijson
- write(reslut)
- LOG.info('返回结果:%s' % apijson)
- assertall = assertre(asserassert=data_test['assertconnect'])
- self.assertNotEqual(dict(assertall), dict(apijson), msg='预期和返回不一致')
|