fix(接口测试): 修复TCP协议,未按照选取的编码格式动态生成xml表头的缺陷
--bug=1024121 --user=王孝刚 【接口测试】github#22540 TCP协议接口定义,未按照选取的编码格式动态生成xml表头 https://www.tapd.cn/55049933/s/1348133
This commit is contained in:
parent
1d14afdb62
commit
04f4499f9d
|
@ -106,7 +106,7 @@ public class MsTCPSampler extends MsTestElement {
|
||||||
break;
|
break;
|
||||||
case "xml":
|
case "xml":
|
||||||
if (CollectionUtils.isNotEmpty(this.xmlDataStruct)) {
|
if (CollectionUtils.isNotEmpty(this.xmlDataStruct)) {
|
||||||
request = TcpTreeTableDataParser.treeTableData2Xml(this.xmlDataStruct);
|
request = TcpTreeTableDataParser.treeTableData2Xml(this.xmlDataStruct, this.connectEncoding);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "raw":
|
case "raw":
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class TcpTreeTableDataParser {
|
||||||
public static final String DATA_TYPE_STRING = PropertyConstant.STRING;
|
public static final String DATA_TYPE_STRING = PropertyConstant.STRING;
|
||||||
public static final String DATA_TYPE_OBJECT = PropertyConstant.OBJECT;
|
public static final String DATA_TYPE_OBJECT = PropertyConstant.OBJECT;
|
||||||
|
|
||||||
public static String treeTableData2Xml(List<TcpTreeTableDataStruct> treeDataList) {
|
public static String treeTableData2Xml(List<TcpTreeTableDataStruct> treeDataList, String encoding) {
|
||||||
String xmlString = StringUtils.EMPTY;
|
String xmlString = StringUtils.EMPTY;
|
||||||
try {
|
try {
|
||||||
if (treeDataList == null || treeDataList.isEmpty()) {
|
if (treeDataList == null || treeDataList.isEmpty()) {
|
||||||
|
@ -56,7 +56,12 @@ public class TcpTreeTableDataParser {
|
||||||
// 设置XML文档格式
|
// 设置XML文档格式
|
||||||
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
|
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
|
||||||
// 设置XML编码方式,即是用指定的编码方式保存XML文档到字符串(String),这里也可以指定为GBK或是ISO8859-1
|
// 设置XML编码方式,即是用指定的编码方式保存XML文档到字符串(String),这里也可以指定为GBK或是ISO8859-1
|
||||||
outputFormat.setEncoding(StandardCharsets.UTF_8.name());
|
if (StringUtils.equals(encoding, StandardCharsets.UTF_8.name())) {
|
||||||
|
outputFormat.setEncoding(StandardCharsets.UTF_8.name());
|
||||||
|
} else {
|
||||||
|
//目前只有UTF-8和GBK两种编码
|
||||||
|
outputFormat.setEncoding(encoding);
|
||||||
|
}
|
||||||
//outputFormat.setSuppressDeclaration(true); //是否生产xml头
|
//outputFormat.setSuppressDeclaration(true); //是否生产xml头
|
||||||
outputFormat.setIndent(true); //设置是否缩进
|
outputFormat.setIndent(true); //设置是否缩进
|
||||||
outputFormat.setNewlines(true); //设置是否换行
|
outputFormat.setNewlines(true); //设置是否换行
|
||||||
|
|
|
@ -11,7 +11,6 @@ import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,7 +58,7 @@ public class TcpApiParamService {
|
||||||
tcpSampler.setRequest(tcpSampler.getRawDataStruct());
|
tcpSampler.setRequest(tcpSampler.getRawDataStruct());
|
||||||
break;
|
break;
|
||||||
case "xml":
|
case "xml":
|
||||||
String xmlDataStruct = this.genValueFromEsbDataStructByParam(tcpSampler.getXmlDataStruct());
|
String xmlDataStruct = this.genValueFromEsbDataStructByParam(tcpSampler.getXmlDataStruct(), tcpSampler.getConnectEncoding());
|
||||||
tcpSampler.setRequest(xmlDataStruct);
|
tcpSampler.setRequest(xmlDataStruct);
|
||||||
break;
|
break;
|
||||||
case "json":
|
case "json":
|
||||||
|
@ -75,8 +74,8 @@ public class TcpApiParamService {
|
||||||
}
|
}
|
||||||
|
|
||||||
//通过报文模版中的变量参数,解析报文数据结构,生成对应的xml数据
|
//通过报文模版中的变量参数,解析报文数据结构,生成对应的xml数据
|
||||||
private String genValueFromEsbDataStructByParam(List<TcpTreeTableDataStruct> dataStructRequestList) {
|
private String genValueFromEsbDataStructByParam(List<TcpTreeTableDataStruct> dataStructRequestList, String connectEncoding) {
|
||||||
String returnValue = TcpTreeTableDataParser.treeTableData2Xml(dataStructRequestList);
|
String returnValue = TcpTreeTableDataParser.treeTableData2Xml(dataStructRequestList, connectEncoding);
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue