エンドツーエンドテスト、スケジュールされたブラウザチェック、スクリーンショット、および認可されたブラウザワークフローのために、永続的なLinux環境が必要なときにVPSインフラストラクチャ上でPlaywrightをデプロイします。 VoyraCloud Playwrightアプリケーションイメージは、Node.js、Playwright、Chromium、および必要なLinuxブラウザ依存関係を提供します。 SSHを介して接続し、自分のプロジェクトを追加し、ブラウザ制御サービスを公衆インターネットに公開することなく、ヘッドレスChromiumを実行します。
TL;DR
- VoyraCloud Playwrightイメージは、SSHファーストのランタイムであり、ホスティングされたブラウザダッシュボードや公開リモートブラウザAPIではありません。
- Node.js、Playwright、Chromium、およびLinuxブラウザ依存関係はUbuntuにプリインストールされているため、提供された例から始めて、自分のプロジェクトを追加できます。
- このイメージは、Playwright専用の公開ポートを開きません。レポートとトレースは、意図的に転送または提供しない限り、VPSに留まります。
- プロジェクトのPlaywrightパッケージは、提供されたブラウザバイナリと同じ正確なバージョンに保ってください。バージョンの不一致は、PlaywrightがChromiumを見つけたり起動したりするのを妨げる可能性があります。
- ブラウザジョブは、Chromiumサンドボックスが利用可能な非ルートユーザーとして実行します。サードパーティの認証情報をソースファイルやレポートに直接保存しないでください。
- 開始リソースゲートは、利用可能な製品プランに従います:Cloud VPSで4 vCPU、4 GB RAM、80 GBストレージ、またはResidential IP VPSで2 vCPU、4 GB RAM、60 GBストレージ、1つの検証されたChromiumセッションのための2 GBの共有メモリ環境。これは固定の同時実行性の約束ではありません。
- プロジェクトファイルと保存されたアーティファクトは、通常のVPS再起動を超えて持続します。メモリ内のブラウザセッション、一時的なコンテキスト、および未保存の状態は持続しません。
Playwrightアプリケーションイメージには何が含まれていますか?
Playwrightアプリケーションイメージには、認可された自動化作業を開始するために必要なブラウザランタイムが含まれており、プロジェクトコードと運用慣行はあなたの管理下にあります。 繰り返しのオペレーティングシステムの準備を取り除きますが、管理された自動化サービスは提供しません。
| イメージによって提供されるもの | ユーザー管理または含まれていないもの |
|---|---|
| Ubuntu Linuxランタイム | あなたのアプリケーションとテストコード |
| 互換性のあるNode.js環境 | プロジェクト固有のnpm依存関係 |
| 固定された安定したPlaywrightリリース | 自動Playwrightアップグレード |
| 一致するChromiumブラウザバイナリ | FirefoxまたはWebKit(インストールして検証しない限り) |
| 必要なLinuxブラウザ依存関係 | サードパーティのアカウント、クッキー、APIキー、またはターゲット認証情報 |
| SSHを介したヘッドレスブラウザ実行 | 公開ブラウザ制御エンドポイントまたはWebダッシュボード |
| 開始ゲートのために検証された2 GBの共有メモリ環境 | 保証された並列ブラウザ容量 |
| 永続的なVPSストレージ | 自動オフサーバーバックアップ |
| 提供された例とヘルスチェック | VoyraCloudによるカスタムスクリプトの開発またはデバッグ |
リソースの詳細は、VPSが作成されたときに提供されたPlaywrightバージョンを示します。その値は元のイメージ状態を説明します。後で自分のプロジェクトを更新しても自動的には変更されません。依存関係のロックファイルと運用ノートを、以降のユーザー管理変更の真実の源として保管してください。
クイックスタート:VPSにPlaywrightをデプロイする方法
最も迅速な方法は、PlaywrightイメージでVPSを作成し、SSHを介して接続し、提供されたランタイムを確認し、単一のワーカーで1つのChromiumテストを実行することです。 プロビジョニング後に開くブラウザダッシュボードはありません。
- VoyraCloud Playwrightページを開き、購入フローを続けます。
- 対象となるCloud VPSまたはResidential IP VPSプランを選択し、その製品によって現在提供されている任意の地域を選択します。
- ImagesセクションでPlaywrightが選択されていることを確認し、リソースを作成し、プロビジョニングが完了するまで待ちます。
- リソースの詳細を開き、表示されたSSH接続情報を使用します。
- ログイン後、提供されたNode.jsとPlaywrightのバージョンを確認します:
node --version
npx playwright --version
- 依存関係を変更する前に、イメージと共に提供された例を実行します。例はChromiumを起動し、テストページを開き、アサーションを行い、スクリーンショットを書き込むはずです。
- 提供されたヘルスチェックが成功した後にのみ、自分のプロジェクトを作成または転送します。
- 1つのChromiumワーカーから始め、メモリとディスクの使用状況を確認し、実際のプロジェクトを測定した後にのみワークロードを増やします。
このイメージは、Playwright専用のアクセスURLを必要としません。SSHが管理パスであり、デフォルトでは永続的なリモート制御ポートは有効になっていません。
VPS上でPlaywrightプロジェクトを作成するにはどうすればよいですか?
通常のNode.jsプロジェクトを作成し、そのPlaywright依存関係を提供されたランタイムによって示された正確なバージョンに固定します。 Playwrightパッケージとブラウザバイナリは一緒に移動するため、無関係な最新パッケージをインストールすると、健康なイメージが壊れる可能性があります。
非ルートユーザーが所有するディレクトリで開始します:
mkdir -p ~/playwright-project
cd ~/playwright-project
npm init -y
再度提供されたバージョンを確認します:
npx playwright --version
プロジェクトに同じ正確なバージョンをインストールします。 <same-version>を前のコマンドで表示された番号に置き換えます:
npm install --save-dev @playwright/test@<same-version>
homepage.spec.jsを作成します:
const { test, expect } = require('@playwright/test');
test('example page is reachable', async ({ page }) => {
await page.goto('https://example.com/', {
waitUntil: 'domcontentloaded',
});
await expect(page).toHaveTitle(/Example Domain/);
await page.screenshot({
path: 'artifacts/example-homepage.png',
fullPage: true,
});
});
playwright.config.jsに小さな設定を作成します:
const { defineConfig, devices } = require('@playwright/test');
module.exports = defineConfig({
testDir: '.',
outputDir: 'test-results',
workers: 1,
reporter: [['list'], ['html', { open: 'never' }]],
use: {
trace: 'retain-on-failure',
screenshot: 'only-on-failure',
...devices['Desktop Chrome'],
},
projects: [
{
name: 'chromium',
use: { browserName: 'chromium' },
},
],
});
スクリーンショットディレクトリを作成し、テストを実行します:
mkdir -p artifacts
npx playwright test homepage.spec.js --project=chromium --workers=1
この例は意図的に1つのChromiumワーカーと中立的な公開例ページを使用しています。URLは、あなたが所有、運営、またはテストする権限があるウェブサイトのみに置き換えてください。このイメージは、サードパーティサービスを自動化する許可を与えません。
ヘッドレスVPSでのレポートとトレースはどのように機能しますか?
Playwrightのレポートとトレースは、あなたのプロジェクトによって生成されたファイルであるため、VPSに保存され、永続的な公開サービスを開かずにレビューできます。 これは、テストがサーバー環境でのみ失敗する場合に特に便利です。
例の設定は以下を記録します:
listレポータからのターミナル結果。playwright-report/の下にあるHTMLレポート。test-results/の下にあるテスト添付ファイルと失敗出力。traceがretain-on-failureに設定されているため、失敗したテストのトレース。- 設定されたアーティファクトの場所にあるスクリーンショット。
HTMLレポートを安全に表示するには、ループバックインターフェースで一時サーバーを起動します:
npx playwright show-report --host 127.0.0.1 --port 9323
自分のコンピュータで、リソースの詳細から接続値を使用してSSHトンネルを作成します:
ssh -L 9323:127.0.0.1:9323 <ssh-user>@<server-ip>
その後、ローカルコンピュータでhttp://127.0.0.1:9323を開きます。終了したらレポートプロセスを停止します。レポートビューワーを0.0.0.0にバインドしたり、インターネットに直接公開したりしないでください。レポートにはページテキスト、URL、スクリーンショット、ヘッダー、エラーメッセージ、およびその他の機密テスト証拠が含まれる可能性があります。
保存されたトレースには、Playwrightのトレースビューワーを使用します:
npx playwright show-trace test-results/<trace-file>.zip
ビューワーがローカルHTTPプロセスを開始する場合、同じループバックおよびSSHトンネルモデルを使用します。また、トレースを信頼できるワークステーションに転送し、公式ツールを使用して検査することもできます。トレースアーカイブは、DOMスナップショット、ネットワーク情報、スクリーンショットを含む可能性があるため、潜在的に機密情報として扱ってください。
なぜPlaywrightとChromiumのバージョンを一致させる必要がありますか?
Playwrightは、自身のリリース用にビルドされたブラウザバイナリを期待するため、パッケージと提供されたChromiumリビジョンは整合性を保つ必要があります。 公式のPlaywrightドキュメントは、正確なバージョンを固定することを推奨し、不一致の環境ではブラウザ実行可能ファイルを見つけられない可能性があることを警告しています。
| 変更 | 安全なアプローチ | 避けるべきリスク |
|---|---|---|
| 新しいプロジェクトにPlaywrightを追加 | 提供された正確なバージョンをインストール | 無関係な最新バージョンをインストール |
| Playwrightパッケージを更新 | 同じメンテナンスウィンドウ内でブラウザバイナリを更新 | npm依存関係のみを更新 |
| Node.jsを変更 | ターゲットのPlaywrightリリースがそれをサポートしていることを確認 | テストなしでNode.jsをアップグレード |
| FirefoxまたはWebKitを追加 | 一致するブラウザと依存関係をインストールして検証 | すべてのブラウザがプリインストールされていると仮定 |
| ロックファイルを再構築 | 解決されたPlaywrightバージョンを確認 | 広範なセマンティックバージョニング範囲を放置 |
| ロールバック | パッケージロック、ブラウザバイナリ、およびプロジェクトを一緒に復元 | 1つのレイヤーのみをロールバック |
更新する前に、作業中のバージョンを記録します:
node --version
npx playwright --version
npm ls @playwright/test
その後、プロジェクトとロックファイルをバックアップします。 公式のPlaywright更新手順に従い、パッケージとブラウザ依存関係の両方を更新します。変更後は、提供されたヘルスチェックパターンと独自のスモークテストを実行します。VoyraCloudは、既存のPlaywright環境を自動的にアップグレードしたり、ユーザー管理の組み合わせに対する互換性を保証したりしません。
Playwrightはどのように安全に実行すべきですか?
Playwrightは、Chromiumサンドボックスが利用可能で、最小限の認証情報を持ち、不必要な公開リスナーを持たない専用の非ルートユーザーとして実行するべきです。 ブラウザは、開くページからの複雑なコンテンツを処理するため、必要なワークロード以上のホスト権限を受けるべきではありません。
これらの運用ルールを使用します:
- プロジェクトコマンドを非ルートアカウントから実行します。
sudo npx playwright testを使用しないでください。 - ルート実行がそれを無効にするのではなく、Chromiumサンドボックスを有効のままにします。
- 秘密情報は、テストソース、スクリーンショット、レポート、またはシェル履歴にではなく、制限された環境ファイルまたは秘密管理者に保存します。
- ターゲットドメインを、あなたが所有するシステムまたはテストする許可を持つシステムに制限します。
- CAPTCHA、アクセス制御の課題、アカウントの警告、支払いゲート、または繰り返しの認証失敗で停止します。
- SSHアクセスを強力な認証と現在のオペレーティングシステムのセキュリティ更新で保護します。
- HTMLレポート、トレースビューワー、デバッグエンドポイント、またはカスタムブラウザサーバーを公衆インターネットに公開しないでください。
- 生成されたアーティファクトを共有する前にレビューしてください。ページコンテンツやテストデータがスクリーンショットやトレースに表示される可能性があります。
公式のPlaywright Dockerガイダンスは、同じ特権の区別を行います:ルートは、閉じ込められた環境内の信頼されたエンドツーエンドテストコードには許容されるかもしれませんが、ブラウザコンテンツが完全に信頼されていない場合は、別のユーザーとサンドボックス制御が推奨されます。VoyraCloudイメージはSSHファーストのネイティブランタイムを使用しています。後でプロジェクトをコンテナに配置する場合、そのコンテナのユーザー、サンドボックス、初期プロセス、および共有メモリを自分で構成する必要があります。
2 GBの共有メモリ要件は何を意味しますか?
2 GBの共有メモリ要件は、Chromiumに1つの検証された開始ワークロードのための余地を与えますが、特定の並列ページやブラウザの数を保証するものではありません。 Chromiumはレンダラープロセスに共有メモリを使用し、十分なスペースがないと、ランダムなテスト失敗のように見えるクラッシュを引き起こす可能性があります。
利用可能な共有メモリファイルシステムを確認します:
df -h /dev/shm
VoyraCloudイメージの受け入れゲートは、2 GBの共有メモリ環境での開始構成で1つのヘッドレスChromiumセッションを検証します。実際の需要は、ページの複雑さ、ビデオとトレースのキャプチャ、ブラウザコンテキスト、拡張機能、ダウンロード、テストデータ、および同時ワーカーの数によって異なります。
後で独自のDockerデプロイメントを作成する場合、ホスト設定は自動的に新しいコンテナが同じ許可を受けることを保証しません。 Playwrightの公式Chromiumガイダンスに基づいてコンテナを構成し、その後独立してテストしてください。
PlaywrightにはどれくらいのVPS容量が必要ですか?
Playwrightの容量は、ブラウザの数、ページの複雑さ、アーティファクト、および同時実行性に依存するため、最小限は狭いワークロードのための検証されたエントリーゲートに過ぎません。 初期購入ゲートは、Cloud VPSで4 vCPU、4 GB RAM、80 GBストレージ、またはResidential IP VPSで2 vCPU、4 GB RAM、60 GBストレージであり、対応するプランが地域の受け入れテストに合格した後に提供されます。
| ワークロード | 容量ガイダンス |
|---|---|
| 1つのスケジュールされたChromiumスモークテスト | エントリーゲートの適切な開始ケース |
| 小さなシリアルエンドツーエンドスイート | 1つのワーカーから始めて測定 |
| スクリーンショットが多いテスト | ディスクの成長とメモリ使用を監視 |
| ビデオとトレースの保持 | 追加のストレージとクリーンアップを計画 |
| 複数の並列ワーカー | ワークロード固有のテストが必要で、より多くのリソースが必要な可能性があります |
| 複数のブラウザまたは大きなページ | ワークロード固有のテストが必要です |
| 長時間実行される自動化サービス | 監視、ロギング、モニタリング、および測定された容量を追加 |
Playwright Testはファイルを並列で実行できますが、デフォルトのワーカー数は容量の約束ではありません。 --workers=1から始め、CPU、メモリ、共有メモリ、テストの持続時間、およびディスク使用を観察し、徐々に増やします。並列プロジェクト、ビデオ、または大きなトレース保持を有効にする前に、より大きなプランが必要になる場合があります。
再起動後に持続するものは何ですか?
永続的なVPSストレージに書き込まれたファイルは、通常の再起動後も残りますが、メモリ内のライブブラウザ状態は残りません。 サーバーを再起動する前に、重要なアーティファクトや状態ファイルをすべて保存してください。
永続的なファイルには以下が含まれる可能性があります:
- あなたのNode.jsプロジェクトとロックファイル。
- Playwright設定とテストソース。
- スクリーンショット、ビデオ、HTMLレポート、およびトレースアーカイブ。
- 意図的に保存されたストレージ状態ファイル。
- あなた自身のログとプロセス設定。
再起動が保持することを期待しないでください:
- 実行中のChromiumプロセス。
- オープンページまたはメモリ内のブラウザコンテキスト。
- 未保存のクッキー、ローカルストレージ、またはJavaScript状態。
- プロジェクトが削除または永続的なパスの外に書き込む一時ファイル。
- プロセス監視と再起動処理なしで実行されていたジョブ。
持続性はバックアップではありません。レポート、プロジェクト、または状態ファイルがビジネスにとって重要な場合は、適切な暗号化と保持を伴ってオフサーバーの宛先にコピーしてください。認証状態のバックアップは、必要であり、保護され、明確なローテーションポリシーに従っている場合を除いて避けてください。
PlaywrightにはCloud VPSまたはResidential IP VPSが必要ですか?
Cloud VPSは、一般的なPlaywright開発、QA、および認可された自動化のための主要な選択肢であり、Residential IP VPSは、安定した住宅ネットワークの起源が正当なテスト要件の一部である場合にのみ関連します。
Cloud VPSを使用する理由:
- あなたが所有するアプリケーションに対するエンドツーエンドテスト。
- スケジュールされた本番スモークチェック。
- 内部ブラウザワークフロー。
- スクリーンショット生成と回帰テスト。
- データセンターのネットワークアイデンティティが許容される自動化。
Residential IP VPSは、許可された地域QAまたは監視に関連する場合があります。ここでは、同じ安定した住宅ネットワークアイデンティティを維持する必要があります。これは、アンチ自動化制御を回避したり、CAPTCHAを解決したり、アカウントを保護したり、すべてのターゲットに到達することを約束するものではありません。ネットワーク関連の障害についての詳細な議論については、なぜPlaywrightがVPSでブロックされるのかをお読みください。
本番前チェックリスト
Playwright VPSは、ランタイム、セキュリティ、リソースの動作、アーティファクト、および回復パスがあなたのプロジェクトでテストされた後にのみ、定期的な使用の準備が整います。
node --versionとnpx playwright --versionを確認します。- 環境を変更せずに提供されたChromiumヘルスチェックを実行します。
- プロジェクトのロックファイルに同じPlaywrightバージョンを固定します。
- 非ルートユーザーとして実行し、Chromiumがサンドボックスで起動することを確認します。
- 1つのChromiumワーカーから始め、2 GBの共有メモリ環境を確認します。
- スクリーンショット、HTMLレポート、および失敗トレースを保存します。
- ループバックリスナーとSSHトンネルを介してレポートを表示します。
- VPSを再起動し、スモークテストを再実行します。
- 必要なプロジェクトファイルとアーティファクトが持続したことを確認します。
- ビジネスクリティカルなコードとデータのオフサーバーバックアップを構成します。
- 認証情報を保護し、共有する前にレポートから秘密を削除します。
- 許可されたターゲット、レート制限、および停止条件を文書化します。
FAQ
PlaywrightイメージにはWebダッシュボードが含まれていますか?
いいえ、PlaywrightイメージにはWebダッシュボードや公開ブラウザ制御エンドポイントは含まれていません。 SSHを介して接続し、自分のNode.jsまたはPlaywright Testプロジェクトを実行します。一時的なレポートビューワーは127.0.0.1にバインドし、SSHトンネルを介してアクセスする必要があります。
どのブラウザが含まれていますか?
このイメージには、提供された安定したPlaywrightリリースに一致するChromiumが含まれています。 FirefoxおよびWebKitは、明示されたデフォルトの配信の一部ではありません。追加の一致するブラウザを自分でインストールすることはできますが、その依存関係とリソース使用を検証する必要があります。
npmでPlaywrightを更新できますか?
はい、しかしPlaywrightパッケージとそのブラウザバイナリを一緒に更新し、その後環境を再テストしてください。 まず、作業中のバージョンとロックファイルを保存します。既存のVoyraCloudリソースは、作成後に自動的にアップグレードされません。
このVPSは何人のPlaywrightワーカーを実行できますか?
固定のワーカーまたは同時実行性の保証はありません。 開始ゲートは、Cloud VPSで4 vCPU、4 GB RAM、80 GBストレージ、またはResidential IP VPSで2 vCPU、4 GB RAM、60 GBストレージで2 GBの共有メモリを持つ1つのChromiumセッションを検証します。並列容量は、あなたのページ、アーティファクト、コード、およびランタイムの動作に依存します。
再起動後にレポートやトレースは利用可能ですか?
保存されたレポートおよびトレースファイルは、VPSストレージに書き込まれた場合は持続しますが、アクティブなセッションや未保存の状態は持続しません。 持続性はオフサーバーバックアップを置き換えるものではありません。
Playwrightをrootとして実行すべきですか?
いいえ、通常のブラウザジョブには非ルートユーザーを使用し、Chromiumサンドボックスを利用可能に保ちます。 ルート実行は、ブラウザやテストコードの侵害の影響を増大させ、一般的な構成でChromiumサンドボックスを無効にする可能性があります。
このイメージにはプロキシ、クッキー、またはウェブサイトアカウントが含まれていますか?
いいえ、このイメージにはプロキシサービス、クッキー、APIキー、ウェブサイトアカウント、またはサードパーティの認証情報は含まれていません。 あなたは秘密、権限、ターゲットポリシー、および適用法に対して責任があります。
PlaywrightはCAPTCHAやアンチボット制御を回避できますか?
そのような能力や結果は含まれていないか、約束されていません。 CAPTCHA、アクセス制限、または繰り返しの認証失敗は、レビューのためにワークフローを停止するべきです。利用可能な場合は公式APIまたは書面による認可を使用してください。
結論
VPSにPlaywrightを信頼性高くデプロイするには、プリインストールされたランタイムから始め、プロジェクトを提供されたPlaywrightバージョンに固定し、1つのサンドボックス化されたChromiumワーカーを実行し、意図的に保存したファイルのみを保持します。 VoyraCloudイメージは、SSHアクセス、プロジェクトコード、認証情報、更新、容量計画、およびバックアップをあなたの管理下に保ちながら、環境セットアップを短縮します。
VoyraCloud Playwrightアプリケーションイメージを使用して、デフォルトでPlaywright専用の公開ポートが有効になっていないSSHファーストのブラウザ自動化ランタイムを利用してください。

