Я пытаюсь использовать библиотеку AWS-SDK и Kinesis Client с JMeter для создания записей для добавления в мой поток Kinesis для тестирования производительности.Моя проблема в том, что JMeter не распознает библиотеки, чтобы иметь возможность вызывать их из моего кода.Я не знаю, что делать дальше.
Установил JMeter 5.0 (пробовал с версией 4.0 с такими же проблемами) и Java 8.
$ java -version
java version "1.8.0_202-ea"
Java(TM) SE Runtime Environment (build 1.8.0_202-ea-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b03, mixed mode)
Размещенные JAR-файлы для AWSбиблиотеки в папке lib моей установки JMeter (также пробовал lib / ext):
- amazon-kinesis-client-2.1.0.jar
- aws-java-sdk-1.11.490.jar
- aws-sdk-java-2.3.10-SNAPSHOT.jar
- aws-sdk-java-aws-core-2.3.10-SNAPSHOT.jar
- aws-sdk-java-kinesis-2.3.10-SNAPSHOT.jar
- aws-sdk-java-sdk-core-2.3.10-SNAPSHOT.jar
(также добавил эти три на основе другого поста - не уверен, действительно ли они нужны или нет)
- jackson-annotations-2.9.8.jar
- jackson-core-2.9.8.jar
- jackson-databind-2.9.8.jar
Сэмплер JSR223 с использованием кода Groovy (на основе других примеров):
import groovy.json.*
import groovy.json.JsonBuilder
import groovy.json.JsonOutput
import com.amazonaws.AmazonClientException
import com.amazonaws.AmazonServiceException
import com.amazonaws.auth.AWSCredentials
import com.amazonaws.auth.profile.ProfileCredentialsProvider
import com.amazonaws.services.kinesis.AmazonKinesisClient
import com.amazonaws.services.kinesis.model.CreateStreamRequest
import com.amazonaws.services.kinesis.model.DescribeStreamRequest
import com.amazonaws.services.kinesis.model.DescribeStreamResult
import com.amazonaws.services.kinesis.model.ListStreamsRequest
import com.amazonaws.services.kinesis.model.ListStreamsResult
import com.amazonaws.services.kinesis.model.PutRecordRequest
import com.amazonaws.services.kinesis.model.PutRecordResult
import com.amazonaws.services.kinesis.model.ResourceNotFoundException
import com.amazonaws.services.kinesis.model.StreamDescription
class AmazonKinesisRecordProducerSample {
def kinesis
def init() {
AWSCredentials credentials = null
credentials = new ProfileCredentialsProvider().getCredentials()
kinesis = new AmazonKinesisClient(credentials)
}
}
def amazonKinesisRecordProducerSample= new AmazonKinesisRecordProducerSample()
amazonKinesisRecordProducerSample.init()
def Environment = vars.get("Environment") //as String
def AWS_Region = vars.get("AWS_Region") //as String
def myStreamName="stream123-" + Environment + "-" + AWS_Region
def jsondata = new JsonBuilder()
jsondata {
<VARIOUS JSON DATA ADDED>
}
def data=jsondata.toPrettyString()
log.info("jsondata: " + data)
def partitionkey="<PARTITION KEY>"
def putRecordRequest = new PutRecordRequest()
putRecordRequest.setStreamName(myStreamName)
putRecordRequest.setData(ByteBuffer.wrap(String.valueOf(data).getBytes()))
putRecordRequest.setPartitionKey(partitionkey)
def putRecordResult = new PutRecordResult()
putRecordResult = amazonKinesisRecordProducerSample.kinesis.putRecord(putRecordRequest)
log.info("Successfully put record, partition key : %s, ShardID : %s, SequenceNumber : %s.\n",
putRecordRequest.getPartitionKey(),
putRecordResult.getShardId(),
putRecordResult.getSequenceNumber())
Я получаю эту ошибку для каждого com.amazonaws. * Я пытаюсь импортировать:
Script1.groovy: 14: unable to resolve class com.amazonaws.services.kinesis.AmazonKinesisClient
@ line 14, column 1.
import com.amazonaws.services.kinesis.AmazonKinesisClient
для справки Как поместить запись 25 КБ в поток Kinesis и инструмент тестирования для ее подтверждения и Использование HTTP-запроса Jmeter для помещения записей в Amazon Kinesis