クロムとは何ですか? 定義、使用法、決定

クロムとは何ですか?

Scrapeless Scraping Browserは、クラウドブラウザ自動化用の独自開発のクロムベースのブラウザ環境を使用します。

要約

  • クロムは、いくつかの製品、特にGoogle Chromeで使用されるコアブラウザ技術を提供するオープンソースブラウザプロジェクトです。 概念の残りは、その状態、制御面、およびライフタイムによって定義されます。
  • 境界はラベルよりも重要です。 ブラウザ、コンテキスト、ページ、プロファイル、セッション、ビューポート、ネットワークアイデンティティは、異なるレイヤーを説明します。
  • 再現性には明示的な構成が必要です。 結果に影響を与えるブラウザのビルド、状態ソース、ロケール、ビューポート、ネットワーク経路、完了条件を記録します。
  • 可視性と持続性は別の選択です。 実行はリモートで可視化できるが短命であるか、長寿命のプロファイルデータを書く間は見えないことがあります。
  • 責任ある自動化はスコープから始まります。 承認されたアカウントと公開または認可されたデータを使用し、適用される規則を尊重し、資格情報をログから除外します。

クロムとは何ですか?

クロムは、いくつかの製品、特にGoogle Chromeで使用されるコアブラウザ技術を提供するオープンソースブラウザプロジェクトです。これには、ブラウザプロセス、レンダリングインフラストラクチャ、ネットワーキング、ストレージ、セキュリティ境界、開発者ツール、およびWebリソースをインタラクティブなページに変えるブリンクとV8コンポーネントが含まれます。

クロムはプロジェクトとコードベースであり、そこから構築されたすべてのブラウザの同義語ではありません。下流のブラウザは、ブランディング、更新チャネル、メディアコンポーネント、アカウント統合、ポリシー、テレメトリーの選択肢、および製品固有のサービスを追加できます。したがって、自動化のドキュメントは、ストッククロム、クロム、または他のクロムベースの配布をターゲットにしているかどうかを明示する必要があります。

正確な定義は、チームがツールを選択し、障害を診断するのに役立ちます。エンジニアが複数のレイヤーに同じ単語を使用する場合、クッキーの問題はブラウザの問題と誤解される可能性があり、ビューポートの不一致は欠落データと誤解され、閉じた制御接続は失われたプロファイル状態と誤解される可能性があります。境界を明確にすることで、修正が小さくなります。

クロムはリソースをブラウザページに変える方法

クロムがリソースをブラウザページに変える方法は、ブラウザと自動化クライアントによって制御される一連の状態遷移として理解できます。正確なAPIは異なりますが、ナビゲーション、レンダリング、ストレージ、入力、観察、およびクリーンアップは、荷重を支える部分として残ります。

ブラウザプロセス

ブラウザプロセスは、トップレベルの調整、ナビゲーションポリシー、ウィンドウ、許可、およびタブとレンダラープロセスの関係を所有します。ページコードが直接実行すべきでない特権操作を仲介します。

ブラウザプロセスは、運用において観測可能であるべきです。それに影響を与える構成を記録し、ページが必要な状態に達したポイントで証拠をキャプチャし、リソースを意図的に閉じます。その実践は、ブラウザの実行を説明可能な操作に変え、1台のマシンでのみ機能するシーケンスではなくなります。

レンダラープロセス

レンダラープロセスは、Webコンテンツを解釈して実行します。ブリンクはドキュメントの解析とレイアウトを処理し、V8はJavaScriptを実行します。プロセスの分離は、レンダラーフォールトの影響を制限し、サイト間の分離をサポートします。

レンダラープロセスは、運用において観測可能であるべきです。それに影響を与える構成を記録し、ページが必要な状態に達したポイントで証拠をキャプチャし、リソースを意図的に閉じます。その実践は、ブラウザの実行を説明可能な操作に変え、1台のマシンでのみ機能するシーケンスではなくなります。

開発者プロトコル

クロムは、Chrome DevTools Protocolを通じてデバッグ機能を公開します。自動化ライブラリは、この制御面の上に高レベルのナビゲーション、入力、ネットワーク、および検査APIを構築します。

開発者プロトコルは、運用において観測可能であるべきです。それに影響を与える構成を記録し、ページが必要な状態に達したポイントで証拠をキャプチャし、リソースを意図的に閉じます。その実践は、ブラウザの実行を説明可能な操作に変え、1台のマシンでのみ機能するシーケンスではなくなります。

ブラウザ用語は、主な定義に結びついているときに使いやすくなります。 クロムプロジェクト は、最も直接的にコア概念を説明しています。 クロムのマルチプロセスアーキテクチャ は、隣接する制御またはアーキテクチャ境界を定義し、 クロムヘッドレスモード は、第二の実装視点を提供します。これらのソースは、標準とブラウザの動作を説明します。製品の選択は、依然としてワークフロー、セキュリティモデル、およびターゲット環境に依存します。

クロム、クロム、および自動化ライブラリ

クロム、クロム、および自動化ライブラリは、日常的な議論でしばしば圧縮される用語を分けます。この表は、ブランド固有のAPI名よりも、所有権と運用効果に焦点を当てています。

概念主要な意味運用役割典型的な適合
それが何かオープンソースのブラウザプロジェクトGoogleブラウザ製品ブラウザを制御するクライアント
レンダリングの責任BlinkとV8を含むChromiumの基盤を使用選択したブラウザにレンダリングを委譲
リリースとパッケージングプロジェクトのビルドとスナップショットGoogleのリリースチャンネルと製品サービスライブラリパッケージと互換性のあるブラウザビルド
なぜそれが重要かエンジンの動作を定義するエンドユーザー環境を表す自動化の人間工学を定義する

これらのカテゴリは1つのアーキテクチャの中で共存可能です。クラウドの割り当ては、ヘッドレスChromiumプロセスを実行し、隔離されたコンテキストを作成し、複数のページを開き、各ページに1つのビューポートを適用し、永続的なプロファイルを添付することができます。このアーキテクチャは、各名詞が自分の役割を保持する場合にのみ理解可能です。

Chromiumの一般的な用途

Chromiumは、その特定の境界が運用リスクを削減したり、ブラウザの動作を測定可能にする場合に便利です。これらの一般的な用途は、各パターンが実際に満たす要件を示しています。

クロスブラウザエンジンのカバレッジ

他のブラウザエンジンと並行してChromiumエンジンに対して動作をテストします。

健全な実装は、必要な開始状態、完了の証拠、およびブラウザがオープンされる前のクリーンアップルールを定義します。

リモート自動化

サポートされている制御プロトコルを通じて、クライアントを管理されたChromiumインスタンスに接続します。

健全な実装は、必要な開始状態、完了の証拠、およびブラウザがオープンされる前のクリーンアップルールを定義します。

レンダリング研究

開発者ツールを使用してプロセス、レイアウト、ネットワーク、およびJavaScriptの動作を検査します。

健全な実装は、必要な開始状態、完了の証拠、およびブラウザがオープンされる前のクリーンアップルールを定義します。

組み込み製品

再利用可能なChromiumコンポーネントとコンテンツレイヤーを基にしたブラウザベースの製品を構築します。

健全な実装は、必要な開始状態、完了の証拠、およびブラウザがオープンされる前のクリーンアップルールを定義します。

Chromiumの背後にある状態モデル

信頼できるChromiumワークフローは、構成、ランタイム状態、ウェブサイト状態、および証拠を分離します。構成は、オペレーターが立ち上げ前に選択するものです:ブラウザビルド、起動モード、ロケール、タイムゾーン、権限、ビューポート、およびネットワーク経路。ランタイム状態は、割り当てられたプロセス、コンテキスト、ページ、メモリ、オープン接続、および制御チャネルをカバーします。ウェブサイト状態には、クッキー、オリジンストレージ、サーバー側のアカウント記録、および現在レンダリングされているドキュメントが含まれます。証拠は、何が起こったかを説明するために使用される記録です。

これらのレイヤーは異なる寿命を持っています。ページは、そのコンテキストクッキーが残っている間に閉じることができます。コンテキストは、永続的なプロファイルがディスク上に存続している間に閉じることができます。リモートコントロール接続は、サービスがブラウザを短期間所有している間に消える可能性があります。ウェブサイトのログインは、自動化セッションが終了した後も有効のままであることがあります。したがって、クリーンアップにはワークフローが作成した各レイヤーに対して明示的なアクションが必要です。

状態の所有権は、並行性も制御します。1つのコンテキスト内の2つのページは意図的に認証を共有することがありますが、2つの独立したジョブは通常そうすべきではありません。1つのブラウザ内の2つのコンテキストは、同じプロセスリソースを競いながらクッキーを隔離できます。2つの永続的なブラウザの起動は、同じアクティブなユーザーデータディレクトリを指してはなりません。安全な並行性の単位は、隔離と共有リソースの制限の両方によって決まります。

制御の秘密を公開せずに相関識別子を使用します。ジョブIDは、アプリケーションログ、ブラウザイベント、スクリーンショット、および最終出力を接続できます。セッションエンドポイント、クッキー値、認証ヘッダー、またはプロファイルアーカイブは、その役割を果たすべきではありません。なぜなら、ログを読む人がブラウザやアカウントにアクセスできる可能性があるからです。後のクリーンアップに依存するのではなく、ロギングの境界で値を覆い隠します。

Chromiumの可観測性

可観測性は4つの質問に答える必要があります:どの環境が実行されたか、ブラウザが何を見たか、コントローラーが何のアクションを送信したか、そしてワークフローがタスクを完了と見なした理由です。役立つイベント記録には、タイムスタンプ、相関ID、ナビゲーション後のページURL、アクション名、秘密でないパラメーター、期間、結果、および短いエラー分類が含まれます。内容が証拠として必要でない限り、ページの内容を避けるべきです。

失敗モードによってアーティファクトを選択します。ネットワークイベントは、リソースがブロックされたりリダイレクトされたりする場合に役立ちます。DOMスナップショットは、期待される要素が欠如しているか、構造的に異なる場合に役立ちます。スクリーンショットは、オーバーレイがコントロールを覆っている場合、レスポンシブレイアウトが変更される場合、またはフォントが形状を変える場合に役立ちます。ストレージのメタデータは、ログイン状態が消失した場合に役立ちます。録音は、複数の相互作用の順序が重要な場合に役立ちますが、機密情報をキャプチャする可能性があるため、慎重に保持すべきです。

完了チェックは、その検証を行うアクションの近くに配置するべきです。ナビゲーション後は、URL、レスポンス、またはページマーカーを確認します。入力後は、フィールド値または結果の状態を確認します。クリック後は、原因となるルート、ダイアログ、ネットワーク要求、または文書の変更を確認します。抽出後は、必要なフィールドとデータ型を検証します。例外なしに返されたコマンドは、意図したユーザーが目に見える結果が発生したことの証明ではありません。

運用ダッシュボードは、製品の健康状態とターゲットページの変動を区別する必要があります。ブラウザの割り当ての失敗、制御チャネルの失敗、レンダラーのクラッシュ、ターゲットHTTPレスポンス、アプリケーションレベルの空の状態、選択子の不一致には異なるラベルが必要です。それらを1つの一般的な失敗率にまとめると、注意が必要なレイヤーが隠れ、狭い問題に対して広範な変更を促す可能性があります。

制限と失敗モード

バージョンラベルだけでは、自動化環境を説明することができません。起動フラグ、配布パッチ、有効な機能、コーデック、フォント、オペレーティングシステム、およびプロトコルの互換性は、すべて結果に影響を与える可能性があります。再現性が重要な場合は、実際のブラウザビルドとクライアントバージョンを記録し、1つのChromiumベースの製品での動作が他の製品に変更されずに移行されると仮定しないようにします。

ほとんどの失敗は、証拠が正しいレイヤーでキャプチャされると分類しやすくなります。ナビゲーション応答は、輸送およびサーバーの動作を説明します。DOMは、描画された構造を説明します。スクリーンショットは、可視のレイアウトを説明します。ストレージ検査は、クッキーとオリジンの状態を説明します。セッションログは、ライフサイクルを説明します。これらのアーティファクトのいずれも、他のすべてを置き換えることはできません。

固定遅延は弱い完了信号です。なぜなら、ページは一つの普遍的な時間の量で完了しないからです。タスクに関連付けられた条件を好んでください:ルートが確定し、見出しが現れ、既知のリクエストが完了し、制御が有効になり、期待されるデータが存在すること。欠落条件が有用な証拠で終わるように、有界なタイムアウトを設定します。

開発、ステージング、プロダクション

開発は可視性と迅速な診断を重視します。小さな代表ケースを実行し、ブラウザの状態を公開し、スクリーンショットやトレースをコードに近く保ってください。ステージングは、制御されたアカウントとターゲットを使用しながら、プロダクション構成を反映する必要があります。プロダクションは決定論的入力、最小特権、有界リソース使用、構造化されたテレメトリ、および自動クリーンアップを重視します。これらの環境を移動すると、構成が変更され、ナビゲーションロジックが書き換えられることはありません。

バージョン管理はブラウザの動作だけでなくアプリケーションコードにも適用されます。プラットフォームが許可する場合、互換性のあるブラウザおよび自動化クライアントのバージョンを固定し、アップグレード前にリリースノートを確認し、焦点を絞った互換性スイートを実行してください。スイートは、ナビゲーション、ストレージ、入力、使用される場合のダウンロード、スクリーンショット、およびワークフローが依存する任意のプロトコル機能をカバーするべきです。ページタイトルのチェックが通過することは、ブラウザのアップグレードには浅すぎます。

キャパシティプランニングは、普遍的なマシンあたりのブラウザ数の数値ではなく、ページから始まります。代表的な作業に対して、メモリ、CPU、ネットワークトラフィック、ページの持続時間、およびアーティファクトのサイズを測定します。重いクライアントサイドアプリケーション、ビデオ、大きなキャンバス、多くのオープンページはコストプロファイルを変えます。観測されたリソース使用量とサービス制限から同時実行性を設定し、1つの高価なページが無関係なセッションを不安定にしないように余裕を残してください。

プロダクションのクリーンアップは冪等性を持つべきです:部分的な失敗の後に呼び出しても、存在するページ、コンテキスト、セッション、および一時ファイルを閉じるべきです。クリーンアップログは、秘密の値を印刷せずに、どのリソースが解放されたかを確認するべきです。持続的なプロファイルは、意図的に耐久性のあるプロファイルを削除することが通常のジョブクリーンアップではないため、別に扱われます。

セキュリティ、プライバシー、および責任ある使用

ブラウザ環境には、認可されたアカウントのみに表示されるクレデンシャル、個人データ、ダウンロード、およびコンテンツを保持することができます。アカウントとオペレーターに最小特権を適用し、秘密をソースファイルから除外し、録音へのアクセスを制限し、文書化された保持ポリシーの下で状態を削除してください。便利なデバッグアーティファクトは、レビューなしで共有されるとデータ漏洩の原因となる可能性があります。

自動化は、許可なしにプライベート、機密、または制限された情報にアクセスするために使用されるべきではありません。ウェブサイトの利用規約、適用される場合のロボットのガイダンス、契約上の義務、およびデータと法域を支配する法律を確認してください。技術的な能力は、認可を確立するものではありません。

フィンガープリンティング関連の構成は特別な配慮が必要です。言語、ディスプレイ、コーデック、フォント、設定などのブラウザの特性は、引用された標準およびプライバシーガイダンスに記載されているように、特定に寄与する可能性があります。そのような制御を互換性、隔離、および承認されたテストのために使用してください。他の人を装ったり、虐待的な活動を隠したりするためには使用しないでください。

適切なセットアップを選択する方法

ターゲット環境またはツールがそのエンジンとプロトコル表面を必要とする場合はChromiumを選択してください。エンドユーザーが使用するGoogle製品に特に一致することが要求される場合はChromeを選んでください。ポータブルテストの場合、ブラウザ特有の動作を小さなアダプターの背後に保ち、重要なパスを複数のエンジンに対して検証してください。

  • 必要な結果から始めます。 ワークフローが生成する必要のあるページの状態、データ、インタラクション、または証拠を定義します。
  • 最小の状態境界を選択します。 ページ、コンテキスト、セッション、またはプロファイルは、タスクが要求するよりも長く生きたり、より多くのデータを共有したりしてはいけません。
  • 環境入力を明示化します。 ブラウザのビルド、ロケール、タイムゾーン、ビューポート、権限、およびネットワークルートは結果を変更する可能性があります。
  • スケール前に可観測性を設計します。 ネットワーク、レンダリング、セレクター、ストレージ、ライフサイクルの失敗を区別するのに十分な証拠をキャプチャします。
  • 故意に閉じてクリーンアップします。 リモートリソースを解放し、一時状態を削除し、承認されたアーティファクトのみを保持します。

その Scrapeless Scraping Browser ドキュメント は管理されたセッション表面を説明しており、 Scrapeless Scraping Browser 製品ページ はクラウドブラウザ自動化における製品の役割を説明します。これらの製品参照は、一般的な定義を変更するのではなく、標準リンクを補完するものです。

結論

Chromiumは、マーケティングラベルではなく、正確なアーキテクチャ用語として最も有用です。そこに所有されている状態、その有効にするブラウザの動作、およびそれが作成する運用の境界からその価値が生まれます。それらの特性を明示化し、ローカル、リモート、持続可能、隔離された、可視性のある、無人の実行の間の選択は簡単になります。

プロダクション作業のために、その定義を具体的な証拠と組み合わせてください:既知の開始状態、意味のある完了条件、保護されたログ、および故意のクリーンアップ。その組み合わせにより、ブラウザ自動化のレビュー、デバッグ、維持が容易になります。

管理されたブラウザワークフローを構築する準備はできていますか?

リモートChromiumレンダリング、制御されたセッション、およびブラウザレベルのインタラクションが必要な場合はScrapeless Scraping Browserを使用してください。

無料で始める →

FAQ

Chromiumはブラウザプロファイルと同じものですか?

いいえ。Chromiumとブラウザプロファイルは異なるレイヤーを説明しています。プロファイルは永続的なブラウザデータのコレクションであり、このページのトピックは実行モード、コンテナ、アイデンティティモデル、またはインフラストラクチャパターンを説明しています。ワークフローは両方を使用できますが、それらを別々に名前を付けるべきです。

Chromiumは自動化を検出不能にしますか?

いいえ。ブラウザの設定や製品は、自動化が観察できないことを保証することはできません。ウェブサイトは、ブラウザのプロパティ、ネットワークコンテキスト、アカウント、インタラクション履歴、サーバーサイドの動作を評価する場合があります。自動化は認可された範囲内でのみ使用し、検出動作を不可視性の約束ではなく、観察可能なシステムプロパティとして扱ってください。

チームはいつChromiumを選ぶべきか?

チームは、特定の状態、レンダリング、隔離、または運用プロパティが文書化された要件を解決する場合にChromiumを選ぶべきです。決定は、シンプルなHTTPクライアント、ローカルブラウザ自動化、管理されたブラウザ実行を比較し、必要な結果を信頼性高く返す最も単純なオプションを選択すべきです。

Chromiumワークフローでログに記録すべきことは?

ブラウザとクライアントのバージョン、非機密の設定、セッションまたはジョブの相関ID、ターゲットURL、重要な状態遷移、最終結果、およびクリーンアップ結果をログに記録してください。スクリーンショットまたは録画は必要な場合のみ保存し、潜在的に機密データとして保護し、クッキー、資格情報、またはリモートコントロールエンドポイントを決してログに記録しないでください。

Chromiumを信頼性高くテストするには?

明示的な開始状態、安定したセレクターまたはドキュメントシグナル、制限されたタイムアウト、代表的なページバリアント、および明確な完了チェックでChromiumをテストしてください。固定遅延に依存するのではなく、最終的なDOMまたはユーザー目に見える結果を比較し、スクリーンショット、トレース、またはライブブラウザ状態を表示する診断パスを保持してください。

参考文献