メインコンテンツへスキップ
SDETRole
SDETRole

API テスト

cURL→コード変換ツール

curl コマンドを Playwright、REST Assured、Python のコードに変換。

すべてブラウザ内で動作 登録不要

cURL command

Paste from docs, a bug report or your browser’s “Copy as cURL”. Bash, cmd (^) and PowerShell (`) line continuations all work.

Code

このツールについて

API ドキュメント、バグレポート、ブラウザの「Copy as cURL」(cURL としてコピー)はどれも curl コマンドを渡してきますが、テストスイートに必要なのはコードです。このツールは、シングル・ダブルクォート、$'…' 形式の文字列、bash・cmd・PowerShell の行継続など、シェルと同じようにコマンドを解析し、request フィクスチャを使う Playwright テスト、REST Assured の given/when/then チェーン、Python の requests 呼び出し、JavaScript の fetch に変換します。メソッド、URL とクエリ文字列、ヘッダー、-u による Basic 認証、JSON・フォーム・生データのボディ、-k と --max-time オプションを保持します。マルチパートのアップロード(-F)やクライアント証明書など変換できないオプションは、黙って捨てずに一覧表示するため、手で追加すべきものがわかります。すべてブラウザ内で動作し、貼り付けた内容がどこかに送信されることはありません。

使い方

  1. 左のパネルに curl コマンドを貼り付けるか、「Load sample」(サンプルを読み込む)をクリックします。
  2. Playwright、REST Assured、Python requests、fetch から選びます。入力に合わせてコードが更新されます。
  3. コードをテストにコピーし、例のアサーションをテストに必要なものに置き換えます。先にリクエストを変更したい場合は、「Edit in cURL generator」(cURL 生成ツールで編集)をクリックします。

出力を本物のテストにする

変換されたコードは同じリクエストを送りますが、何かをアサートするまではテストとは言えません。まずステータス(Playwright では await expect(response).toBeOK()、REST Assured では then().statusCode(200))をアサートし、次にボディ全体ではなく、振る舞いを証明するフィールドをアサートします。ID、タイムスタンプ、トークンは実行ごとに変わるため、値ではなく型やフォーマットを確認します。

コミットする前に、秘密情報をコードから取り除いてください。ブラウザからコピーしたコマンドには、有効なセッション Cookie や Bearer トークンが含まれていることがよくあります。代わりに環境変数やログイン用のフィクスチャから読み込み、共有してしまったトークンはローテーションしてください。

「Copy as cURL」(cURL としてコピー)が追加するもの、削除してよいもの

  • sec-ch-ua、sec-fetch-*、user-agent、accept-language、priority などのブラウザ由来のヘッダー。API で必要になることはまれで、テストが読みにくくなります。
  • セッションを含む Cookie ヘッダー。Playwright の storageState やフィクスチャでのトークン取得など、きちんとした認証ステップに置き換えます。
  • Referer と Origin。CSRF 対策などで API がチェックしている場合のみ残します。
  • Windows 用の「Copy as cURL (cmd)」(cURL としてコピー (cmd))や「(PowerShell)」はクォートの方式が異なりますが、このツールはどちらも理解できます。

cURL→コード変換ツール のよくある質問

curl を Playwright の API テストに変換するには?

コマンドを貼り付けて Playwright を選びます。出力は組み込みの request フィクスチャを使うテストで、request.post(url, { headers, data }) の後に expect(response.ok()).toBeTruthy() が続きます。これを、ステータスやテストで重要なフィールドに対するアサーションに置き換えてください。npx playwright test で実行でき、ブラウザも不要なので、UI テストと同じスイートで API チェックを行えるほど高速です。

どの curl オプションに対応していますか?

-X、-H、-d、--data、--data-raw、--data-binary、--data-urlencode、--json、-u、-G、-I、-i、-L、-k、--compressed、--max-time、-A(ユーザーエージェント)、-e(リファラー)、-b(Cookie ヘッダーとして送信)に加え、bash・cmd・PowerShell のクォートと行継続に対応しています。-F によるマルチパートのアップロードや --cert など、それ以外のものは警告として一覧表示されるので、手で追加できます。

変換したリクエストの動作が curl と違うのはなぜですか?

多くの場合、リダイレクトかデフォルト設定が原因です。curl は -L を付けたときだけリダイレクトに従いますが、Playwright、REST Assured、Python requests、fetch はデフォルトで従います。また curl は Content-Type を指定しない限り POST のボディをフォームデータとして送るため、API が変換後のリクエストを拒否する場合はそのヘッダーを確認してください。

コマンドはサーバーに送信されますか?

いいえ。解析とコード生成はブラウザ内で行われ、何もアップロード・記録されません。それでも、共有するバグレポートやコードにコマンドを貼る前には、トークンや Cookie を削除してください。

キーワードを入力すると SDETRole 全体を検索できます。

Pagefind による全文検索 · ブラウザ内で動作します 検索ページを開く →