Windows · macOS · Linux · 無料 · オープンソース

SAP の認証と格闘せずに、テストに使える SAP API を。

SAP BAH Sandbox は、あなた自身の PC 上で動作します。Business Accelerator Hub から API 仕様をインポートすると、OData も含めて本物のサービスと同じように応答する mock ができます。製品や iFlow の接続先をそこに向けるだけです。さらに Hub のカタログを監視し、API やアーティファクトの新しいバージョンが公開されると知らせます。

Docker 不要、SAP の資格情報も不要 · MIT ライセンス · 自動更新

SAP API のテストに必要なものがすべて

小さなサーバー 1 つと SQLite ファイル 1 つで、mock、変更の追跡、テスト、トラフィック ログがそろいます。

SAP と同じように応答する mock

OpenAPI 3、Swagger 2、OData EDMX の仕様をインポートして mount します。コレクション、キー述語、$filter$select$orderby$top$skip、そして正しい V2 または V4 のエンベロープに対応します。データはジェネレーター、独自の fixture、ローカル AI、またはプロキシ経由の実際のバックエンドから取得できます。

API の変更がわかる

Hub のカタログ(約 1,950 のパッケージと 42,000 のアーティファクト、ログイン不要)をクロールし、すべてのバージョンを保持して、新規・変更・削除された内容のレポートを作成します。互換性のない変更にはフラグが付きます。形式は HTML、JSON、CSV です。

テスト スイートを自動で作成

操作ごとに 1 つのテストを仕様から作成し、ステータス コードを確認して、レスポンスをスキーマで検証します。実際の tenant 向けの読み取り専用モードと、パイプライン用の終了コードもあります。

iFlow が送信した内容を正確に確認

mock への呼び出しはすべて、ヘッダー、ボディ、タイミングとともに記録され、ブラウザーの開発者ツールのようにリアルタイムで表示されます。不正な JSON も 1 バイト単位でそのままです。

うまくいかないケースも

任意の mock に追加の遅延とエラー率を設定すれば、正常系だけでなく、統合のリトライや例外の分岐もテストできます。

自分でインストールし、自分で更新

コマンド 1 つで専用の Node ランタイムと一緒にインストールされ、ログイン時に起動します。新しいリリースはサンドボックスがアイドル状態のときに自動でインストールされ、データと設定はそのまま残ります。

5 分で動かせます

SAP 側にインストールするものはなく、アカウントの作成も不要です。

  1. インストールする最新リリースを展開し、お使いのシステム用のインストーラーを実行します。インストーラーは専用の Node ランタイムをダウンロードし、管理者キーを生成して、サンドボックスを起動します。
  2. 仕様をインポートして mount するapi.sap.com から仕様をダウンロードするか、tenant の $metadata を保存し、Mocks タブでインポートして [mount] を押します。すぐに /mock/<slug> で利用できます。
  3. 製品や iFlow の接続先に設定するhttp://<host>:8080/mock/<slug> を呼び出します。Cloud Foundry 上の Integration Suite の tenant から Cloud Connector、トンネル、nginx を使って接続する方法は、リポジトリで説明しています。

コマンド ラインから

# Windows (PowerShell), inside the unpacked release
powershell -ExecutionPolicy Bypass -File .\install\install.ps1

# macOS / Linux
./install/install.sh

# then
sapbah open                               # the UI in your browser
sapbah sync --filter SuccessFactors       # what changed on the Hub
sapbah test --mock s4-bp --read-only      # run the generated suite
sapbah update --check                     # is there a new release?

インストーラーは自動起動を登録します。Windows ではタスク スケジューラ、macOS では launchd、Linux では systemd を使います。チームで共有するサーバー向けに、システム全体へのインストールも用意しています。

データはあなたの PC から出ません

統合のトラフィックが見えるサンドボックスは、それを慎重に扱う必要があります。

設計からローカル

仕様、データセット、トラフィック ログは、あなたの PC 上の 1 つの SQLite ファイルに保存されます。プロキシ mock を設定しない限り、どこにも送信されません。

保護された管理 API

インストーラーが管理者キーを生成します。他の Web サイトがあなたのブラウザーから送信しようとするリクエストは拒否され、mock のレスポンスが管理ページでコードを実行することはありません。

シークレットはログに残しません

Authorization、Cookie、API key のヘッダーは、何かを保存する前に伏せられます。Hub の資格情報は任意です。カタログは公開されています。

テレメトリなし

サンドボックス自身が行う外部へのリクエストは、GitHub での新しいリリースの匿名チェックだけです。これも 1 つの設定でオフにできます。

無料でオープンソース、これからも

SAP BAH Sandbox は MIT ライセンスで公開されています。仕事で使うのも、改変するのも、共有するのも自由です。午後の作業時間を節約できたなら、少額の寄付がメンテナンスの継続に役立ちます。

よくある質問

SAP の資格情報は必要ですか?

いいえ。カタログの追跡には Hub の公開カタログを使い、mock はインポートした任意の仕様から動作します。Hub の API key またはログイン済みのセッションが必要なのは、仕様を自動でダウンロードする場合だけです。

SAP Integration Suite から mock を呼び出せますか?

はい。Cloud Foundry の tenant はプライベート アドレスに到達できないため、SAP Cloud Connector、Cloudflare Tunnel、または nginx を使ってください。リポジトリには、それぞれの動作する構成があります。

どの仕様に対応していますか?

OpenAPI 3、Swagger 2、OData EDMX に対応しています。tenant から保存した $metadata ドキュメントも使えます。OData エンジンは、統合が実際に送信するクエリ オプションをカバーしています。

自動更新はどのように動作しますか?

サンドボックスは 6 時間ごとに GitHub に最新リリースを問い合わせます。新しいリリースがあれば、15 分間アイドル状態が続いた時点でインストールし、データと設定は保持されます。[Update now] を押すことも、AUTO_UPDATE=false でオフにすることもできます。

macOS や Linux でも動きますか?

はい。同じインストーラーで両方に対応し、launchd エージェントまたは systemd ユーザー サービスを登録します。チーム全体で使うサーバー向けには、システム全体への systemd インストールがあります。

SAP の製品ですか?

いいえ。SAP とは提携していない、独立したオープンソース プロジェクトです。読み取るのは Hub の公開カタログと、あなたが渡した仕様だけです。