fix(转性能测试): 修复转性能测试时附件存入数据库未保存项目id字段的缺陷

修复转性能测试时附件存入数据库未保存项目id字段的缺陷
This commit is contained in:
song-tianyang 2022-01-21 17:27:41 +08:00 committed by 刘瑞斌
parent c351adada6
commit bbcc14e106
3 changed files with 29 additions and 8 deletions

View File

@ -459,7 +459,7 @@ public class APITestService {
* @return
* @author song tianyang
*/
public JmxInfoDTO updateJmxString(String jmx) {
public JmxInfoDTO updateJmxString(String jmx,String projectId) {
jmx = this.updateJmxMessage(jmx);
//获取要转化的文件
@ -495,7 +495,7 @@ public class APITestService {
File file = new File(filePath);
if (file.exists() && file.isFile()) {
try {
FileMetadata fileMetadata = fileService.saveFile(file, FileUtil.readAsByteArray(file));
FileMetadata fileMetadata = fileService.saveFile(file, FileUtil.readAsByteArray(file),projectId);
fileMetadataList.add(fileMetadata);
attachmentFiles.put(fileMetadata.getId(), fileMetadata.getName());
} catch (Exception e) {
@ -623,7 +623,7 @@ public class APITestService {
HashTree hashTree = runRequest.getTestElement().generateHashTree(config);
String jmxString = runRequest.getTestElement().getJmx(hashTree);
//将jmx处理封装为通用方法
JmxInfoDTO dto = updateJmxString(jmxString);
JmxInfoDTO dto = updateJmxString(jmxString,runRequest.getProjectId());
dto.setName(runRequest.getName() + ".jmx");
return dto;
}

View File

@ -1119,7 +1119,8 @@ public class ApiAutomationService {
}
MsTestPlan testPlan = new MsTestPlan();
testPlan.setHashTree(new LinkedList<>());
JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(apiScenarios.get(0)));
ApiScenarioDTO scenario = apiScenarios.get(0);
JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(scenario), scenario.getProjectId());
String name = request.getName() + ".jmx";
dto.setName(name);
@ -1468,8 +1469,8 @@ public class ApiAutomationService {
if (StringUtils.isNotEmpty(item.getScenarioDefinition())) {
String jmx = generateJmx(item);
if (StringUtils.isNotEmpty(jmx)) {
ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx).getXml());
JmxInfoDTO dto = apiTestService.updateJmxString(jmx);
ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx,item.getProjectId()).getXml());
JmxInfoDTO dto = apiTestService.updateJmxString(jmx, item.getProjectId());
scenrioExportJmx.setId(item.getId());
scenrioExportJmx.setVersion(item.getVersion());
//扫描需要哪些文件
@ -1495,7 +1496,7 @@ public class ApiAutomationService {
if (StringUtils.isNotEmpty(item.getScenarioDefinition())) {
String jmx = generateJmx(item);
if (StringUtils.isNotEmpty(jmx)) {
ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx).getXml());
ApiScenrioExportJmx scenrioExportJmx = new ApiScenrioExportJmx(item.getName(), apiTestService.updateJmxString(jmx, item.getProjectId()).getXml());
String fileName = item.getName() + ".jmx";
String jmxStr = scenrioExportJmx.getJmx();
files.put(fileName, jmxStr.getBytes(StandardCharsets.UTF_8));
@ -1885,7 +1886,7 @@ public class ApiAutomationService {
String testName = item.getName();
MsTestPlan testPlan = new MsTestPlan();
testPlan.setHashTree(new LinkedList<>());
JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(item));
JmxInfoDTO dto = apiTestService.updateJmxString(generateJmx(item),item.getProjectId());
String name = item.getName() + ".jmx";
dto.setId(item.getId());
dto.setName(name);

View File

@ -121,6 +121,26 @@ public class FileService {
return fileMetadata;
}
public FileMetadata saveFile(File file, byte[] fileByte, String projectId) {
final FileMetadata fileMetadata = new FileMetadata();
fileMetadata.setId(UUID.randomUUID().toString());
fileMetadata.setName(file.getName());
fileMetadata.setSize(file.length());
fileMetadata.setProjectId(projectId);
fileMetadata.setCreateTime(System.currentTimeMillis());
fileMetadata.setUpdateTime(System.currentTimeMillis());
FileType fileType = getFileType(fileMetadata.getName());
fileMetadata.setType(fileType.name());
fileMetadataMapper.insert(fileMetadata);
FileContent fileContent = new FileContent();
fileContent.setFileId(fileMetadata.getId());
fileContent.setFile(fileByte);
fileContentMapper.insert(fileContent);
return fileMetadata;
}
public FileMetadata saveFile(byte[] fileByte, String fileName, Long fileSize) {
final FileMetadata fileMetadata = new FileMetadata();
fileMetadata.setId(UUID.randomUUID().toString());