MeterSphere 测试下载文件接口并基于 MinIO 对象存储进行文件管理


朱飞鸽
飞致云 发布于 2023-12-06 / 654 阅读 / 0 评论 /
1、背景 在我们实际应用中,需要测试下载文件接口,MeterSphere 2.10-LTS 内置 MinIO 对象存储服务,可以使用 BeanShell 后置脚本的方式将接口返回的内容生成文件流上传到 MinIO 里,然后从 MinIO 里下载对应的文件查看。 2、使用案例 1.在接口测试写一个下载

1、背景

在我们实际应用中,需要测试下载文件接口,MeterSphere 2.10-LTS 内置 MinIO 对象存储服务,可以使用 BeanShell 后置脚本的方式将接口返回的内容生成文件流上传到 MinIO 里,然后从 MinIO 里下载对应的文件查看。

2、使用案例

1.在接口测试写一个下载附件的接口并创建一个接口 CASE 或者场景。 

2.执行该接口,可以看到响应体是文件的内容。

3.在后置操作选择后置脚本 BeanShell,并写以下脚本

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());

4.接口执行成功后,登录到 MinIO 中查看和下载对应的文件( MinIO 的地址、用户名、密码等信息可在部署 MeterSphere 的服务器 /opt/metersphere/.env 里查看)。



是否对你有帮助?