1、文件上传到 MinIO 查看管理
使用案例:测试下载文件接口,可以使用 BeanShell 后置脚本的方式将接口返回的内容生成文件流上传到 MinIO 里,然后从 MinIO 里下载对应的文件查看。
①.在接口测试执行下载附件的接口,可以看到响应体是文件的内容
②在后置操作选择后置脚本 BeanShell,加入上传文件到 MinIO 的代码
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import io.minio.errors.*;
import java.io.*;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
// 获取响应信息
byte[] result = prev.getResponseData();
//MinIO 的账号信息,可以在 MeterSphere 的服务器的 /opt/metersphere/.env 里查看
String accessKey ="admin";
String secretKey ="Password123@minio";
String url="http://<MeterSphere_IP>:9000";
String bucket="metersphere";
//下载的附件名称
String file_name="test/ms登录_1692248173748.jmx";
InputStream input = new ByteArrayInputStream(result);
MinioClient client = MinioClient.builder()
.endpoint(url)
.credentials(accessKey, secretKey)
.build();
PutObjectArgs.Builder putObjectArgsBuilder = PutObjectArgs.builder()
.bucket(bucket)
.object(file_name)
.stream(input, input.available(), 5 * 1024 * 1024);
client.putObject(putObjectArgsBuilder.build());
③再次执行成功后,登录到 MinIO 中查看和下载对应的文件( MinIO 的地址、用户名、密码等信息可在部署 MeterSphere 的服务器 /opt/metersphere/.env 里查看)
2、读取 MinIO 文件内容
①在需要读取的脚本里加入 BeanShell 脚本 读取 MinIO文件内容
import io.minio.MinioClient;
import io.minio.GetObjectArgs;
import java.io.*;
import java.nio.charset.StandardCharsets;
import io.minio.PutObjectArgs;
//MinIO 的账号信息,可以在 MeterSphere 的服务器的 /opt/metersphere/.env 里查看
String accessKey = "admin";
String secretKey = "Password123@minio";
String url = "http://<MeterSphere_IP>:9000";
String bucket = "metersphere";
String file_name = "opt/测试计划.jmx";
MinioClient minioClient = MinioClient.builder()
.endpoint(url)
.credentials(accessKey, secretKey)
.build();
try {
InputStream inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(bucket).object(file_name).build());
BufferedReader bdr = new BufferedReader(new InputStreamReader(inputStream));
String line ="";
int i=1;
while ((line =bdr.readLine())!= null){
log.info("i--11--"+i+"----"+line);
i++;
}
} catch (Exception e) {
e.printStackTrace();
}
②执行脚本,控制台打印出脚本内容