Webテストの自動化セレンの研究ノート(A)

 

1、ウェブの自動化入門テスト
ビルドに書き込まれた自動化ユースケース、セレンの利点とオートメーション環境の原則:自動化インフラストラクチャを
セレンの基礎:一般的な8大要素の配置(フォーム)、共通の要素の処理、ドロップダウンボックス要素の処理、別のウィンドウのスイッチ素子は、高度な待っている要素
フレームへの需要
    要件分析-ユースケースの設計-基本的なスクリプト-ログオン/復元スクリプトをショッピング-データ駆動型- -スクリーンショットを聞くために-パッケージ構成ファイルを読み込むコード成層-フレームワークを達成するために-ログ収集-レポート生成-継続的インテグレーション
2、機能テストと自動テストの違い
    :機能テストは何
        BUGを探しニーズ満たすために
    自動化されているものをテスト:
        ;作業効率を向上させ、労働投入を減らし、回帰テスト、システムが監視書いたコード、スクリプトはプログラムが自動的に実行できるようにする
3を、プロセス・テストの自動化された
    共通のプロセス・テストの
        分析をし、要件をテスト-テスト計画を策定するために- -オプションを環境-ケースを使用する準備ができて-コーディング-分析
4、手動テストケースを自動化し、テストを違い
    、手の使用事例
        IDモジュール前提条件の手順は、実際の結果が期待される
    自動化されたテストケース 
        IDモジュールの前提条件の手順期待される結果 実際の結果 
     が、精度は同じ2つのステップではない 
、なぜ自動化を行う、5?
    人件費を削減し
    、反復作業の多くを完了するために、
    テストの効率を改善するために、
    作業の一貫性を確保するために、信頼性を高めます
    次の方法で行われ、手動作業完了できない
自動化に適している場合、6か?
    タイム・
    人事
    システム
    の主要
7、どのような状況下で自動化していますか?
    ユニットテスト?統合テスト?インタフェースのテスト?UIテスト?
8、種類プロジェクトの何が自動テストを行う必要がありますか?
    変更が遅いの需要
    サイクル長
    スクリプトを再利用することができます
9、セレンはじめ
    セレン 
10、セレンの利点とは、作品
    Seleniumの利点を:オープンソース(無料)、ブラウザ内で実行マルチブラウザ、マルチプラットフォーム、完全なAPI、
    セレンの作品を
        まず、それはスクリプトで、クライアントは、スクリプトがドライバを発生し始めて開始します、[サーバーそのブラウザを生成するために開始され、私たちのブラウザはポートにバインドされ、我々はいくつかのセッションを送ることができますスクリプトこの時間はありますサーバーにいくつかのリクエストを送信した後、彼はいくつかのことをやらせる、ブラウザにリクエストを送信するには、ブラウザが自動的に介して送信するために要求クライアントを解析し、実行はの実装に基づいて行われます後、完成パースした後、適切な処置を実施しますその結果、戻って私たちのスクリプトにこの事は、正常な応答の成功ならば、失敗は、失敗しただろうクライアントに返す、あなたは結果を参照することができます
11の一般的なブラウザが起動し
    、Firefoxのブラウザ(Firefoxでの)ドライブwebdriverをが来る
        *インポートorg.openqa.selenium;
        org.openqa.selenium.firefox *インポート;
        webdriverをドライバー;
        するSystem.setProperty(「webdriver.firefox.bin」、「Firefoxののパスを詳細な」); //ブラウザがデフォルトのパスにこのラインをインストールする必要はありません
        ドライバー=新しいFirefoxDriver (); //インスタンス化オブジェクトFirefoxの
        文字列testUrl = "http://www.baidu.com";
        driver.ger(testUrl);
        driver.quit();
    クロームプロモーター(いないドライブwebdriverをクロームいます)
        org.openqa.selenium *インポート;.
        インポートorg.openqa.selenium.chrome *;
        webdriverをドライバー;
        するSystem.setProperty( "webdriver.chrome.driverは"、 "Chromeは、パスを詳細に説明"); //ブラウザがデフォルトでインストールされていませんこれは、パスラインが必要
        //インスタンス化オブジェクト、ドライバ=新しいChromeDriver()
        文字列testUrl =「http://www.baidu.com」と、
        driver.ger(testURL)。
        driver.quit();
    IEプロモーター
        インポートorg.openqa.selenium * ;.
        インポートorg.openqa.selenium.InternetExplorerDriver *;
        webdriverをドライバと
        するSystem.setProperty( "webdriver.ie.driver"、 "IE、詳細パス")。 //デフォルトのパスにインストールされているブラウザはこのラインのために必要されていない
        ドライバ=新しいInternetExplorerDriver(); //インスタンス化オブジェクト
        の文字列testUrl =「http://www.baidu.com」;
        driver.ger(testUrl);
        ドライバー。 )(終了;
12は、位置決め要素
    10が位置決め方法である
        By.id By.name By.tagName By.className By.linkText By.partialLinkText By.xpath By.cssSelector位置決めテーブル・レベルの位置
    driver.findElement(By.id(「KW 。 "))のSendKeys("セレン");
    driver.findElement(By.name("WD "))のSendKeys(" セレン ");
    。driver.findElement(By.classname( "s_ipt"))のSendKeys( "セレン")
    。driver.findElement(By.xpath( ".//*[@ ID = 'キロワット']"))のSendKeys(「セレン");
    driver.findElement(By.cssSelector(" #1キロワット")。)のSendKeys("セレン");
    それは最初にかかる時間の多くの要素がある
    driver.findElementは(By.linkText("ニュース「)) .click();
    driver.findElement(By.partialLinkText(「新しい」))をクリック();.
    findElement我々はfindElementsを必要とするメソッドのセットを配置する、単一の要素を配置する方法であって、findElementsは、の配列を取得する
    テーブル位置決めを:
        文字列= STR "第二行、最初の列";
        WebElement = driver.findElement表(By.tagname( "表"))
        リスト<WebElement> = Table.findElements行(By.tagName( "TR"));
        のため(WebElement行:行){
            リスト<WebElement> TDS = row.findElements(By.tagName( "TD"))。
            用(TD WebElement:TDS){
                String値= td.getText();
                IF(value.equals(STR)){
                    System.out.pringln(値+ "\ N-");
                }他{
                    System.out.pringln( "エラー"+" \ N- ");
                }
            }
        }
    共通の自動化フレームワーク:キーワード駆動、データ駆動型、ハイブリッドドライブ
13、共通API
    URL方式開くため
        Driver.get()
        Driver.navigate.to()
    演算子ブラウザAPIの
        ドライバを.navigate()。リフレッシュ()//ページのリフレッシュ
        )Driver.navigateを(。前進()//前方
        Driver.navigate()。バック()//バック
        Driver.getTitle()
        Driver.getCurrentUrl()//現在を取得URL
        Driver.manage()。窓()。最大化()// ウィンドウが最大化され
        Driver.quite()//ブラウザがプロセスまだ、完全には閉じられていない、閉じている
        Driver.close()//閉じるブラウザの
        スクロールバー運転
        操作ブラウザのクッキーの
    入力ボックス操作のAPI
        のSendKeys()
        クリア()
        のgetText()
        クリック()
    チェックボックス処理
        のラジオボタンが
        ボックス
        のドロップダウンボックスの
    特別なウィンドウ操作を
        インラインフレームウィンドウハンドル
        加工ポップ
    JS操作を
        Jsの位置決め
        Jsの要素をクリックし
    ページを処理要素の
        ローディングを待つが、
        属性に応じて要素の値を取得する
        CSS属性がオブジェクト取得
        オブジェクト状態取得
            ページが表示されisdisplay()
            要素がfind_elementを存在します
            要素がisSelected()を選択されているかどうかを
            アッシング状態ISENABLED()である
    特別な操作を説明し
        、エラーのスクリーンショットを保存するとき
        シミュレート、マウスの右
        ホバー
        アップロード
        日付コントロールハンドルを
        ブラウザのスクロールバーの操作
14、共通の要素の処理は、
    ボックスの入力1
        のSendKeysを 
        クリア 
        のgetAttribute 
    2単一のボックス
        をクリックし 
        明らか//明確
        かどうかisSelected //チェックを
    3.チェックボックスを
        クリックして
        明らか
        isSelected
        ISENABLED //がイネーブル状態かどうかを決定する
    4.ボタン
        をクリックし 
        ISENABLED //がイネーブル状態かどうかを決定する
    5.フォームが
        サブミット
    6.アップロードを
        SendKeys 
 要素選択- 15、ドロップダウンボックス
    選択リスト=新しい選択(ロケータ)を配置するドロップダウンボックス 、
    テキスト値インデックス要素は、対応する動作を選択するためのドロップダウンボックスで 
                         選択された要素deselectAll deselectByvalue deselectByVisibleTextに対応しない
                         GET値getAllSelectdOptions選択項目()getFirstSelectedOptionを() .getText
16は、操作要素が進め
    左クリック:
        アクションアクションアクション新新=(ドライバ);
        Action.click()は(実行);.
    右クリック:
        アクションアクションアクション新新=(ドライバ);
        Action.contextClick()。実行();
    マウスのダブル:
        アクションアクションアクション新新=(ドライバ);
        Action.doubleClick()()を実行します;。
    ホバー:
        新しい=アクションアクション(ドライバ)新アクション;
        ()を実行しAction.moveToElement();.
。17、スイッチング特別なウィンドウ
    のiframeプロセス
        SWITCHTO()は
    、プロセスポップ
        SWITCHTO()
        (getWindowHandlesを)
待っ種類によって分類18,3
    のThread.sleepを待つことを余儀なく()
        あなたは永遠に待つために呼び出す場合は
    待って表示し    
        (.until新しい新WebDriverWait(ドライバ、15)を
            ExpectedConditions.presenceOfElementLocated(By.cssSelector(「CSSロケータ」))
        );
        要素が見つからない場合は、継続する指定した時間内に見つかった場合それが与えられている
    暗黙の待機
        Driver.manager()timeouts.implicitlyWait(10、TimeUnit.SECONDS );.
        グローバルを、10秒ごとまたはより少ない見つけるための秒数として、それは次のステップ発見された
テストの自動化され、19を
    オートメーション目的を:
        人件費を削減
        作業の重複の多くを完了するために
        、テストの効率を向上させるために
        、作業の一貫性を保証するために
        手で完成すると、作業完了できない
20を、Mavenの使用
    Mavenの紹介
        Mavenはのためのライフサイクルのフレームワーク構築の完全なセットを提供プロジェクト管理ツールである
    Mavenのの役割
        構築、ドキュメント生成を、レポート、依存性
21、復興
    再建は、コードを調整することであるが、簡単にソフトウェアを理解し、改善するために、プログラムをより合理的にするためにソフトウェアの品質、性能、建築、デザインパターンを改善するために、プログラムの機能特性を変更しません。拡張性と保守性。

----------------免責事項:この記事は元の記事CSDNブロガー「Sunshicy」で、CC 4.0 BY-SAの著作権契約書に従って、元のソースのリンクと、この文を添付してください、再現。 。オリジナルリンクします。https://blog.csdn.net/sunshicy/article/details/80305750

おすすめ

転載: www.cnblogs.com/pypypy/p/11901289.html