50 most popularly asked selenium interview questions
このチュートリアルでは、トップをリストしました Selenium IDE、Selenium RC、Selenium Grid、SeleniumWebDriverのインタビューの質問を含む50の最も一般的なSeleniumのインタビューの質問。
このチュートリアルに進む前に、このSeleniumの記事シリーズについて簡単に説明します。
これは、30以上の包括的なチュートリアルのSeleniumオンライントレーニングシリーズの最後のチュートリアルです。皆さんがこれらのチュートリアルを楽しんで、そこから学び始めたことを願っています。ここが初めての場合は、 このトレーニングシリーズの最初のチュートリアルです。
******************
また、これをチェックしてください 最高のオンラインSeleniumトレーニングコース 」を参照して、10年以上のSelenium自動化の経験を持つ専門家からSelenium自動化ツールを学びます。
******************
Seleniumインタビューの質問と回答のトップ50
さあ。
Q#1)自動化テストとは何ですか?
自動化テストまたはテスト自動化は、テスト対象のアプリケーション/システムをテストするための手動プロセスを自動化するプロセスです。自動化テストでは、別のテストツールを使用して、繰り返し実行でき、手動による介入を必要としないテストスクリプトを作成できます。
Q#2)自動化テストの利点は何ですか?
自動化テストの利点は次のとおりです。
- 繰り返されるテストケースの実行をサポートします
- 大規模なテストマトリックスのテストを支援します
- 並列実行を有効にします
- 無人実行を奨励します
- 精度を向上させ、それによって人為的なエラーを減らします
- 時間とお金を節約します
Q#3)なぜSeleniumをテストツールとして選択する必要があるのですか?
セレン
- 無料でオープンソースです
- 大規模なユーザーベースを持ち、コミュニティを支援する
- ブラウザ間の互換性がある(Firefox、Chrome、Internet Explorer、Safariなど)
- プラットフォームとの互換性が高い(Windows、Mac OS、Linuxなど)
- 複数のプログラミング言語(Java、C#、Ruby、Python、Pearlなど)をサポートします
- 新鮮で定期的なリポジトリ開発があります
- 分散テストをサポート
Q#4)セレンとは何ですか?さまざまなSeleniumコンポーネントは何ですか?
Seleniumは、最も人気のある自動テストスイートの1つです。 Seleniumは、Webベースのアプリケーションとさまざまなブラウザーおよびプラットフォームの機能面の自動化テストをサポートおよび奨励するように設計されています。オープンソースコミュニティに存在するため、テストの専門家の間で最も受け入れられているツールの1つになっています。
ソフトウェアテストのロードランナーとは
Seleniumは、単一のツールまたはユーティリティではなく、複数のテストツールのパッケージであり、同じ理由で、スイートと呼ばれます。これらの各ツールは、さまざまなテストおよびテスト環境の要件に対応するように設計されています。
スイートパッケージは、次のツールセットで構成されています。
- セレン統合開発環境(IDE) – Selenium IDEは、記録および再生ツールです。 Firefoxプラグインとして配布されています。
- Seleniumリモートコントロール(RC) – Selenium RCは、ユーザーが目的のプログラミング言語でテストスクリプトを作成できるようにするサーバーです。また、さまざまなブラウザ内でテストスクリプトを実行することもできます。
- Selenium WebDriver – WebDriverは、SeleniumRCに比べてさまざまな利点があるまったく別のツールです。 WebDriverはWebブラウザーと直接通信し、そのネイティブ互換性を使用して自動化します。
- セレングリッド – Selenium Gridは、複数のプラットフォームおよび環境で同時にテスト実行を分散するために使用されます。
Q#5)Seleniumでサポートできるテストタイプは何ですか?
Seleniumは、次のタイプのテストをサポートしています。
- 機能テスト
- 回帰試験
Q#6)Seleniumの制限は何ですか?
Seleniumの制限は次のとおりです。
- Seleniumは、Webベースのアプリケーションのみのテストをサポートします
- Seleniumを使用してモバイルアプリケーションをテストすることはできません
- CaptchaおよびBarcodeリーダーはSeleniumを使用してテストできません
- レポートは、TestNGやJUnitなどのサードパーティツールを使用してのみ生成できます。
- Seleniumは無料のツールであるため、ユーザーが多数の支援コミュニティを見つけることができるベンダーサポートはありません。
- ユーザーは、プログラミング言語に関する予備知識を持っている必要があります。
Q#7) Selenium IDE、Selenium RC、およびWebDriverの違いは何ですか?
特徴 | Selenium IDE | Selenium RC | WebDriver |
---|---|---|---|
アラート、ナビゲーション、ドロップダウンの処理 | Selenium IDEは、アラート、ナビゲーション、ドロップダウンを処理するための支援を明示的に提供していません | Selenium RCは、アラート、ナビゲーション、ドロップダウンを処理するための支援を明示的に提供していません。 | WebDriverは、アラート、ナビゲーション、およびドロップダウンを効率的かつ効果的に処理するのに役立つさまざまなユーティリティとクラスを提供します。 |
ブラウザの互換性 | Selenium IDEはFirefoxプラグインとして提供されるため、Firefoxのみをサポートします | Selenium RCは、Mozilla Firefox、Google Chrome、Internet Explorer、およびOperaのさまざまなバージョンをサポートしています。 | WebDriverは、Mozilla Firefox、Google Chrome、Internet Explorer、およびOperaのさまざまなバージョンをサポートしています。 GUIレスまたはヘッドレスブラウザであるHtmlUnitDriverもサポートします。 |
記録と再生 | SeleniumIDEは記録および再生機能をサポートします | Selenium RCは、記録および再生機能をサポートしていません。 | WebDriverは記録および再生機能をサポートしていません |
サーバー要件 | Selenium IDEでは、テストスクリプトを実行する前にサーバーを起動する必要はありません。 | Selenium RCでは、テストスクリプトを実行する前にサーバーを起動する必要があります。 | WebDriverでは、テストスクリプトを実行する前にサーバーを起動する必要はありません。 |
建築 | SeleniumIDEはJavascriptベースのフレームワークです | SeleniumRCはJavaScriptベースのフレームワークです。 | WebDriverは、自動化に対するブラウザのネイティブ互換性を使用します |
オブジェクト指向 | SeleniumIDEはオブジェクト指向ツールではありません | Selenium RCは、セミオブジェクト指向ツールです。 | WebDriverは純粋にオブジェクト指向のツールです |
動的ファインダー (Webページ上のWeb要素を見つけるため) | SeleniumIDEは動的ファインダーをサポートしていません | SeleniumRCは動的ファインダーをサポートしていません。 | WebDriverは動的ファインダーをサポートします |
WAP(iPhone / Android)テスト | Selenium IDEは、iPhone / Andriodアプリケーションのテストをサポートしていません | Selenium RCは、iPhone / Androidアプリケーションのテストをサポートしていません。 | WebDriverは、iPhone / Androidアプリケーションのテストを効率的にサポートするように設計されています。このツールには、WAPベースのテスト用のさまざまなドライバーが付属しています。 たとえば、AndroidDriver、iPhoneDriver |
リスナーのサポート | SeleniumIDEはリスナーをサポートしていません | SeleniumRCはリスナーをサポートしていません。 | WebDriverはリスナーの実装をサポートします |
速度 | Selenium IDEは、テストを起動するWebブラウザーに接続されているため高速です。したがって、IDEとブラウザは直接通信します | Selenium RCは、ブラウザーと直接通信しないため、WebDriverよりも低速です。むしろ、セレンコマンドをSelenium Coreに送信し、SeleniumCoreはブラウザと通信します。 | WebDriverは、Webブラウザと直接通信します。したがって、それをはるかに高速にします。 |
Q#8)Selenium IDEはいつ使用する必要がありますか?
Selenium IDEは、Seleniumパッケージ内のすべてのツールの中で最もシンプルで簡単です。その記録および再生機能により、プログラミング言語に精通していなくても、非常に簡単に学習できます。 Selenium IDEは、経験の浅いユーザーにとって理想的なツールです。
Q#9)セレネーゼとは何ですか?
Seleneseは、SeleniumIDEでテストスクリプトを作成するために使用される言語です。
Q#10) Seleniumのさまざまなタイプのロケーターは何ですか?
ロケーターは、Webページ内でWeb要素を一意に識別するアドレスと呼ぶことができます。したがって、Web要素を正確かつ正確に識別するために Seleniumのさまざまなタイプのロケーター :
- ID
- クラス名
- 名前
- タグ名
- LinkText
- PartialLinkText
- Xpath
- CSSセレクター
- 判定
Q#11) assertコマンドとverifyコマンドの違いは何ですか?
主張する: Assertコマンドは、指定された条件がtrueかfalseかをチェックします。指定された要素がWebページに存在するかどうかを主張するとします。条件が真の場合、プログラム制御は次のテストステップを実行しますが、条件が偽の場合、実行は停止し、それ以上のテストは実行されません。
確認: 検証コマンドは、指定された条件が真であるか偽であるかもチェックします。条件がtrueまたはfalseに関係なく、プログラムの実行は停止しません。つまり、検証中に失敗しても実行は停止せず、すべてのテストステップが実行されます。
Q#12)XPathとは何ですか?
XPath XMLパスに基づいてWeb要素を見つけるために使用されます。 XMLはExtensibleMarkup Languageの略で、任意のデータを保存、整理、および転送するために使用されます。 HTMLタグと非常によく似たキーと値のペアでデータを格納します。どちらもマークアップ言語であり、同じ傘下にあるため、XPathを使用してHTML要素を見つけることができます。
XPathを使用して要素を見つけることの背後にある基本は、ページ全体でさまざまな要素間を移動することです。これにより、ユーザーは別の要素を参照して要素を見つけることができます。
Q#13)Xpathの「/」と「//」の違いは何ですか?
シングルスラッシュ「/」– シングルスラッシュは、絶対パスでXpathを作成するために使用されます。つまり、xpathは、ドキュメントノード/開始ノードからの選択を開始するために作成されます。
ダブルスラッシュ「//」– ダブルスラッシュは、相対パスを使用してXpathを作成するために使用されます。つまり、xpathは、ドキュメント内の任意の場所から選択を開始するために作成されます。
Q#14)同一生成元ポリシーとは何ですか?どのように処理できますか?
同一生成元ポリシーの問題により、ドキュメントにアクセスしようとしているオリジンとは異なるオリジンからドキュメントのDOMにアクセスできません。
オリジンは、URLのスキーム、ホスト、およびポートの順次の組み合わせです。たとえば、URL https://www.softwaretestinghelp.com/resources/の場合、オリジンはhttp、softwaretestinghelp.com、80の組み合わせに対応します。
したがって、Selenium Core(JavaScriptプログラム)は、起動された場所とは異なるオリジンから要素にアクセスできません。たとえば、「https://www.softwaretestinghelp.com」からJavaScriptプログラムを起動した場合、「https://www.softwaretestinghelp.com/resources」などの同じドメイン内のページにアクセスできます。 」または「https://www.softwaretestinghelp.com/istqb-free-updates/」。 google.com、seleniumhq.orgなどの他のドメインにはアクセスできなくなります。
そこで、同一生成元ポリシーを処理するために、Selenium RemoteControlが導入されました。
Q#15) Selenium Gridはいつ使用する必要がありますか?
Selenium Gridを使用すると、複数のプラットフォームおよびブラウザーで同じまたは異なるテストスクリプトを同時に実行して、分散テストの実行、異なる環境でのテストを実現し、実行時間を大幅に節約できます。
Q#16)Selenium1とSelenium2はどういう意味ですか?
Selenium RCとWebDriverの組み合わせは、一般にSelenium2として知られています。SeleniumRCだけでもSelenium1とも呼ばれます。
Q#17)最新のSeleniumツールはどれですか?
WebDriver
Q#18)WebDriverを使用してブラウザを起動するにはどうすればよいですか?
次の構文を使用してブラウザを起動できます。
WebDriverドライバー= 新着 FirefoxDriver();
WebDriverドライバー= 新着 ChromeDriver();
WebDriverドライバー= 新着 InternetExplorerDriver();
Q#19)WebDriverで使用できるさまざまなタイプのドライバーは何ですか?
WebDriverで使用できるさまざまなドライバーは次のとおりです。
- FirefoxDriver
- InternetExplorerDriver
- ChromeDriver
- SafariDriver
- OperaDriver
- AndroidDriver
- IPhoneDriver
- HtmlUnitDriver
Q#20)WebDriverで使用できる待機の種類は何ですか?
二つあります WebDriverで利用可能な待機の種類 :
- 暗黙の待機
- 明示的な待機
暗黙の待機: 暗黙的な待機は、テストスクリプト全体にわたる連続する各テストステップ/コマンド間のデフォルトの待機時間(たとえば30秒)を提供するために使用されます。したがって、後続のテストステップは、前のテストステップ/コマンドを実行してから30秒が経過した場合にのみ実行されます。
明示的な待機: 明示的な待機は、特定の条件が満たされるまで、または最大時間が経過するまで実行を停止するために使用されます。暗黙的な待機とは異なり、明示的な待機は特定のインスタンスにのみ適用されます。
Q#21) Seleniumを使用してテキストボックスに入力する方法は?
ユーザーは、sendKeys( '入力する文字列')を使用して、テキストボックスに文字列を入力できます。
構文:
WebElementユーザー名= drv .findElement(By.id( 'Eメール' ));
//ユーザー名を入力します
username.sendKeys( 「sth」 );
Q#22) 要素が画面に表示されているかどうかをどのように確認できますか?
WebDriverは、次の方法でユーザーがWeb要素の可視性を確認できるようにします。これらのWeb要素には、ボタン、ドロップボックス、チェックボックス、ラジオボタン、ラベルなどがあります。
CPUとGPUの温度を監視するための最良のプログラム
- 表示されています()
- isSelected()
- 有効になっています()
構文:
表示されています():
ブール値 buttonPresence = driver.findElement(By.id( 「信じる」 ))。表示されています();
isSelected():
ブール値 buttonSelected = driver.findElement(By.id( 「信じる」 ))。isSelected();
有効になっています():
ブール値 searchIconEnabled = driver.findElement(By.id( 「Gbqfb」 ))。有効になっています();
Q#23) Web要素のテキストを取得するにはどうすればよいですか?
Getコマンドは、指定されたWeb要素の内部テキストを取得するために使用されます。このコマンドはパラメータを必要としませんが、文字列値を返します。また、Webページに表示されるメッセージ、ラベル、エラーなどを検証するために広く使用されているコマンドの1つです。
構文:
文字列テキスト= driver.findElement(By.id(“ Text”))。getText();
Q#24)ドロップダウンで値を選択するにはどうすればよいですか?
ドロップダウンの値は、WebDriverのSelectクラスを使用して選択できます。
構文:
selectByValue:
selectByValue =を選択します 新着 選択する( 運転者 .findElement(By.id( 「selectID_One」 )));
selectByValue.selectByValue( 「グリーンバリュー」 );
selectByVisibleText:
selectByVisibleText =を選択します 新着 選択する ( 運転者 .findElement(By.id( 「selectID_Two」 )));
selectByVisibleText.selectByVisibleText( 'ライム' );
selectByIndex:
selectByIndex =を選択します 新着 選択する( 運転者 .findElement(By.id( 「selectID_Three」 )));
selectByIndex.selectByIndex(2);
Q#25)さまざまな種類のナビゲーションコマンドは何ですか?
以下は ナビゲーションコマンド :
ナビゲート()。back() –上記のコマンドはパラメーターを必要とせず、ユーザーをWebブラウザーの履歴内の前のWebページに戻します。
サンプルコード:
driver.navigate()。back();
ナビゲート()。forward() –このコマンドを使用すると、ユーザーはブラウザの履歴を参照して次のWebページに移動できます。
サンプルコード:
driver.navigate()。forward();
ナビゲート()。refresh() –このコマンドを使用すると、ユーザーはすべてのWeb要素を再ロードすることにより、現在のWebページを更新できます。
サンプルコード:
driver.navigate()。refresh();
案内する() –このコマンドを使用すると、ユーザーは新しいWebブラウザーウィンドウを起動して、指定されたURLに移動できます。
サンプルコード:
driver.navigate()。to(“ https://google.com”);
Q#26)linkTextを使用してハイパーリンクをクリックするにはどうすればよいですか?
運転者 .findElement(By.linkText( 「グーグル」 ))。クリック();
このコマンドは、リンクテキストを使用して要素を検索し、その要素をクリックすると、ユーザーは対応するページにリダイレクトされます。
上記のリンクには、次のコマンドを使用してアクセスすることもできます。
運転者 .findElement(By.partialLinkText( 「グー」 ))。クリック();
上記のコマンドは、括弧内に指定されたリンクの部分文字列に基づいて要素を検索します。したがって、partialLinkText()は、指定された部分文字列を持つWeb要素を検索し、それをクリックします。
Q#27) 方法 WebDriverのハンドルフレーム ?
iframeとしてのインラインフレームの頭字語は、ネストを有効にすることにより、現在のHTMLドキュメント内に別のドキュメントを挿入するため、または単にWebページをWebページに挿入するために使用されます。
IDでiframeを選択
運転者 .switchTo()。frame( 「」 フレームのID 「」 );
tagNameを使用してiframeを見つける
driver.switchTo()。frame(driver.findElements(By.tagName( 'iframe')。get(0));
インデックスを使用してiframeを見つける
フレーム(インデックス)
driver.switchTo()。frame(0);
frame(フレーム名)
driver.switchTo()。frame( 'フレームの名前');
フレーム(WebElement要素)
親ウィンドウを選択
driver.switchTo()。defaultContent();
Q#28)findElement()とfindElements()はいつ使用しますか?
findElement(): findElement()は、指定されたロケーター値に一致する現在のWebページの最初の要素を見つけるために使用されます。最初に一致する要素のみがフェッチされることに注意してください。
構文:
WebElement要素= 運転者 .findElements(By.xpath( '// div (@ id = 'example') // ul // li' ));
findElements(): findElements()は、指定されたロケーター値に一致する現在のWebページ内のすべての要素を検索するために使用されます。一致するすべての要素がフェッチされ、WebElementのリストに格納されることに注意してください。
構文:
リストelementList = 運転者 .findElements(By.xpath( '// div (@ id = 'example') // ul // li' ));
Q#29) リスト内で複数のWeb要素を見つける方法は?
場合によっては、順序付きまたは順序なしのリストに配置された複数のハイパーリンクや画像など、同じタイプの要素に出くわすことがあります。したがって、このような要素を1つのコードで処理することは絶対に理にかなっており、これはWebElementListを使用して実行できます。
サンプルコード
// Storing the list List elementList = driver.findElements(By.xpath('//div(@id='example')//ul//li')); // Fetching the size of the list int listSize = elementList.size(); for (int i=0; i Q#30)driver.close()コマンドとdriver.quitコマンドの違いは何ですか?
閉じる() :WebDriverのclose()メソッドは、ユーザーが現在作業しているWebブラウザーウィンドウを閉じます。または、WebDriverが現在アクセスしているウィンドウと言うこともできます。このコマンドはパラメーターを必要とせず、値も返しません。
終了する() :close()メソッドとは異なり、quit()メソッドはプログラムが開いたすべてのウィンドウを閉じます。 close()メソッドと同じように、このコマンドはパラメーターを必要とせず、値も返しません。
Q#31)Seleniumはウィンドウベースのポップアップを処理できますか?
Seleniumは、Webアプリケーションテストのみをサポートする自動化テストツールです。したがって、Seleniumを使用してウィンドウポップアップを処理することはできません。
Q#32)Webベースのポップアップをどのように処理できますか?
WebDriverは、ユーザーに非常に効率的な方法を提供します。 アラートインターフェイスを使用してこれらのポップアップを処理します 。 Alertインターフェースと一緒に使用する4つの方法があります。
- void dismiss()– dismiss()メソッドは、ポップアップウィンドウが表示されたらすぐに(キャンセル)ボタンをクリックします。
- void accept()– accept()メソッドは、ポップアップウィンドウが表示されるとすぐに(OK)ボタンをクリックします。
- String getText()– getText()メソッドは、アラートボックスに表示されるテキストを返します。
- void sendKeys(String stringToSend)– sendKeys()メソッドは、指定された文字列パターンをアラートボックスに入力します。
構文:
// JavaScriptアラートを受け入れる
アラートアラート= driver.switchTo()。alert();
alert.accept();
Q#33)ウィンドウベースのポップアップをどのように処理できますか?
Seleniumは、Webアプリケーションのテストのみをサポートする自動化テストツールです。つまり、Windowsベースのアプリケーションのテストはサポートしていません。ただし、セレンだけでは状況を改善することはできませんが、サードパーティの介入を行うことで、この問題を克服できます。 AutoIT、Robotクラスなどのセレンとともに、ウィンドウベースのポップアップを処理するために利用できるサードパーティツールがいくつかあります。
Q#34)Webページのタイトルを主張する方法は?
// Webページのタイトルを確認します
assertTrue( 'ウィンドウのタイトルが正しくありません。'、driver.getTitle()。equals( 'ページのタイトル'));
Q#35)WebDriverを使用してWeb要素にマウスを合わせるにはどうすればよいですか?
WebDriverは、ユーザーがマウスとキーボードのイベントを自動化するために利用できるさまざまな対話ユーティリティを提供します。アクションインターフェイスは、シングルユーザーインタラクションをシミュレートするそのようなユーティリティの1つです。
したがって、次のシナリオでは、アクションインターフェイスを使用してドロップダウンにマウスを合わせると、オプションのリストが開きます。
サンプルコード:
c#オブジェクト指向プログラミングの概念
// Instantiating Action Interface Actions actions=new Actions(driver); // howering on the dropdown actions.moveToElement(driver.findElement(By.id('id of the dropdown'))).perform(); // Clicking on one of the items in the list options WebElement subLinkOption=driver.findElement(By.id('id of the sub link')); subLinkOption.click();
Q#36)要素のCSSプロパティを取得するにはどうすればよいですか?
cssプロパティの値は、get()メソッドを使用して取得できます。
構文:
driver.findElement(By.id( 「id “))。getCssValue( 「css属性の名前」 );
driver.findElement(By.id( 「id “))。getCssValue( 'フォントサイズ' );
Q#37)WebDriverでスクリーンショットをキャプチャする方法は?
import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class CaptureScreenshot { WebDriver driver; @Before public void setUp() throws Exception { driver = new FirefoxDriver(); driver.get('https://google.com'); } @After public void tearDown() throws Exception { driver.quit(); } @Test public void test() throws IOException { // Code to capture the screenshot File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); // Code to copy the screenshot in the desired location FileUtils.copyFile(scrFile, new File('C:\CaptureScreenshot\google.jpg')) } }
Q#38) JUnitとは何ですか?
JUnit Apacheによって導入されたユニットテストフレームワークです。 JunitはJavaに基づいています。
Q#39)JUnitアノテーションとは何ですか?
JUnitアノテーションは次のとおりです。
- @テスト: アノテーションは、@ Testとしてアノテーションが付けられたメソッドがテストメソッドであることをシステムに通知します。 1つのテストスクリプトに複数のテストメソッドを含めることができます。
- @前: @Beforeアノテーションが付けられたメソッドは、このメソッドが各テストメソッドの前に毎回実行されることをシステムに通知します。
- @After: @Afterアノテーションが付けられたメソッドは、このメソッドが各テストメソッドの後に毎回実行されることをシステムに通知します。
- @BeforeClass: @BeforeClassアノテーションが付けられたメソッドは、このメソッドがテストメソッドの前に1回実行されることをシステムに通知します。
- @放課後: @AfterClassアノテーションが付けられたメソッドは、このメソッドがいずれかのテストメソッドの後に1回実行されることをシステムに通知します。
- @無視: @Ignoreアノテーションが付けられたメソッドは、このメソッドが実行されないことをシステムに通知します。
Q#40) TestNGとは何ですか?Junitよりも優れていますか?
TestNG は、開発者とテスターの両方のメリットを活用するように設計された高度なフレームワークです。フレームワークの開始により、JUnitは、Javaアプリケーション、Java開発者、およびJavaテスターの間で絶大な人気を博し、コードの品質が大幅に向上しました。使いやすく簡単であるにもかかわらず、JUnitには独自の制限があり、TestNGを導入する必要が生じます。 TestNGは、Apacheソフトウェアライセンスの下で配布され、すぐにダウンロードできるオープンソースフレームワークです。
TestNG with WebDriverは、効率的で効果的なテスト結果形式を提供します。これを関係者と共有して、製品/アプリケーションの状態を垣間見ることができるため、WebDriverがテストレポートを生成できないという欠点がなくなります。 TestNGには、予期せず終了することなくプログラムを実行できる例外処理メカニズムが組み込まれています。
TestNGをJUnitよりも優れたものにするさまざまな利点があります。それらのいくつかは次のとおりです。
- 高度で簡単な注釈を追加
- 実行パターンを設定できます
- テストスクリプトの同時実行
- テストケースの依存関係を設定できます
Q#41) TestNGでテストケースの優先度を設定するにはどうすればよいですか?
TestNGでの優先順位の設定
コードスニペット
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
テスト実行シーケンス:
- 方法1
- 方法2
- 方法3
Q#42) フレームワークとは何ですか?
フレームワークは、さまざまなガイドライン、コーディング標準、概念、プロセス、プラクティス、プロジェクト階層、モジュール性、レポートメカニズム、テストデータインジェクションなどを柱の自動化テストに建設的にブレンドしたものです。
Q#43) 自動化フレームワークの利点は何ですか?
の利点 テスト自動化フレームワーク
- コードの再利用性
- 最大カバレッジ
- 回復シナリオ
- 低コストのメンテナンス
- 最小限の手動介入
- 簡単なレポート
Q#44)フレームワークの種類は何ですか?
以下は、さまざまなタイプのフレームワークです。
- モジュールベースのテストフレームワーク: フレームワークは、「テスト対象アプリケーション」全体を論理モジュールと分離モジュールの数に分割します。モジュールごとに、個別の独立したテストスクリプトを作成します。したがって、これらのテストスクリプトをまとめると、複数のモジュールを表すより大きなテストスクリプトが作成されます。
- ライブラリアーキテクチャテストフレームワーク: フレームワークの背後にある基本的な基本は、一般的な手順を決定し、それらをライブラリの下の関数にグループ化し、必要に応じてテストスクリプトでそれらの関数を呼び出すことです。
- データ駆動型テストフレームワーク:データ駆動型テストフレームワークは、ユーザーがテストスクリプトロジックとテストデータを相互に分離するのに役立ちます。これにより、ユーザーはテストデータを外部データベースに保存できます。データは通常、「キーと値」のペアで保存されます。したがって、キーを使用して、テストスクリプト内のデータにアクセスしてデータを入力できます。
- キーワード駆動型テストフレームワーク: キーワード駆動型テストフレームワークは、スクリプトからテストデータを分離するだけでなく、テストスクリプトに属する特定のコードセットを外部データファイルに保持するという意味で、データ駆動型テストフレームワークの拡張機能です。
- ハイブリッドテストフレームワーク: ハイブリッドテストフレームワークは、上記の複数のフレームワークを組み合わせたものです。このような設定の最も良い点は、関連するあらゆる種類のフレームワークの利点を活用できることです。
- ビヘイビア駆動開発フレームワーク: ビヘイビア駆動開発フレームワークにより、ビジネスアナリスト、開発者、テスターなどが読みやすく理解しやすい形式で機能検証を自動化できます。
Q#45)Excelからテストデータを読み取るにはどうすればよいですか?
JXLまたはPOIAPIを使用して、Excelからテストデータを効率的に読み取ることができます。 ここで詳細なチュートリアルを参照してください 。
Q#46)POIとjxl jarの違いは何ですか?
# JXL jar POI jar 1 JXLは、「。xls」形式、つまりバイナリベースの形式をサポートしています。 JXLは、Excel 2007および「.xlsx」形式(XMLベースの形式)をサポートしていません。 POIjarはこれらすべてのフォーマットをサポートします 二 JXLAPIの最終更新日は2009年です POIは定期的に更新され、リリースされます 3 JXLのドキュメントは、POIのドキュメントほど包括的ではありません。 POIには、十分に準備された非常に包括的なドキュメントがあります 4 JXL APIは、リッチテキスト形式をサポートしていません POIAPIはリッチテキストフォーマットをサポートしています 5 JXLAPIはPOIAPIよりも高速です POIAPIはJXLAPIよりも低速です
Q#47) SeleniumとQTPの違いは何ですか?
特徴 セレン クイックテストプロフェッショナル(QTP) ブラウザの互換性 Seleniumは、Firefox、Chrome、Safari、Internet Explorer、Operaなどのほとんどすべての一般的なブラウザをサポートしています QTPは、Internet Explorer、Firefox、およびChromeをサポートしています。 QTPはWindowsオペレーティングシステムのみをサポートします 分布 Seleniumはオープンソースツールとして配布されており、無料で入手できます。 QTPはライセンスツールとして配布され、商品化されています テスト中のアプリケーション Seleniumは、Webベースのアプリケーションのみのテストをサポートします QTPは、WebベースのアプリケーションとWindowsベースのアプリケーションの両方のテストをサポートします オブジェクトリポジトリ オブジェクトリポジトリは、別のエンティティとして作成する必要があります QTPは、オブジェクトリポジトリを自動的に作成して維持します 言語サポート Seleniumは、Java、C#、Ruby、Python、Perlなどの複数のプログラミング言語をサポートしています QTPはVBスクリプトのみをサポートします ベンダーサポート Seleniumは無料のツールであるため、ユーザーは問題のトラブルシューティングにおいてベンダーのサポートを受けられません。 問題が発生した場合、ユーザーはベンダーのサポートを簡単に受けることができます
Q#48)WebDriverはモバイルアプリケーションをテストできますか?
WebDriverはモバイルアプリケーションをテストできません。 WebDriverはWebベースのテストツールであるため、モバイルブラウザ上のアプリケーションをテストできます。
Q#49)キャプチャを自動化できますか?
いいえ、キャプチャとバーコードリーダーは自動化できません。
Q#50)オブジェクトリポジトリとは何ですか? Seleniumでオブジェクトリポジトリを作成するにはどうすればよいですか?
オブジェクトリポジトリは、テスト対象アプリケーション(AUT)に属するWeb要素のコレクションとそのロケーター値を指すために使用される用語です。したがって、スクリプト内で要素が必要な場合はいつでも、オブジェクトリポジトリからロケーター値を入力できます。オブジェクトリポジトリは、ロケーターをスクリプト内にハードコーディングするのではなく、一元化された場所に格納するために使用されます。
Seleniumでは、オブジェクトをExcelシートに保存して、必要なときにいつでもスクリプト内に入力できます。
それは今のところすべてです。
この記事で、SeleniumとWebDriverのインタビューで最もよく寄せられる質問への回答が見つかることを願っています。ここで提供される回答は、Seleniumの基本と高度なWebDriverトピックを理解するのにも役立ちます。
ここで回答されていないSeleniumインタビューの質問はありますか? 以下のコメントでお知らせください。すべてに回答するよう努めます。
=>これで、この記事だけでなく、完全なSeleniumトレーニングシリーズも終了します。 このページにリストされているすべての30以上のチュートリアルのリストを確認してください 。ご意見・ご質問をお聞かせください。
推奨読書