開発環境・ツール

JMeterでSalesforceのテストシナリオを記録する手順

記録の対象は、申請で承認したサンドボックスだけです。ここではテンプレートを使ったシナリオ作成と、記録の絞り込み、ログイン情報を書き込まない工夫までを説明します。

2024.11.14

サンドボックスで記録する

前回の記事で説明したとおり、SalesforceのJMeter負荷試験は事前承認制です。承認された対象はサンドボックスで、そのOrg IDも申請に含めています。この記事で作るシナリオも、その承認済みサンドボックスへ向けて記録します。本番組織のURLへ向けて記録しないでください。

サンドボックスにはいくつか種類があり、使える場面が違います。

種類主な用途
Developer開発・単体レベルの動作確認
Developer ProDeveloperより大きいデータ量での開発・検証
Partial Copy本番データの一部を使った受け入れテスト・結合テスト
Full本番の全データを複製した、性能試験・負荷試験・ステージング用

公式のヘルプは、Fullサンドボックスについて「Only Full sandboxes support performance testing, load testing, and staging.」と説明しています。負荷試験に使えるのはFullサンドボックスだけです。Partial CopyやDeveloperサンドボックスで測っても、性能の数字に意味がありません。

シナリオはテンプレートから作る

JMeterには、記録に必要な要素をまとめて用意してくれるテンプレートがあります。要素をひとつずつ追加するより早く始められます。

  1. JMeterを起動する

    前の記事で用意したJMeterを起動します。

  2. Templatesを開く

    メニューの「File」から「Templates…」を選びます。

  3. Recordingを選ぶ

    一覧から「Recording」を選ぶと、記録に必要な要素がまとめて入ったテスト計画が生成されます。

エクスプローラの一覧でjmeter.batが選ばれている
JMeterを起動するファイルです。binフォルダの赤枠のバッチから起動します。
JMeterの初期画面。左のツリーにテスト計画だけがある状態
起動直後の画面です。ここからテンプレートを開くと、要素がまとめて入ります。

生成される内容は、スレッドグループ・HTTP(S) Test Script Recorder・その配下の記録コントローラ・HTTP Request Defaults・結果をツリーで表示、です。

⚠️ 「HTTPプロキシサーバ」という名前は、いまはありません。同じ役目の要素は、公式のリファレンスで「HTTP(S) Test Script Recorder(旧: HTTP Proxy Server)」と、名前が変わったことが明記されています。手動で追加するときは「Non-Testエレメント」から探します。

記録の対象を絞る

記録するリクエストを絞らないと、画像やCSSまで記録されて見づらくなります。Include・Excludeは、それぞれ複数の行に分けて登録します。1つの行に複数条件を詰め込みません。

項目入れる値効果
Patterns to Include.*force\.com.*Salesforceへのリクエストだけを記録します。salesforce.comとLightning Experienceの画面(lightning.force.com)の両方に一致します
Patterns to Exclude(1行目).*\.gifGIF画像を記録から外します
Patterns to Exclude(2行目).*\.jpgJPEG画像を記録から外します

公式のリファレンスは、Include・Excludeのそれぞれが複数の正規表現を並べられるリストで、どれか1つに一致すれば適用されると説明しています。1つの欄に.*\.gif.*.*\.jpg.*のようにまとめて書くと、GIFとJPEGの両方を含む名前にしか一致しません。

ブラウザとHTTPS通信を記録する

  1. ブラウザのプロキシ設定を変える

    使うブラウザの手動プロキシ設定に、アドレス「127.0.0.1」・ポート「8888」を入れます。JMeter側のポート番号と合わせます。

  2. HTTP(S) Test Script Recorderを開始する

    「Start」ボタンを押すと、JMeterのインストールフォルダのbinに証明書ファイルApacheJMeterTemporaryRootCA.crtが作られます。

  3. 証明書をブラウザに入れる

    ブラウザの証明書設定から、生成された証明書を認証局として信頼する設定にします。この証明書がないと、HTTPSのページで警告が出て記録できません。

  4. 承認済みサンドボックスへログインする

    ブラウザで対象サンドボックスのログイン画面を開き、ログインします。記録コントローラの下に、リクエストが記録されていきます。

ブラウザの設定画面。ネットワーク設定の接続設定ボタンが強調されている
ブラウザ側の入口です。赤枠の接続設定からプロキシの手動設定を開きます。
ブラウザの接続設定。手動プロキシに127.0.0.1とポート8888が入っている
プロキシの手動設定です。赤枠のアドレスとポートをJMeter側と合わせます。
ブラウザの証明書マネージャー。認証局証明書タブのインポートが強調されている
証明書の取り込み口です。赤枠のインポートから、生成された証明書を選びます。
ファイル選択画面でApacheJMeterTemporaryRootCA.crtが選ばれている
JMeterのbinにできる証明書ファイルです。これを選んで開きます。
証明書のインポート確認画面。ウェブサイトの識別を信頼するにチェックが入る
信頼の設定です。赤枠のウェブサイトの識別にチェックを入れてOKを押します。
ブラウザでSalesforceの設定ホーム画面が表示されている
対象組織へログインしたところです。向ける先は承認済みサンドボックスだけです。

⚠️ 証明書の有効期限は既定で7日です。期限が切れると記録中に警告が増えます。そのときはJMeterのインストールフォルダのbinにあるproxyserver.jksを削除すると、次の開始時に証明書が作り直されます。

証明書が作られたことを知らせるダイアログ。有効期限は7日と書かれている
開始時に出る案内です。赤枠の中に、有効期限が7日であることが書かれています。

ログイン情報を書き込まない

記録されたリクエストの中に、ログインのユーザー名・パスワードがそのまま入っていることがあります。このままテスト計画を保存すると、認証情報が平文でファイルに残ります。

CSV Data Set Configを使うと、値を外部ファイルへ追い出せます。

username,password
xxxxxxxx@example.com,xxxxxxxx

login.csvの中身の例です。実際の値はここに書かず、別のファイルとして管理します。

HTTP Requestの該当パラメータを${username}・${password}に置き換え、CSV Data Set Configの「Filename」にlogin.csvのパスを指定します。このlogin.csvはテスト計画のファイルとは別に管理し、リポジトリやチャットへ貼らないでください。

テスト計画の保存ダイアログ。ファイル名の欄にjmxの名前が入っている
テスト計画の保存です。このjmxにログイン情報を残さないよう気をつけます。

ここで間違えやすい

間違い何が起きるか
本番組織のURLへ向けて記録する未承認の負荷を本番へかけることになります
Partial Copyサンドボックスで負荷試験する性能の数字に意味がありません。Fullサンドボックスを使います
Include・Excludeを1行にまとめる意図した条件で絞り込めません
ログインのユーザー名・パスワードをそのままテスト計画に残すファイルを共有した相手に認証情報が渡ります

確認した環境

  • 2026年9月/HTTP(S) Test Script Recorderの名称変更とInclude・Exclude・CSV Data Set Configの仕様をjmeter.apache.orgの公式リファレンスで、サンドボックスの種類はhelp.salesforce.comで確認しています
  • 記録は、承認済みのサンドボックスに対してだけ行ってください

まとめ

  • 記録の対象は、承認済みのFullサンドボックスです。本番やPartial Copyには向けません
  • シナリオは「File」から「Templates…」で「Recording」を選ぶとまとめて作れます。「HTTPプロキシサーバ」はいまの「HTTP(S) Test Script Recorder」です
  • Include・Excludeは行を分けて登録します。1行にまとめると意図通りに絞り込めません
  • 証明書の有効期限は既定7日です。切れたらproxyserver.jksを削除して作り直します
  • ログインのユーザー名・パスワードはCSV Data Set Configへ追い出し、テスト計画には残しません

参考:当時の画面

記事を最初に書いた当時の画面です。いまの手順と違うところは、各画像の説明に書いています。

テスト計画を右クリックし、追加からスレッドグループを選ぶメニュー
要素を1つずつ手で足しています。
スレッドグループの追加メニューでロジックコントローラの記録コントローラを選ぶ
記録コントローラを手で足しています。
追加メニューのNon-TestエレメントからHTTPプロキシサーバを選んでいる
この要素が、いまのHTTP(S) Test Script Recorderの旧名です。
HTTPプロキシサーバの設定画面。記録先のコントローラを選ぶドロップダウン
記録先のコントローラを選びます。
Requests FilteringタブのInclude欄にsalesforce.comのパターンが入っている
赤枠のIncludeの書き方を見てください。
Exclude欄に複数の拡張子パターンが1行にまとめて入力されている
赤枠のように詰めると絞り込めません。
記録用要素の設定画面で開始ボタンが強調されている
赤枠の開始で記録が始まります。
記録開始後に出るRecorder: Transactions Controlの小窓
記録中はこの小窓が出たままです。
記録コントローラの下に記録されたリクエストが並んでいる
赤枠に操作が記録されていきます。
追加メニューのリスナーから結果をツリーで表示を選んでいる
結果を見るリスナーを足しています。
実行前に、テスト計画を先に保存するか尋ねる警告ダイアログ
保存前に中身を確かめてください。
実行後の画面。結果をツリーで表示に記録したリクエストの結果が並んでいる
赤枠に実行した結果が出ます。

Salesforceの導入・運用についてご相談ください

導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。