Amazon s3 无法通过jmeter将文件上载到S3
我试图通过jmeter的PUTTP请求将文件上传到S3。我在“路径”和“文件上传”部分的“文件路径和mime类型”中指定URL 我收到来自S3的“拒绝访问”响应。通过邮递员,相同的URL工作正常,上传成功Amazon s3 无法通过jmeter将文件上载到S3,amazon-s3,jmeter,Amazon S3,Jmeter,我试图通过jmeter的PUTTP请求将文件上传到S3。我在“路径”和“文件上传”部分的“文件路径和mime类型”中指定URL 我收到来自S3的“拒绝访问”响应。通过邮递员,相同的URL工作正常,上传成功 这方面有什么帮助吗?您是否在JMeter PUT请求中正确指定了AWS凭据?您需要指定AWS访问密钥和密钥 另一个解决方案是使用JSR223采样器中的AWS Java SDK,并使用Java代码进行调用。如果您能够使用Postman成功上传文件,您可以使用JMeter记录相关请求 准备JMet
这方面有什么帮助吗?您是否在JMeter PUT请求中正确指定了AWS凭据?您需要指定AWS访问密钥和密钥
另一个解决方案是使用JSR223采样器中的AWS Java SDK,并使用Java代码进行调用。如果您能够使用Postman成功上传文件,您可以使用JMeter记录相关请求
文件-模板-录制
,然后单击“创建”
Workbench-HTTP(S)测试脚本记录器
,然后单击“开始”按钮
C:\Users\Jayashree\AppData\Local\Postman\app-4.9.3\Postman.exe --proxy-server=localhost:8888
测试计划-线程组-记录控制器下
有关更多信息,请参阅文档。我已经提到了使用JMeter将图像上载到s3存储桶的步骤,如下所示: 要求:
- 爪哇9
- aws-java-sdk-s3 JAR 1.11.313依赖项
- 将jar文件复制到Jmeter的JMeterHome/lib/ext/
- 创建一个测试计划并单击线程组
- 将线程数、爬升周期和循环计数设置为1
- 右键单击线程组并添加JSR233采样器
- 选择Java作为JSR233采样器中的语言
- 在采样器的脚本部分添加以下代码
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();