示例#1
0
def assert_info(data, rs):
    Assertion.verity(rs['risk_strategy']['status_des'], '成功返回数据', data)
    Assertion.verity(rs['risk_strategy']['status_id'], '100', data)
    Assertion.verity(rs['risk_score']['status_des'], '成功返回数据', data)
    Assertion.verity(rs['risk_score']['status_id'], '100', data)
    if data['评分规则名称'].strip(' ') != '' and data['评分规则结果'].strip(' ') != '':
        for result_info_key, result_info_value in rs['risk_score']['data'][
                'result_info'].items():
            if result_info_value['desc'] == data['评分规则名称']:
                score_result = rs['risk_score']['data']['result_info'][
                    result_info_key]['result']
                break
        else:
            message = "失败原因: 找不到描述信息为【{1}】的规则名称,测试数据【{0}】".format(
                data, data['评分规则名称'])
            raise Assertion.MyError(message)
        Assertion.verity(score_result, float(data['评分规则结果']), data)
    if data['风险策略编号'].strip(' ') != '' and data['风险策略结果'].strip(' ') != '':
        my_num = str(int(FileUtils.str_to_num(data['风险策略编号'])) - 1)
        try:
            strategy_result = rs['risk_strategy']['data']['result_info'][
                my_num]['result']
        except Exception as e:
            message = "测试数据【{1}】,失败原因: 找不到['risk_strategy']['data']['result_info']" \
                      "['{2}']['result'],定位:【{0}】".format(e, data, my_num)
            raise Assertion.MyError(message)
        Assertion.verity(strategy_result,
                         FileUtils.str_to_bool(data['风险策略结果']), data)
 def test_Aiapi20_machine_review(self, data):
     LOGGER.info(data)
     LOGGER.info(
         ('开始执行【{0}】第【{1}】条测试用例:【{2}】'.format(data['sheet'], data['序号'],
                                              data['描述'])).center(80, '-'))
     t1 = time.clock()
     params = copy.deepcopy(ai_config.demo)
     if any(True if ext in data["修改key"] else False for ext in [',', ',']):
         keys = re.split('[,,]', re.sub('\s+', '', data["修改key"]))
         values = re.split('[,,]', re.sub('\s+', '', data["修改值"]))
         if len(keys) == len(values):
             for i in range(len(keys)):
                 choose_sheet(params, data['sheet'], keys[i], values[i])
         else:
             raise IndexError("修改key 和修改值长度不一致,【{}】".format(data))
     else:
         choose_sheet(params, data['sheet'], data["修改key"], data["修改值"])
     rs = json.loads(
         AiapiAction.test_risk_strategy(data=params,
                                        scene_id=ai_config.scene_id,
                                        version=ai_config.version))
     Assertion.verity(rs['risk_strategy']['status_des'], '成功返回数据', data)
     Assertion.verity(rs['risk_strategy']['status_id'], '100', data)
     Assertion.verity(rs['risk_score']['status_des'], '成功返回数据', data)
     Assertion.verity(rs['risk_score']['status_id'], '100', data)
     if re.sub('\s+', '', data['评分规则名称']) != '':
         for result_info_key, result_info_value in rs['risk_score']['data'][
                 'result_info'].items():
             if result_info_value['desc'] == data['评分规则名称']:
                 score_result = rs['risk_score']['data']['result_info'][
                     result_info_key]['result']
                 break
         else:
             message = "失败原因: 找不到描述信息为【{1}】的规则名称,测试数据【{0}】".format(
                 data, data['评分规则名称'])
             raise Assertion.MyError(message)
         Assertion.verity(score_result, float(data['评分规则结果']), data)
     if re.sub('\s+', '', data['风险策略编号']) != '':
         my_num = str(int(FileUtils.str_to_num(data['风险策略编号'])))
         try:
             strategy_result = rs['risk_strategy']['data']['result_info'][
                 my_num]['result']
         except Exception as e:
             message = "测试数据【{1}】,失败原因: 找不到['risk_strategy']['data']['result_info']" \
                       "['{2}']['result'],定位:【{0}】".format(e, data, my_num)
             raise Assertion.MyError(message)
         Assertion.verity(strategy_result,
                          FileUtils.str_to_bool(data['风险策略结果']), data)
         LOGGER.info(('【{0}】第【{1}】条测试用例:【{3}】执行完成,执行时间【{2}】'.format(
             data['sheet'], data['序号'], float(time.clock() - t1),
             data['描述'])).center(80, '-'))