クエリ、挿入、更新、削除などのデータベース操作のパフォーマンスをテストする必要がある場合は、Performance Testing (PTS) の JDBC API を使用して、シミュレートされた負荷状況下で SQL ステートメントをデータベースに直接送信します。このトピックでは、JDBC テストシナリオのデータベース接続、認証情報、および SQL 構成を設定する方法について説明します。
PTS は、MySQL、PostgreSQL、MariaDB、SQL Server などのデータベースタイプをサポートしています。
前提条件
開始する前に、以下を準備してください。
PTS コンソールへのアクセス
ターゲットデータベースインスタンスのエンドポイント、ポート、およびデータベース名
SQL ステートメントに必要な権限を持つデータベースアカウント
JDBC テストシナリオの作成
PTS コンソールにログインします。
左側のナビゲーションウィンドウで、[パフォーマンステスト] > [シナリオの作成] を選択し、[PTS] をクリックします。
デフォルトの HTTP API を削除し、JDBC API を追加します。
基本的なリクエストパラメーターを設定します。パラメーターの説明については、以下のパラメーター表をご参照ください。

以下の表にパラメーターを示します。
パラメーター
説明
例
API Name
API のサービス定義を識別する名前です。最大長: 20 文字。
API-1Database Type
接続するデータベースのタイプです。有効な値: MySQL、PostgreSQL、MariaDB、SQL Server。
MySQL
Database URL
<host>:<port>/<database_name>の形式のデータベース接続文字列です。以下の「データベース URL の形式」をご参照ください。rm-bp1xxxxxxx.mysql.rds.aliyuncs.com:3306/mydbUsername
データベース認証のユーザー名です。
test_userPassword
データベース認証のパスワードです。
your_passwordSQL
実行する SQL ステートメントです。
SELECT、UPDATE、INSERT、またはDELETEのいずれかのキーワードで始まる必要があります (大文字と小文字は区別されません)。以下の「SQL ステートメントのガイドライン」をご参照ください。select * from test_users;Timeout Duration
PTS がデータベースサーバーからの応答を待機する最大時間 (ミリ秒) です。
5000limit
結果セットから読み取る最大行数です。
SELECTステートメントにのみ適用されます。最大値: 1,000,000。1000
データベース URL の形式
[データベース URL] は、ホストアドレス、ポート番号、データベース名を 1 つにまとめた接続文字列です。ご使用のデータベース タイプに応じたフォーマットを使用してください。
| データベースタイプ | デフォルトポート | 例 URL |
|---|---|---|
| MySQL | 3306 | rm-bp1xxxxxxx.mysql.rds.aliyuncs.com:3306/mydb |
| PostgreSQL | 5432 | pgm-bp1xxxxxxx.pg.rds.aliyuncs.com:5432/mydb |
| MariaDB | 3306 | rm-bp1xxxxxxx.mariadb.rds.aliyuncs.com:3306/mydb |
| SQL Server | 1433 | rm-bp1xxxxxxx.sqlserver.rds.aliyuncs.com:1433/mydb |
プレースホルダーを実際の値に置き換えてください。
| プレースホルダー | 説明 | 例 |
|---|---|---|
<host> | ご利用のデータベースインスタンスのエンドポイントまたは IP アドレス | rm-bp1xxxxxxx.mysql.rds.aliyuncs.com |
<port> | ポート番号 (デフォルトポートまたは構成済みのカスタムポートを使用) | 3306 |
<database_name> | ターゲットデータベースの名前 | mydb |
注: 上記のポート番号はデフォルトです。ご利用のデータベースがカスタムポートを使用している場合は、それに応じてポート番号を置き換えてください。
SQL ステートメントのガイドライン
[SQL] フィールドは、以下のキーワードのいずれかで始まる文(大文字と小文字を区別しない)を受け入れます。
| キーワード | 操作 | 例 |
|---|---|---|
SELECT | データクエリ | select * from test_users where status = 'active'; |
INSERT | レコードの追加 | insert into test_users (name, email) values ('test', 'test@example.com'); |
UPDATE | レコードの変更 | update test_users set email = 'new@example.com' where id = 1; |
DELETE | レコードの削除 | delete from test_users where id = 1; |
負荷テストに関する考慮事項
SELECT 文には limit パラメーターを設定してください。大規模な結果セットは、負荷テスト中にメモリを消費し、パフォーマンスメトリクスを歪める可能性があります。[limit] は、テストシナリオに適した値に設定してください。
現実的な SQL ステートメントを使用します。有意義なパフォーマンスデータを取得するために、
WHERE句や結合を含む、実際の運用環境のクエリを反映したステートメントを記述してください。タイムアウト値を監視します。 SQL ステートメントで large テーブルや重い結合が使用される場合、ロードテスト中の誤検出の失敗を回避するために、[タイムアウト期間] を増加させます。