を使用してファイルをアップロードします
7015 ワード
私は私の個人的なAWS S 3をすべて私の個人的で秘密の文書を保存するために使います.AWS S 3を選ぶための3つの主要な理由があります:手頃な価格、速度と信頼性.あなたがAWS雲に取り組んでいるならば、S 3の使用は避けられません.S 3は、ホットおよびコールドストレージ内のオブジェクトを格納する重要な役割を果たしている.場合によっては、パフォーマンステストスクリプトを介して、プログラムによってS 3にペイロードまたはファイルオブジェクトをアップロードする必要があります.このブログ記事はGroovyを使用してJMeterのAWS S 3にファイルをアップロードするのに役立ちます.
Amazon Simple Storage Service(Amazon S 3)は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです.
S 3の様々なストレージクラスが付属しています:S 3標準、S 3インテリジェントタイリング、S 3氷河インスタント検索と詳細.
以下は、AWS S 3へのアップロードファイルの必須条件です. AWSアカウント AWS IAMユーザはS 3アクセスポリシーを使用します. AWSサービスの基礎知識 JMeterの基礎知識 AWS SDK ( Java )の基礎知識 アップロードするファイル
あなたのAWSアカウントにログインして、開いているIAMサービス.アクセス管理の下でユーザーをクリックします.
「ユーザーを追加」ボタンをクリックし、次のようにユーザー詳細と資格情報型を設定します.
エンター
このユーザーは、ユーザーコンソールからではなく、プログラム的にAWSサービスにアクセスできます.「次へ」をクリックします.パーミッション
Set許可セクションで、既存のポリシーを直接アタッチし、入力してS 3のポリシーをフィルタリングします
デモンストレーション目的のために
S 3とは
Amazon Simple Storage Service(Amazon S 3)は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです.
S 3の様々なストレージクラスが付属しています:S 3標準、S 3インテリジェントタイリング、S 3氷河インスタント検索と詳細.
必要条件
以下は、AWS S 3へのアップロードファイルの必須条件です.
AWSアイアム
あなたのAWSアカウントにログインして、開いているIAMサービス.アクセス管理の下でユーザーをクリックします.
「ユーザーを追加」ボタンをクリックし、次のようにユーザー詳細と資格情報型を設定します.
エンター
jmeter-s3-access
ユーザー名とチェックAccess key - Programmatic access
. このユーザーは、ユーザーコンソールからではなく、プログラム的にAWSサービスにアクセスできます.「次へ」をクリックします.パーミッション
Set許可セクションで、既存のポリシーを直接アタッチし、入力してS 3のポリシーをフィルタリングします
s3
.デモンストレーション目的のために
AmazonS3FullAccess
. チェックAmazonS3FullAccess
をクリックします.しかし、生産サーバーの場合は、ゼロ信頼フレームワークに従ってください.
タグの追加はオプションですが、関連するキーペア値を持つことをお勧めします.
をクリックし、[ Createユーザー]をクリックします.
アクセスキーのIDと秘密のアクセスキーを確保した場所にコピーします.また、ダウンロードすることができます.CSVファイル.
JMeterテストプラン
デフォルトでは、JMeterはAWS S 3にアーティファクトをアップロードする機能を持っていません.機能を拡張するには、JSR 223サンプラーを活用しなければなりません.
ここでは、1週間以内に主人公になるのを助けるJMeterシリーズの完全なプレイリストです.
JSR 223サンプラー
s 3コードブロックをネイティブにアップロードすることはできません.Java用のAWS SDKの最新版を活用しなければなりません.AWS SDKをJSR 223サンプラへの依存性として追加するには、最も簡単な方法はブドウを活用することです.個人的には、JMeter Mavenプラグインを試してみませんでした.私は、ブドウが始まるのが簡単であるとわかりました.
どのようなブドウですか?
は、Groovy適応包装エンジンを使用しています.
使用@Grab
JSR 223の注釈は、Mavenのリポジトリ依存性をクラスパスに追加できます.@Grab(group='software.amazon.awssdk', module='s3', version='2.17.172', scope='test')
上記の注釈はAWS SDK S 3依存性をダウンロードします.複数の依存関係をダウンロードするには@Grapes
注釈.@Grapes(
@Grab(group='software.amazon.awssdk', module='s3', version='2.17.172', scope='test'),
@Grab(group='software.amazon.awssdk', module='sts', version='2.17.172', scope='test')
)
ソースを変更するには@GrabResolver
注釈.@GrabResolver(name='restlet', root='http://maven.restlet.org/')
こんにちはJSR 223でグレープを使用して時間
JMeterのJSR 223サンプラーでどのようにグレープが注釈を使用して単純なスニペットを書くことによってどのように機能するかを理解しましょう.簡単に説明するHello world
, 許しHello time
以下のコードスニペットを使用します.JMeter 223でJMeter 223のサンプラーにコピーしてペーストします.@Grapes(
@Grab(group='joda-time', module='joda-time', version='2.10.14')
)
import org.joda.time.LocalDateTime
LocalDateTime currentDateTime = new LocalDateTime()
log.info "Local Time is " + currentDateTime
私たちは、各ラインをスライスしましょう.注釈を持っている任意の開始注釈です.つ以上の注釈をJSR 223のどこにでも置くことができます.この例では、注釈はjoda-time
依存関係と、現在の日付と時刻をログビューアで印刷します.デフォルトでは、mvnRepositoryから依存関係をダウンロードします.COM .
ログビューアのログメッセージを見るには、JMeterの[実行]ボタンをクリックします.ボタンをクリックすると、上記のスクリプトはソースからの依存関係をダウンロードし、/Users/<user>/.groovy/grapes
マックでC:\Users\<user>\.groovy\grapes
Windows OSで.
依存関係のダウンロードは最初の実行だけで起こります.JMeterの最終的な実行は高速です.
DSのSDKです
S 3にアーティファクトをアップロードするために利用可能な複数のメソッドがあります.例えば、AWS CLI、AWS SDK、HTTPリクエストなど.AWS SDKはAPIを介してAWS用のアプリケーションを構築するためのドアを開きます.
JavaのためにAWS SDKを活用することによって、AWSサービスと対話するのは簡単です.JavaのAWS SDKの最新バージョンはV 2です.V 2はV 1の大きな書き換えである.v 2バージョンにはnettyを使用した非ブロッキングI/Oアーキテクチャが詰まっています.また、HTTP/2と自動ページ付けをサポートします.
でファイルをアップロードします
我々は、S 3のためにAWS SDKを加えることによって、JSR 223サンプラーでGroovyでブドウを活用するつもりです.ヘッドトゥhttps://mvnrepository.com/artifact/software.amazon.awssdk/s3と最新バージョンを選択します.この時点で、最新バージョンは2.17.172です.
をクリックして次のように注釈をコピーします.
ファイルをアップロードするJMeterのAWS
次に、次のスニペットをコピーして貼り付けます.@Grapes(
@Grab(group='software.amazon.awssdk', module='s3', version='2.17.172', scope='test')
)
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider
import software.amazon.awssdk.regions.Region
import software.amazon.awssdk.services.s3.S3Client
import software.amazon.awssdk.services.s3.model.*
import java.io.File
import java.nio.file.Paths
// Configurations
String accessKey = vars.get("AWS_ACCESS_KEY")
String secretKey = vars.get("AWS_SECRET_KEY")
String bucketName = vars.get("AWS_BUCKET_NAME")
String strFilename = "C:\\temp\\result.json"
try {
// Set region
Region region = Region.US_EAST_1
// Create credentials
AwsBasicCredentials awsCreds = AwsBasicCredentials.create(
accessKey,
secretKey)
// Build S3 Client
S3Client s3 = S3Client.builder()
.region(region)
.credentialsProvider(StaticCredentialsProvider.create(awsCreds))
.build()
// Create file object
File s3Obj = new File(strFilename)
// Create PUT request
PutObjectRequest request = PutObjectRequest.builder()
.bucket(bucketName)
.key(s3Obj.getName())
.build()
// Upload file
s3.putObject(request, Paths.get(strFilename))
}
// Catching exception and displaying it in the Sample result
catch (S3Exception e){
SampleResult.setSuccessful(false)
SampleResult.setResponseMessage(e.getMessage())
SampleResult.setResponseCode(null)
}
上記のコードをスライスしましょう. 追加後import
ステートメント、最初のブロックは、AWSアクセス、秘密鍵、およびバケツ名などの構成を表します. 次の設定はAWS領域です. AwsBasicCredentials
Blockバケツにアクセスする資格情報を作成する S3Client
ブロックは、AwsBasicCredentials
資格情報. s3Obj
ファイルをアップロードします. PutObjectRequest
リクエストをビルドします. s3.putObject
ファイルをアップロードしますrequest.
例外が発生した場合、JMeterは、トラブルシューティングの例外の詳細について、サンプラの例外を表示します.
変数AWS_ACCESS_KEY
, AWS_BUCKET_NAME
, and AWS_SECRET_KEY
はTest Plan
.
ここではrepository to download 参考のためのサンプルJMeterテストプラン.
テスト計画にAWS資格情報を格納することはありません.コマンドライン、環境変数を介して資格情報を渡す、またはプログラムを生成します.
おめでとう!これでJSR 223サンプラーを使用してJMeterでs 3にアーティファクトをアップロードする方法を知っています.
結論
S 3にアーティファクトをアップロードするだけで始まります.Java用のAWS SDKを活用することによって、JMeterからGroovyを使用してAWSサービスと対話することができます.JMeterのテスト実行後、上記のスニペットを使用してzipファイルに結果をアップロードできます.あなたがJMeterのために他のusecaseを持っているならば、コメントで知らせてください.
Reference
この問題について(を使用してファイルをアップロードします), 我々は、より多くの情報をここで見つけました https://dev.to/aws-builders/upload-files-to-aws-s3-in-jmeter-using-groovy-3lj3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol