''' @Description @auther leizi ''' from Interface.testFengzhuang import TestApi from public.log import LOG from public.panduan import assertre from config.config import TestPlanUrl import pytest import os import yaml from public.get_excel import makedata file_dir = os.path.join(os.getcwd(), 'test_Report') file_reslut = os.path.join(file_dir, 'caseresult.yaml') 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] data_test = makedata() @pytest.mark.parametrize(data_test) class TestParametrize(object): def test_parame(self): 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: assert False get_value = reslut[reply_key_key] if get_value is None: assert False parem_dict[key] = get_value except Exception as e: LOG.info("用例依赖执行失败:" + str(e)) assert False parem.update({'info': parem_dict}) except: assert False api = TestApi(url=TestPlanUrl + data_test['url'], parame=parem, method=data_test['fangshi']) LOG.info('输入参数:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'], data_test['coneent'], LOG.info('输入参数:url:%s,key:%s,参数:%s,请求方式:%s' % ( data_test['url'], data_test['key'], data_test['coneent'], data_test['fangshi'])))) apijson = api.getJson() reslut = {} reslut[data_test['id']] = apijson LOG.info('返回结果:%s' % apijson) assertall = assertre(asserassert=data_test['qiwang']) assert dict(assertall) == dict(apijson)