5 groovy jmeter beanshell amazon-web-services
我正在尝试从 S3 存储桶获取文件作为 JMeter 测试的设置线程组的一部分,并且 JSR223 采样器中有以下 Groovy 脚本:
import java.io.IOException
import java.io.InputStream
import java.util.Properties
import com.amazonaws.services.s3.AmazonS3
import com.amazonaws.services.s3.AmazonS3ClientBuilder
import com.amazonaws.services.s3.model.GetObjectRequest
import com.amazonaws.services.s3.model.S3Object
import com.amazonaws.auth.BasicAWSCredentials
import com.amazonaws.auth.AWSStaticCredentialsProvider
import com.amazonaws.services.s3.S3CredentialsProviderChain
def awsAccessKey = "my_key"
def awsSecretAccessKey = "my_secret_key"
System.setProperty("aws.accessKeyId", awsAccessKey)
System.setProperty("aws.secretKey", awsSecretAccessKey)
def awsCreds = new BasicAWSCredentials(awsAccessKey, awsSecretAccessKey)
def s3Client = AmazonS3ClientBuilder.standard()
.withRegion("us-west-2")
.build()
def s3Object = s3Client.getObject(new GetObjectRequest("bucket-name", "filename"))
def is = s3Object.getObjectContent()
Run Code Online (Sandbox Code Playgroud)
当我使用 .withCredentials(awsCreds) 和设置系统属性时,代码都会抛出以下内容:
java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.services.s3.S3CredentialsProviderChain
Run Code Online (Sandbox Code Playgroud)
我还将相同的代码转换为以下 Beanshell Sampler:
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.auth.BasicAWSCredentials;
String awsAccessKey = "my_key";
String awsSecretAccessKey = "my_secret_key";
System.setProperty("aws.accessKeyId", awsAccessKey);
System.setProperty("aws.secretKey", awsSecretAccessKey);
BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsAccessKey, awsSecretAccessKey);
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion("us-west-2").build();
S3Object s3Object = s3Client.getObject(new GetObjectRequest("bucket-name", "filename"));
InputStream is = s3Object.getObjectContent();
Run Code Online (Sandbox Code Playgroud)
然而,这会导致以下结果:
org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval
Sourced file: inline evaluation of: ``import java.io.IOException; import java.io.InputStream; import java.util.Propert . . . '' : Typed variable declaration : Method Invocation AmazonS3ClientBuilder.standard
Run Code Online (Sandbox Code Playgroud)
当我将相同的代码放入测试 Java 类时,它运行没有任何问题。我的 jmeter/lib 中有 aws-java-sdk-1.11.160.jar 和 aws-java-sdk-core-1.11.160.jar ,所以我不认为它缺少依赖项。我还缺少其他东西吗?
| 归档时间: |
|
| 查看次数: |
4642 次 |
| 最近记录: |