refactor(文件管理): 文件重构后兼容性能测试引用及生成文件

This commit is contained in:
fit2-zhao 2022-08-17 13:34:29 +08:00 committed by f2c-ci-robot[bot]
parent f26dede034
commit ab2c94c527
11 changed files with 160 additions and 113 deletions

View File

@ -403,11 +403,6 @@
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version> <version>${poi.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -33,9 +33,9 @@ import io.metersphere.controller.request.ScheduleRequest;
import io.metersphere.dto.ScheduleDao; import io.metersphere.dto.ScheduleDao;
import io.metersphere.i18n.Translator; import io.metersphere.i18n.Translator;
import io.metersphere.job.sechedule.ApiTestJob; import io.metersphere.job.sechedule.ApiTestJob;
import io.metersphere.metadata.service.FileMetadataService;
import io.metersphere.performance.parse.EngineSourceParserFactory; import io.metersphere.performance.parse.EngineSourceParserFactory;
import io.metersphere.plugin.core.MsTestElement; import io.metersphere.plugin.core.MsTestElement;
import io.metersphere.service.FileService;
import io.metersphere.service.ScheduleService; import io.metersphere.service.ScheduleService;
import io.metersphere.track.service.TestCaseService; import io.metersphere.track.service.TestCaseService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
@ -67,7 +67,7 @@ public class APITestService {
@Resource @Resource
private ApiTestFileMapper apiTestFileMapper; private ApiTestFileMapper apiTestFileMapper;
@Resource @Resource
private FileService fileService; private FileMetadataService fileMetadataService;
@Resource @Resource
private JMeterService jMeterService; private JMeterService jMeterService;
@Resource @Resource
@ -145,31 +145,6 @@ public class APITestService {
} }
public void copy(SaveAPITestRequest request) { public void copy(SaveAPITestRequest request) {
ApiTestExample example = new ApiTestExample();
example.createCriteria().andNameEqualTo(request.getName()).andProjectIdEqualTo(request.getProjectId());
if (apiTestMapper.countByExample(example) > 0) {
MSException.throwException(Translator.get("load_test_already_exists"));
}
// copy test
ApiTest copy = get(request.getId());
copy.setId(UUID.randomUUID().toString());
copy.setName(request.getName());
copy.setCreateTime(System.currentTimeMillis());
copy.setUpdateTime(System.currentTimeMillis());
copy.setStatus(APITestStatus.Saved.name());
copy.setUserId(Objects.requireNonNull(SessionUtils.getUser()).getId());
apiTestMapper.insert(copy);
// copy test file
ApiTestFile apiTestFile = getFileByTestId(request.getId());
if (apiTestFile != null) {
FileMetadata fileMetadata = fileService.copyFile(apiTestFile.getFileId());
apiTestFile.setTestId(copy.getId());
apiTestFile.setFileId(fileMetadata.getId());
apiTestFileMapper.insert(apiTestFile);
}
copyBodyFiles(copy.getId(), request.getId());
} }
public void copyBodyFiles(String target, String source) { public void copyBodyFiles(String target, String source) {
@ -228,7 +203,7 @@ public class APITestService {
if (file == null) { if (file == null) {
MSException.throwException(Translator.get("file_cannot_be_null")); MSException.throwException(Translator.get("file_cannot_be_null"));
} }
byte[] bytes = fileService.loadFileAsBytes(file.getFileId()); byte[] bytes = new byte[0];
// 解析 xml 处理 mock 数据 // 解析 xml 处理 mock 数据
bytes = JmeterDocumentParser.parse(bytes); bytes = JmeterDocumentParser.parse(bytes);
InputStream is = new ByteArrayInputStream(bytes); InputStream is = new ByteArrayInputStream(bytes);
@ -293,7 +268,7 @@ public class APITestService {
} }
private void saveFile(ApiTest apiTest, MultipartFile file) { private void saveFile(ApiTest apiTest, MultipartFile file) {
final FileMetadata fileMetadata = fileService.saveFile(file, apiTest.getProjectId()); final FileMetadata fileMetadata = fileMetadataService.saveFile(file, apiTest.getProjectId());
ApiTestFile apiTestFile = new ApiTestFile(); ApiTestFile apiTestFile = new ApiTestFile();
apiTestFile.setTestId(apiTest.getId()); apiTestFile.setTestId(apiTest.getId());
apiTestFile.setFileId(fileMetadata.getId()); apiTestFile.setFileId(fileMetadata.getId());
@ -308,7 +283,7 @@ public class APITestService {
if (!CollectionUtils.isEmpty(ApiTestFiles)) { if (!CollectionUtils.isEmpty(ApiTestFiles)) {
final List<String> fileIds = ApiTestFiles.stream().map(ApiTestFile::getFileId).collect(Collectors.toList()); final List<String> fileIds = ApiTestFiles.stream().map(ApiTestFile::getFileId).collect(Collectors.toList());
fileService.deleteFileByIds(fileIds); fileMetadataService.deleteBatch(fileIds);
} }
} }
@ -503,7 +478,7 @@ public class APITestService {
File file = new File(filePath); File file = new File(filePath);
if (file.exists() && file.isFile()) { if (file.exists() && file.isFile()) {
try { try {
FileMetadata fileMetadata = fileService.insertFileByFileName(file, FileUtil.readAsByteArray(file), projectId); FileMetadata fileMetadata = fileMetadataService.saveFile(FileUtil.readAsByteArray(file), file.getName(), file.length());
if (fileMetadata != null) { if (fileMetadata != null) {
fileMetadataList.add(fileMetadata); fileMetadataList.add(fileMetadata);
attachmentFiles.put(fileMetadata.getId(), fileMetadata.getName()); attachmentFiles.put(fileMetadata.getId(), fileMetadata.getName());

View File

@ -8,6 +8,8 @@ import java.io.IOException;
public interface FileRepository { public interface FileRepository {
String saveFile(MultipartFile file, FileRequest request) throws IOException; String saveFile(MultipartFile file, FileRequest request) throws IOException;
String saveFile(byte[] bytes, FileRequest request) throws IOException;
void delete(FileRequest request) throws Exception; void delete(FileRequest request) throws Exception;
byte[] getFile(FileRequest request) throws Exception; byte[] getFile(FileRequest request) throws Exception;

View File

@ -2,6 +2,7 @@ package io.metersphere.metadata.repository;
import io.metersphere.commons.exception.MSException; import io.metersphere.commons.exception.MSException;
import io.metersphere.commons.utils.FileUtils; import io.metersphere.commons.utils.FileUtils;
import io.metersphere.commons.utils.LogUtil;
import io.metersphere.i18n.Translator; import io.metersphere.i18n.Translator;
import io.metersphere.metadata.vo.FileRequest; import io.metersphere.metadata.vo.FileRequest;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -16,13 +17,7 @@ public class LocalFileRepository implements FileRepository {
if (multipartFile == null || request == null || StringUtils.isEmpty(request.getFileName()) || StringUtils.isEmpty(request.getProjectId())) { if (multipartFile == null || request == null || StringUtils.isEmpty(request.getFileName()) || StringUtils.isEmpty(request.getProjectId())) {
return null; return null;
} }
String path = StringUtils.join(FileUtils.BODY_FILE_DIR, "/", request.getProjectId()); File file = createFile(request);
File fileDir = new File(path);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
File file = new File(StringUtils.join(path, "/", request.getFileName()));
try (InputStream in = multipartFile.getInputStream(); OutputStream out = new FileOutputStream(file)) { try (InputStream in = multipartFile.getInputStream(); OutputStream out = new FileOutputStream(file)) {
file.createNewFile(); file.createNewFile();
final int MAX = 4096; final int MAX = 4096;
@ -36,6 +31,18 @@ public class LocalFileRepository implements FileRepository {
return file.getPath(); return file.getPath();
} }
@Override
public String saveFile(byte[] bytes, FileRequest request) throws IOException {
File file = createFile(request);
try (OutputStream ops = new FileOutputStream(file);) {
ops.write(bytes);
return file.getPath();
} catch (Exception e) {
LogUtil.info(e);
}
return null;
}
@Override @Override
public void delete(FileRequest request) throws Exception { public void delete(FileRequest request) throws Exception {
String path = StringUtils.join(FileUtils.BODY_FILE_DIR + "/", request.getProjectId(), "/", request.getFileName()); String path = StringUtils.join(FileUtils.BODY_FILE_DIR + "/", request.getProjectId(), "/", request.getFileName());
@ -82,4 +89,14 @@ public class LocalFileRepository implements FileRepository {
} }
return false; return false;
} }
private File createFile(FileRequest request) {
String path = StringUtils.join(FileUtils.BODY_FILE_DIR, "/", request.getProjectId());
File fileDir = new File(path);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
File file = new File(StringUtils.join(path, "/", request.getFileName()));
return file;
}
} }

View File

@ -12,6 +12,11 @@ public class MinIOFileRepository implements FileRepository {
return null; return null;
} }
@Override
public String saveFile(byte[] bytes, FileRequest request) throws IOException {
return null;
}
@Override @Override
public void delete(FileRequest request) throws Exception { public void delete(FileRequest request) throws Exception {

View File

@ -4,13 +4,9 @@ import io.metersphere.commons.constants.StorageConstants;
import io.metersphere.commons.utils.LogUtil; import io.metersphere.commons.utils.LogUtil;
import io.metersphere.metadata.vo.FileRequest; import io.metersphere.metadata.vo.FileRequest;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.http.entity.ContentType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
@Service @Service
@ -25,6 +21,16 @@ public class FileManagerService {
} }
} }
public String upload(byte[] file, FileRequest request) {
try {
this.initStorage(request);
return FileCenter.getRepository(request.getStorage()).saveFile(file, request);
} catch (IOException e) {
LogUtil.error(e);
return null;
}
}
public boolean reName(String beforeName, String name, String projectId) { public boolean reName(String beforeName, String name, String projectId) {
try { try {
FileRequest request = new FileRequest(); FileRequest request = new FileRequest();
@ -65,18 +71,6 @@ public class FileManagerService {
} }
} }
public MultipartFile getMultipartFile(File file) {
try {
FileInputStream inputStream = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(),
ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
return multipartFile;
} catch (Exception e) {
LogUtil.error(e);
return null;
}
}
public byte[] downloadFile(FileRequest request) { public byte[] downloadFile(FileRequest request) {
try { try {
return FileCenter.getRepository(request.getStorage()).getFile(request); return FileCenter.getRepository(request.getStorage()).getFile(request);

View File

@ -61,41 +61,22 @@ public class FileMetadataService {
for (MultipartFile file : files) { for (MultipartFile file : files) {
QueryProjectFileRequest request = new QueryProjectFileRequest(); QueryProjectFileRequest request = new QueryProjectFileRequest();
request.setName(file.getOriginalFilename()); request.setName(file.getOriginalFilename());
if (CollectionUtils.isEmpty(this.getProjectFiles(fileMetadata.getProjectId(), request))) {
result.add(this.saveFile(file, fileMetadata)); result.add(this.saveFile(file, fileMetadata));
} else {
MSException.throwException(Translator.get("project_file_already_exists"));
}
} }
} }
return result; return result;
} }
public FileMetadata saveFile(MultipartFile file, FileMetadata fileMetadata) { public FileMetadata saveFile(MultipartFile file, FileMetadata fileMetadata) {
if (StringUtils.isEmpty(fileMetadata.getId())) { this.initBase(fileMetadata);
fileMetadata.setId(UUID.randomUUID().toString());
}
if (StringUtils.isEmpty(fileMetadata.getName())) { if (StringUtils.isEmpty(fileMetadata.getName())) {
fileMetadata.setName(file.getOriginalFilename()); fileMetadata.setName(file.getOriginalFilename());
} }
if (StringUtils.isEmpty(fileMetadata.getStorage())) { checkName(fileMetadata);
fileMetadata.setStorage(StorageConstants.LOCAL.name());
}
if (StringUtils.isEmpty(fileMetadata.getModuleId())) {
fileMetadata.setModuleId(fileModuleService.getDefaultNode(fileMetadata.getProjectId()).getId());
}
fileMetadata.setSize(file.getSize()); fileMetadata.setSize(file.getSize());
fileMetadata.setCreateTime(System.currentTimeMillis());
fileMetadata.setUpdateTime(System.currentTimeMillis());
String fileType = MetadataUtils.getFileType(fileMetadata.getName()); String fileType = MetadataUtils.getFileType(fileMetadata.getName());
fileMetadata.setType(fileType); fileMetadata.setType(fileType);
if (StringUtils.isEmpty(fileMetadata.getCreateUser())) {
fileMetadata.setCreateUser(SessionUtils.getUserId());
}
if (StringUtils.isEmpty(fileMetadata.getUpdateUser())) {
fileMetadata.setUpdateUser(SessionUtils.getUserId());
}
// 上传文件 // 上传文件
FileRequest request = new FileRequest(fileMetadata.getProjectId(), fileMetadata.getName(), fileMetadata.getType()); FileRequest request = new FileRequest(fileMetadata.getProjectId(), fileMetadata.getName(), fileMetadata.getType());
String path = fileManagerService.upload(file, request); String path = fileManagerService.upload(file, request);
@ -110,8 +91,10 @@ public class FileMetadataService {
} }
public FileMetadata saveFile(MultipartFile file) { public FileMetadata saveFile(MultipartFile file, String projectId) {
return saveFile(file, null); FileMetadata fileMetadata = new FileMetadata();
fileMetadata.setProjectId(projectId);
return saveFile(file, fileMetadata);
} }
public List<FileMetadata> getProjectFiles(String projectId, QueryProjectFileRequest request) { public List<FileMetadata> getProjectFiles(String projectId, QueryProjectFileRequest request) {
@ -280,16 +263,23 @@ public class FileMetadataService {
if (CollectionUtils.isEmpty(files)) { if (CollectionUtils.isEmpty(files)) {
return fileMetadata; return fileMetadata;
} }
fileMetadata = fileMetadataMapper.selectByPrimaryKey(fileMetadata.getId());
if (fileMetadata == null) {
MSException.throwException("数据已经被删除!");
}
fileMetadata.setSize(files.get(0).getSize()); fileMetadata.setSize(files.get(0).getSize());
String fileType = MetadataUtils.getFileType(files.get(0).getOriginalFilename()); String fileType = MetadataUtils.getFileType(files.get(0).getOriginalFilename());
fileMetadata.setType(fileType); fileMetadata.setType(fileType);
if (StringUtils.isEmpty(fileMetadata.getStorage())) { if (StringUtils.isEmpty(fileMetadata.getStorage())) {
fileMetadata.setStorage(StorageConstants.LOCAL.name()); fileMetadata.setStorage(StorageConstants.LOCAL.name());
} }
// 上传文件
FileRequest request = new FileRequest(fileMetadata.getProjectId(), fileMetadata.getName(), fileMetadata.getType()); FileRequest request = new FileRequest(fileMetadata.getProjectId(), fileMetadata.getName(), fileMetadata.getType());
fileManagerService.coverFile(files.get(0), request); fileManagerService.coverFile(files.get(0), request);
// 更新关系数据
this.update(fileMetadata); fileMetadata.setUpdateTime(System.currentTimeMillis());
fileMetadata.setUpdateUser(SessionUtils.getUserId());
fileMetadataMapper.updateByPrimaryKeySelective(fileMetadata);
return fileMetadata; return fileMetadata;
} }
@ -325,23 +315,25 @@ public class FileMetadataService {
} }
public void dumpFile(DumpFileRequest request, List<MultipartFile> files) { public void dumpFile(DumpFileRequest request, List<MultipartFile> files) {
FileMetadata fileMetadata = new FileMetadata();
fileMetadata.setProjectId(request.getProjectId());
fileMetadata.setModuleId(request.getModuleId());
if (CollectionUtils.isEmpty(files)) { if (CollectionUtils.isEmpty(files)) {
// 文件已经存储过了 // 文件已经存储过了
String path = FileUtils.BODY_FILE_DIR + '/' + request.getResourceId() + '/' + request.getFileName(); String path = StringUtils.join(FileUtils.BODY_FILE_DIR, File.separator, request.getResourceId(), File.separator, request.getFileName());
if (request.isCsv()) {
path = StringUtils.join(FileUtils.BODY_FILE_DIR, File.separator, request.getResourceId(), "_", request.getFileName());
}
File file = new File(path); File file = new File(path);
if (!file.exists()) { if (!file.exists()) {
MSException.throwException("文件不存在!"); MSException.throwException("文件不存在!");
} }
MultipartFile multipartFile = fileManagerService.getMultipartFile(file); if (request.isCsv()) {
if (multipartFile != null) { this.saveFile(file, request.getFileName());
this.create(fileMetadata, new ArrayList<>() {{ } else {
this.add(multipartFile); this.saveFile(file);
}});
} }
} else { } else {
FileMetadata fileMetadata = new FileMetadata();
fileMetadata.setProjectId(request.getProjectId());
fileMetadata.setModuleId(request.getModuleId());
this.create(fileMetadata, files); this.create(fileMetadata, files);
} }
} }
@ -371,4 +363,72 @@ public class FileMetadataService {
} }
return null; return null;
} }
public boolean isFileExits(String fileId) {
FileMetadataExample example = new FileMetadataExample();
example.createCriteria().andIdEqualTo(fileId);
long fileCount = fileMetadataMapper.countByExample(example);
if (fileCount > 0) {
return true;
} else {
return false;
}
}
public FileMetadata saveFile(File file) {
if (file.exists()) {
byte[] bytes = FileUtils.fileToByte(file);
this.saveFile(bytes, file.getName(), file.length());
}
return null;
}
public void saveFile(File file, String name) {
if (file.exists()) {
byte[] bytes = FileUtils.fileToByte(file);
this.saveFile(bytes, name, file.length());
}
}
public FileMetadata saveFile(byte[] fileByte, String fileName, Long fileSize) {
final FileMetadata fileMetadata = new FileMetadata();
this.initBase(fileMetadata);
fileMetadata.setName(fileName);
fileMetadata.setSize(fileSize);
String fileType = MetadataUtils.getFileType(fileName);
fileMetadata.setType(fileType);
checkName(fileMetadata);
FileRequest request = new FileRequest(fileMetadata.getProjectId(), fileMetadata.getName(), fileMetadata.getType());
String path = fileManagerService.upload(fileByte, request);
fileMetadata.setPath(path);
fileMetadataMapper.insert(fileMetadata);
return fileMetadata;
}
private void initBase(FileMetadata fileMetadata) {
if (fileMetadata == null) {
fileMetadata = new FileMetadata();
}
if (StringUtils.isEmpty(fileMetadata.getId())) {
fileMetadata.setId(UUID.randomUUID().toString());
}
if (StringUtils.isEmpty(fileMetadata.getStorage())) {
fileMetadata.setStorage(StorageConstants.LOCAL.name());
}
if (StringUtils.isEmpty(fileMetadata.getProjectId())) {
fileMetadata.setProjectId(SessionUtils.getCurrentProjectId());
}
if (StringUtils.isEmpty(fileMetadata.getModuleId())) {
fileMetadata.setModuleId(fileModuleService.getDefaultNode(fileMetadata.getProjectId()).getId());
}
fileMetadata.setCreateTime(System.currentTimeMillis());
fileMetadata.setUpdateTime(System.currentTimeMillis());
if (StringUtils.isEmpty(fileMetadata.getCreateUser())) {
fileMetadata.setCreateUser(SessionUtils.getUserId());
}
if (StringUtils.isEmpty(fileMetadata.getUpdateUser())) {
fileMetadata.setUpdateUser(SessionUtils.getUserId());
}
}
} }

View File

@ -8,4 +8,5 @@ public class DumpFileRequest {
private String moduleId; private String moduleId;
private String fileName; private String fileName;
private String projectId; private String projectId;
private boolean isCsv;
} }

View File

@ -32,6 +32,7 @@ import io.metersphere.log.utils.ReflexObjectUtil;
import io.metersphere.log.vo.DetailColumn; import io.metersphere.log.vo.DetailColumn;
import io.metersphere.log.vo.OperatingLogDetails; import io.metersphere.log.vo.OperatingLogDetails;
import io.metersphere.log.vo.performance.PerformanceReference; import io.metersphere.log.vo.performance.PerformanceReference;
import io.metersphere.metadata.service.FileMetadataService;
import io.metersphere.performance.base.GranularityData; import io.metersphere.performance.base.GranularityData;
import io.metersphere.performance.base.VumProcessedStatus; import io.metersphere.performance.base.VumProcessedStatus;
import io.metersphere.performance.dto.LoadModuleDTO; import io.metersphere.performance.dto.LoadModuleDTO;
@ -41,7 +42,6 @@ import io.metersphere.performance.engine.Engine;
import io.metersphere.performance.engine.EngineFactory; import io.metersphere.performance.engine.EngineFactory;
import io.metersphere.performance.request.*; import io.metersphere.performance.request.*;
import io.metersphere.service.ApiPerformanceService; import io.metersphere.service.ApiPerformanceService;
import io.metersphere.service.FileService;
import io.metersphere.service.QuotaService; import io.metersphere.service.QuotaService;
import io.metersphere.service.ScheduleService; import io.metersphere.service.ScheduleService;
import io.metersphere.track.request.testplan.LoadCaseRequest; import io.metersphere.track.request.testplan.LoadCaseRequest;
@ -55,7 +55,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.aspectj.util.FileUtil;
import org.mybatis.spring.SqlSessionUtils; import org.mybatis.spring.SqlSessionUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
@ -66,7 +65,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.Socket; import java.net.Socket;
@ -89,7 +87,7 @@ public class PerformanceTestService {
@Resource @Resource
private LoadTestFileMapper loadTestFileMapper; private LoadTestFileMapper loadTestFileMapper;
@Resource @Resource
private FileService fileService; private FileMetadataService fileMetadataService;
@Resource @Resource
private LoadTestReportMapper loadTestReportMapper; private LoadTestReportMapper loadTestReportMapper;
@Resource @Resource
@ -219,7 +217,7 @@ public class PerformanceTestService {
} }
private boolean loadTestFileExsits(String testId, String metaFileId) { private boolean loadTestFileExsits(String testId, String metaFileId) {
boolean fileExsits = fileService.isFileExsits(metaFileId); boolean fileExsits = fileMetadataService.isFileExits(metaFileId);
LoadTestFileExample example = new LoadTestFileExample(); LoadTestFileExample example = new LoadTestFileExample();
example.createCriteria().andTestIdEqualTo(testId).andFileIdEqualTo(metaFileId); example.createCriteria().andTestIdEqualTo(testId).andFileIdEqualTo(metaFileId);
long loadTestFiles = loadTestFileMapper.countByExample(example); long loadTestFiles = loadTestFileMapper.countByExample(example);
@ -235,7 +233,7 @@ public class PerformanceTestService {
if (files != null) { if (files != null) {
for (int i = 0; i < files.size(); i++) { for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i); MultipartFile file = files.get(i);
FileMetadata fileMetadata = fileService.saveFile(file, loadTest.getProjectId()); FileMetadata fileMetadata = fileMetadataService.saveFile(file, loadTest.getProjectId());
LoadTestFile loadTestFile = new LoadTestFile(); LoadTestFile loadTestFile = new LoadTestFile();
loadTestFile.setTestId(loadTest.getId()); loadTestFile.setTestId(loadTest.getId());
loadTestFile.setFileId(fileMetadata.getId()); loadTestFile.setFileId(fileMetadata.getId());
@ -248,7 +246,7 @@ public class PerformanceTestService {
private void importFiles(List<String> importFileIds, String testId, Map<String, Integer> fileSorts) { private void importFiles(List<String> importFileIds, String testId, Map<String, Integer> fileSorts) {
for (int i = 0; i < importFileIds.size(); i++) { for (int i = 0; i < importFileIds.size(); i++) {
String fileId = importFileIds.get(i); String fileId = importFileIds.get(i);
FileMetadata fileMetadata = fileService.getFileMetadataById(fileId); FileMetadata fileMetadata = fileMetadataService.getFileMetadataById(fileId);
LoadTestFile loadTestFile = new LoadTestFile(); LoadTestFile loadTestFile = new LoadTestFile();
loadTestFile.setTestId(testId); loadTestFile.setTestId(testId);
loadTestFile.setFileId(fileId); loadTestFile.setFileId(fileId);
@ -626,8 +624,8 @@ public class PerformanceTestService {
List<LoadTestExportJmx> results = new ArrayList<>(); List<LoadTestExportJmx> results = new ArrayList<>();
for (FileMetadata metadata : fileMetadataList) { for (FileMetadata metadata : fileMetadataList) {
if (FileType.JMX.name().equals(metadata.getType())) { if (FileType.JMX.name().equals(metadata.getType())) {
FileContent fileContent = fileService.getFileContent(metadata.getId()); byte[] content = fileMetadataService.loadFileAsBytes(metadata.getId());
results.add(new LoadTestExportJmx(metadata.getName(), new String(fileContent.getFile(), StandardCharsets.UTF_8))); results.add(new LoadTestExportJmx(metadata.getName(), new String(content, StandardCharsets.UTF_8)));
} }
} }
return results; return results;
@ -814,9 +812,9 @@ public class PerformanceTestService {
} }
List<LoadTestExportJmx> results = new ArrayList<>(); List<LoadTestExportJmx> results = new ArrayList<>();
fileIds.forEach(id -> { fileIds.forEach(id -> {
FileMetadata fileMetadata = fileService.getFileMetadataById(id); FileMetadata fileMetadata = fileMetadataService.getFileMetadataById(id);
FileContent fileContent = fileService.getFileContent(id); byte[] content = fileMetadataService.loadFileAsBytes(id);
results.add(new LoadTestExportJmx(fileMetadata.getName(), new String(fileContent.getFile(), StandardCharsets.UTF_8))); results.add(new LoadTestExportJmx(fileMetadata.getName(), new String(content, StandardCharsets.UTF_8)));
}); });
return results; return results;
@ -923,7 +921,7 @@ public class PerformanceTestService {
private void saveJmxFile(String jmx, String name, String projectId, String loadTestId) { private void saveJmxFile(String jmx, String name, String projectId, String loadTestId) {
byte[] jmxBytes = jmx.getBytes(StandardCharsets.UTF_8); byte[] jmxBytes = jmx.getBytes(StandardCharsets.UTF_8);
String jmxName = name + "_" + System.currentTimeMillis() + ".jmx"; String jmxName = name + "_" + System.currentTimeMillis() + ".jmx";
FileMetadata fileMetadata = fileService.saveFile(jmxBytes, jmxName, (long) jmxBytes.length); FileMetadata fileMetadata = fileMetadataService.saveFile(jmxBytes, jmxName, (long) jmxBytes.length);
fileMetadata.setProjectId(projectId); fileMetadata.setProjectId(projectId);
saveLoadTestFile(fileMetadata, loadTestId, 0); saveLoadTestFile(fileMetadata, loadTestId, 0);
} }
@ -952,15 +950,15 @@ public class PerformanceTestService {
example.createCriteria() example.createCriteria()
.andTestIdEqualTo(testId); .andTestIdEqualTo(testId);
loadTestFileMapper.deleteByExample(example); loadTestFileMapper.deleteByExample(example);
fileService.deleteFileByIds(originFileIds); fileMetadataService.deleteBatch(originFileIds);
} }
private void saveUploadFile(File file, String loadTestId, int sort) { private void saveUploadFile(File file, String loadTestId, int sort) {
if (file != null) { if (file != null) {
FileMetadata fileMetadata = null; FileMetadata fileMetadata = null;
try { try {
fileMetadata = fileService.saveFile(file, FileUtil.readAsByteArray(file)); fileMetadata = fileMetadataService.saveFile(file);
} catch (IOException e) { } catch (Exception e) {
LogUtil.error(e); LogUtil.error(e);
} }
saveLoadTestFile(fileMetadata, loadTestId, sort); saveLoadTestFile(fileMetadata, loadTestId, sort);

View File

@ -89,7 +89,7 @@ export default {
if (this.file && this.file.file) { if (this.file && this.file.file) {
files.push(this.file.file); files.push(this.file.file);
} }
let request = {id: getUUID(), resourceId: this.id, moduleId: moduleId, projectId: getCurrentProjectID(), fileName: this.file.name}; let request = {id: getUUID(), csv: true, resourceId: this.file.id, moduleId: moduleId, projectId: getCurrentProjectID(), fileName: this.file.name};
this.$fileUpload("/file/metadata/dump/file", null, files, request, (response) => { this.$fileUpload("/file/metadata/dump/file", null, files, request, (response) => {
this.$success(this.$t("organization.integration.successful_operation")); this.$success(this.$t("organization.integration.successful_operation"));
}); });

View File

@ -90,7 +90,7 @@ export default {
}); });
}, },
save() { save() {
if (!this.currentKey) { if (!this.currentKey || this.currentKey ==='') {
this.$warning(this.$t('test_track.case.input_module')); this.$warning(this.$t('test_track.case.input_module'));
return; return;
} }