我正在尝试通过来自jmeter的PUT http请求将文件上传到S3。我在“文件上传”部分的“路径”和“文件路径和mime类型”中指定了URL。
我从S3获得了“拒绝访问”的回复。相同的URL通过Postman工作正常,上传成功。
对此有何帮助?
答案 0 :(得分:0)
您是否在JMeter PUT请求中正确指定了AWS凭据?您需要指定AWS Access Key和密钥。
另一种解决方案是使用JSR223采样器中的AWS Java SDK,并使用Java代码进行调用。
答案 1 :(得分:0)
鉴于您能够使用Postman成功上传文件,您只需使用JMeter记录相关请求即可。
准备JMeter进行录制。最快和最简单的方法是使用JMeter Templates feature。从JMeter的主菜单中选择File - Templates - Recording
,然后单击"创建
展开Workbench - HTTP(S) Test Script Recorder
,然后点击"开始"按钮
使用JMeter作为代理服务器运行Postman,如:
C:\Users\Jayashree\AppData\Local\Postman\app-4.9.3\Postman.exe --proxy-server=localhost:8888
Test Plan - Thread Group - Recording Controller
有关详细信息,请参阅HTTP(S) Test Script Recorder文档。
答案 2 :(得分:0)
我在下面提到了使用JMeter将图像上传到s3存储桶的步骤:
要求:
步骤:
将jar文件复制到Jmeter的JMeterHome / lib / ext/。
创建一个测试计划,然后单击“线程组”。
将线程数,启动周期和循环计数设置为1。
右键单击线程组并添加一个JSR233采样器。
在JSR233采样器中选择Java作为语言。
在采样器的脚本部分中添加以下代码。
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.amazonaws.auth.AWSSessionCredentials;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.PutObjectResult;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectInputStream;
import com.amazonaws.regions.Regions;
import com.amazonaws.regions.Region;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.transfer.Download;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.transfer.TransferManagerBuilder;
import com.amazonaws.services.s3.transfer.Upload;
String accessKey = "xxxxxxx";
String secretKey = "xxxxxxxxx";
String bucketName = "bucketname"; //specify bucketname
String region = "region"; //specify region
BasicAWSCredentials sessionCredentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withRegion(region)
.withCredentials(new AWSStaticCredentialsProvider(sessionCredentials))
.build();
TransferManager xfer_mgr = TransferManagerBuilder.standard()
.withS3Client(s3)
.withDisableParallelDownloads(false)
.build();
File f = new File("xxx/image.jpg"); //specify path to your image
String objectName = "newimage.jpg"; //provide a name for the image how you want your image to be shown i
Upload xfer = xfer_mgr.upload(bucketName, objectName, f);
xfer.waitForCompletion();
xfer_mgr.shutdownNow();
有关更多参考,您可以检查此link