私たちは、次の側面から速度を向上させることができます。
まず、我々がテストしたいページを開き、このようなサンシブ介するなどの操作手順を、減らす、我々は不要な動作を削減する、Webサイトから直接開くことができます。
第二に、ページがあまりにも多くのコンテンツをロードした場合、ロードされたコンテンツは、我々のテストには影響しない場合、我々はページが読み込ま割り込みタイムアウトを設定し、我々は、遅いロードするための理由を見ることができ、ページの負荷を破ります。
第三には、彼らは一定の時間を眠ることができ、また、速度を向上させることができ、中断待機した後、要素を検出することができ、待ち時間を設定します。
第四には、configure TestNGのは、マルチスレッド実装します。テストケースの製造において、我々は疎結合を達成しなければならない、とサーバーの場合には、マルチスレッド操作を設定し、実行速度を向上しようとすることができます。
まず、スピードの問題:時々ページを操作するためのプログラムの実行中の要素が表示されない、もっとゆっくり読み込みます。この状況は良い時代を通じて、より一般的な、高速走行で、再びそれを実行し、ページは、オープンまで通過しないしません。安定性を向上させるために、我々は唯一の犠牲の時間を実行し、プラス要素までの時間を待っていることは、多くの場合、検出に失敗すると、その要素の出現が再び動作するようにした後、次の操作を実行することができます。
第二に、理由Selelnium:表面が無効の場合Selenium1.0と2.0の違いがあるが、いくつかの子供たちは時々 、2.0の下で効果的に機能を実行します。そうであるようにマウスオーバー()関数の場合は、我々はそのような関数の使用を避ける必要があります。
第三に、マルチスレッド、ときに互いに影響との間のテストケース。より速く実行すると、マルチスレッドものの、ない優れたデザインとケースの間のカップリング場合は、前の時間のユースケースは、AユースケースBが実行された場合、それはユースケースBに影響する、影響します。それ以外の場合は問題はありません。このような状況、あなたのテスト自動化プロジェクトは比較的疎結合のテストケースを作るために、事前に試験した場合、複数のスレッドの実行順序が制御されていないので、可能な限りあらゆる関係なしに、マルチスレッド化しようとする場合。
まず、自動テストはこの中で、監視するために使用され、我々は実行のタイミングにテストセットを自動化します、 5分ごとまたは1時間に一度場合は、ジェンキンスにスケジュールされたタスクを作成することができます。
第二に、我々は、ユースケースに戻らなければなりません。このようBVTテストケースのようないくつかの子供のテストケースを、私たちはライン上で実行するために戻るには任意の必要性を当社の製品を変更する前に。私たちは、トリガーの実行にテストセットを置くその後、バインディングは、ビルド、テストオートメーションタスクの開発に私たちのタスクをジェンキンスます。コードのシミュレーション環境の上部で、開発者は、テストケースの私達の自動化された実行は、ときにトリガされます。
第三には、頻繁に実行されたテストする必要はありません。テストケースの全額と同じように、我々はすべての後に、まだ消費する時間を持って、実行された、といくつかの非主要なビジネスラインは常に返す必要はありません返す必要はありません。このような人工的なテストでは、我々は必要性がにビルドに手動で実行するとき、タスクジェンキンスを作成し、実行します。
セレンwebdriverをソースコードを研究することによって、私は実際には、原則としてwebdriverをの実現は計り知れない推測しようとしないではないことがわかりました。ここでwebdriverをへ のRubyバインディングでのfirefox-webdriverを例えば、簡単にはwebdriverをの動作原理を説明し、達成しました。
-
テストスクリプトは、Firefoxを起動するときに、セレンwebdriverをFirefoxブラウザは、まず新しいスレッドで起動します。テストスクリプトは、Firefoxのプロファイルを指定している場合、それ以外の場合は、新しいプロファイルを開始、およびFirefoxを起動します、プロファイルで始まります。
-
Firefoxの-no-リモート一般的な方法は、セレンwebdriverをFirefoxが特定のポートに結合する開始後に開始され、Firefoxは、リモートサーバwebdriverを存在するインスタンスが完了した後に結合しました。
-
クライアント(すなわち、テストスクリプト)がセッションを作成するために、セッション要求は、対応する操作応答を完了し、リモートサーバ、リモートサーバ解決要求、及び戻りに安らか要求HTTPによって送信されます。
-
クライアントは応答を受け入れ、ステップ3またはスクリプトの末尾に移動するかどうかを判断するためにその戻り値を分析します。
これは、ワークフローwebdriverをされ、実際には上記の問題点を理解したwebdriverをの原則の実現は比較的簡単であるべきときに理解することは非常に複雑なようです。
クラシックなデザインモードのクライアントの設計 - サーバーにしたがってwebdriverを。
エンドサーバーがリモートサーバーである、それは任意のブラウザことができます。私たちのスクリプトは、ブラウザを起動すると、ブラウザはその義務は、クライアントがそれに応じて、要求と応答を送信するために待機することで、リモートサーバーです。
クライアント側、それは単に我々のテストコードがあり、我々は道リモートサーバーでブラウザをテストするために送られるように、特定のURLや他の操作のHTTPリクエストにジャンプするには、ブラウザを開くなどの行為のいくつかのコードをテストしました。リモート・サーバは、要求を受け入れ、適切なアクションを実行し、リターン実行ステータス応答、戻り値情報など;
28、GETとPOSTの違いは?(感はお答えできない場合があります)
- GETリクエストは、任意のアクションを生成していないため。HTTP GETリクエストをサーバ上の任意の結果を生成しないという行動手段はありません。しかし、セキュリティは単にここで生成された情報を修正しないセキュリティの方法に言及されていないアクションの方法ではありません。POSTリクエストは、サーバー上のリソースを変更することがあります。例えば、CSDNのブログは、ユーザー提出の記事や、その後の物品または異なるリソースを提出したコメント(すなわち、ページ)、またはそのリソースを提出しているため、POSTリクエストによって達成されたレビューを提出する読者は変更されています。
要求の二つの方法の間の差:
図1に示すように、GET要求を、要求されたデータは?URLに、URLに付加し、分割されたデータ、パラメータ・接続する複数の伝送されます。代わりにunicldeエンコード形式の用途のASCIIをコードするURL、その後、符号化するすべての非ASCII文字の後に言うことです転送。
POSTリクエスト:データパケットを要求しますPOST要求がHTTP要求パケットのボディに配置されます。上記アイテム=帯鋸は、実際のデータ送信です。そのため、要求されたGETデータは、アドレスバーに公開され、POSTリクエストはしていません。
図2に示すように、データ送信のサイズ
HTTPの仕様では、URLの送信データの長さや大きさに制限はありません。しかし、実際の開発プロセスでは、GETのために、特定のブラウザとサーバは、URLの長さに制限があります。GETリクエストを使用する場合したがって、送信データは、URLの長さによって制限されます。
POSTの場合、URLは伝統的な価値観ではないので、理論的には、限定されないが、実際には各サーバーがPOSTのサイズを制限するために、データの提出が必要になりますは、Apache、IISは、独自の構成を有しています。
3、セキュリティ
セキュリティは、GET、POSTよりも高く、
29、会社で突然、あなたはトラブルシューティングを行う必要がある、訪問し、復元することはできませんテスト・システム(B / Sアーキテクチャ)を使用していた、あなたの検査方法を教えて
A:まず、サイトが直接ドメイン名を入力してアクセスすることはできません、ウェブサイトも通常の前に、突然アクセスできません