Skip to content

Commit

Permalink
fix(接口测试): 修复swagger导入失败的缺陷
Browse files Browse the repository at this point in the history
--bug=1026085 --user=王孝刚 [接口测试]github#24323接口导入-导入 Swagger 文件报“格式错误”
https://www.tapd.cn/55049933/s/1375755
  • Loading branch information
wxg0103 authored and fit2-zhao committed May 29, 2023
1 parent 9c755fe commit 0d57785
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import io.swagger.models.parameters.*;
import io.swagger.models.properties.*;
import io.swagger.parser.SwaggerParser;
import lombok.val;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -226,28 +227,30 @@ private void parseParameters(Operation operation, MsHTTPSamplerProxy request) {
// todo 路径变量 {xxx} 是否要转换

for (Parameter parameter : parameters) {
switch (parameter.getIn()) {
case SwaggerParameterType.PATH:
parsePathParameters(parameter, request.getRest());
break;
case SwaggerParameterType.QUERY:
parseQueryParameters(parameter, request.getArguments());
break;
case SwaggerParameterType.FORM_DATA:
parseFormDataParameters((FormParameter) parameter, request.getBody());
break;
case SwaggerParameterType.BODY:
parseRequestBodyParameters(parameter, request.getBody());
break;
case SwaggerParameterType.HEADER:
parseHeaderParameters(parameter, request.getHeaders());
break;
case SwaggerParameterType.COOKIE:
parseCookieParameters(parameter, request.getHeaders());
break;
if (StringUtils.isNotBlank(parameter.getIn())) {
switch (parameter.getIn()) {
case SwaggerParameterType.PATH:
parsePathParameters(parameter, request.getRest());
break;
case SwaggerParameterType.QUERY:
parseQueryParameters(parameter, request.getArguments());
break;
case SwaggerParameterType.FORM_DATA:
parseFormDataParameters((FormParameter) parameter, request.getBody());
break;
case SwaggerParameterType.BODY:
parseRequestBodyParameters(parameter, request.getBody());
break;
case SwaggerParameterType.HEADER:
parseHeaderParameters(parameter, request.getHeaders());
break;
case SwaggerParameterType.COOKIE:
parseCookieParameters(parameter, request.getHeaders());
break;
// case SwaggerParameterType.FILE:
// parsePathParameters(parameter, request);
// break;
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import io.swagger.v3.parser.core.models.SwaggerParseResult;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpMethod;

Expand Down Expand Up @@ -626,16 +627,18 @@ private void parseQueryParameters(Parameter parameter, List<KeyValue> arguments)
Schema schema = getSchema(parameter.getSchema());
Set<String> refSet = new HashSet<>();
JsonSchemaItem jsonSchemaItem = parseSchema(schema, refSet);
if (MapUtils.isEmpty(jsonSchemaItem.getProperties())) {
arguments.add(new KeyValue(queryParameter.getName(), getDefaultValue(queryParameter, jsonSchemaItem), getDefaultStringValue(queryParameter.getDescription()), parameter.getRequired(), getMin(jsonSchemaItem), getMax(jsonSchemaItem)));
} else {
Map<String, JsonSchemaItem> properties = jsonSchemaItem.getProperties();
properties.forEach((key, value) -> {
arguments.add(new KeyValue(key, getDefaultValue(queryParameter, value),
getDefaultStringValue(value.getDescription()),
parameter.getRequired(),
getMin(value), getMax(value)));
});
if (ObjectUtils.isNotEmpty(jsonSchemaItem)){
if (MapUtils.isEmpty(jsonSchemaItem.getProperties())) {
arguments.add(new KeyValue(queryParameter.getName(), getDefaultValue(queryParameter, jsonSchemaItem), getDefaultStringValue(queryParameter.getDescription()), parameter.getRequired(), getMin(jsonSchemaItem), getMax(jsonSchemaItem)));
} else {
Map<String, JsonSchemaItem> properties = jsonSchemaItem.getProperties();
properties.forEach((key, value) -> {
arguments.add(new KeyValue(key, getDefaultValue(queryParameter, value),
getDefaultStringValue(value.getDescription()),
parameter.getRequired(),
getMin(value), getMax(value)));
});
}
}
}

Expand Down

0 comments on commit 0d57785

Please sign in to comment.