JMeterでSalesforceのテストシナリオを記録する手順
記録の対象は、申請で承認したサンドボックスだけです。ここではテンプレートを使ったシナリオ作成と、記録の絞り込み、ログイン情報を書き込まない工夫までを説明します。
サンドボックスで記録する
前回の記事で説明したとおり、SalesforceのJMeter負荷試験は事前承認制です。承認された対象はサンドボックスで、そのOrg IDも申請に含めています。この記事で作るシナリオも、その承認済みサンドボックスへ向けて記録します。本番組織のURLへ向けて記録しないでください。
サンドボックスにはいくつか種類があり、使える場面が違います。
| 種類 | 主な用途 |
|---|---|
| Developer | 開発・単体レベルの動作確認 |
| Developer Pro | Developerより大きいデータ量での開発・検証 |
| Partial Copy | 本番データの一部を使った受け入れテスト・結合テスト |
| Full | 本番の全データを複製した、性能試験・負荷試験・ステージング用 |
公式のヘルプは、Fullサンドボックスについて「Only Full sandboxes support performance testing, load testing, and staging.」と説明しています。負荷試験に使えるのはFullサンドボックスだけです。Partial CopyやDeveloperサンドボックスで測っても、性能の数字に意味がありません。
シナリオはテンプレートから作る
JMeterには、記録に必要な要素をまとめて用意してくれるテンプレートがあります。要素をひとつずつ追加するより早く始められます。
JMeterを起動する
前の記事で用意したJMeterを起動します。
Templatesを開く
メニューの「File」から「Templates…」を選びます。
Recordingを選ぶ
一覧から「Recording」を選ぶと、記録に必要な要素がまとめて入ったテスト計画が生成されます。
生成される内容は、スレッドグループ・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行目) | .*\.gif | GIF画像を記録から外します |
| Patterns to Exclude(2行目) | .*\.jpg | JPEG画像を記録から外します |
公式のリファレンスは、Include・Excludeのそれぞれが複数の正規表現を並べられるリストで、どれか1つに一致すれば適用されると説明しています。1つの欄に.*\.gif.*.*\.jpg.*のようにまとめて書くと、GIFとJPEGの両方を含む名前にしか一致しません。
ブラウザとHTTPS通信を記録する
ブラウザのプロキシ設定を変える
使うブラウザの手動プロキシ設定に、アドレス「127.0.0.1」・ポート「8888」を入れます。JMeter側のポート番号と合わせます。
HTTP(S) Test Script Recorderを開始する
「Start」ボタンを押すと、JMeterのインストールフォルダの
binに証明書ファイルApacheJMeterTemporaryRootCA.crtが作られます。証明書をブラウザに入れる
ブラウザの証明書設定から、生成された証明書を認証局として信頼する設定にします。この証明書がないと、HTTPSのページで警告が出て記録できません。
承認済みサンドボックスへログインする
ブラウザで対象サンドボックスのログイン画面を開き、ログインします。記録コントローラの下に、リクエストが記録されていきます。
⚠️ 証明書の有効期限は既定で7日です。期限が切れると記録中に警告が増えます。そのときはJMeterのインストールフォルダのbinにあるproxyserver.jksを削除すると、次の開始時に証明書が作り直されます。
ログイン情報を書き込まない
記録されたリクエストの中に、ログインのユーザー名・パスワードがそのまま入っていることがあります。このままテスト計画を保存すると、認証情報が平文でファイルに残ります。
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はテスト計画のファイルとは別に管理し、リポジトリやチャットへ貼らないでください。
ここで間違えやすい
| 間違い | 何が起きるか |
|---|---|
| 本番組織の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へ追い出し、テスト計画には残しません
参考:当時の画面
記事を最初に書いた当時の画面です。いまの手順と違うところは、各画像の説明に書いています。
Salesforceの導入・運用についてご相談ください
導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。