あなたの最初のtestng自動化スクリプトのための完全なガイド


オートメーションテスターTestngの愛は、セレン自動化スクリプトを駆動するために使用できるJavaテストフレームワークです.
オートメーションになると、誰もセレンと競争できない.
あなたが自動化の分野に飛び込むことを計画しているならば、testngはあなたの一番上の選択でありえます.
初心者にとって、彼が始める必要がある場所からポイントを理解するのは難しくなります.
そこで、このブログでは、最初の自動化テストスクリプトから始めるための一歩一歩の手順を思いつきました.
このためには、まずEclipseを使用してセレンのテストオートメーション環境を設定し、スクリプトを進める必要があります.それをしましょう.
次のタブでブラウザを開き、Testngの最初の自動化スクリプトを起動します.必要なのはわずか20分です.

環境の設定


Step 1 :まず、Java 8またはJDK 1をダウンロードします。8あなたのシステムにインストールします。


リンクを使用してjava 8をダウンロードできます.
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
java 8をインストールした後、パスを設定します.

これを行うには、起動する→ コンピュータ→ 右クリック→ プロパティ→ 高度なシステム設定→ 環境変数→ 新しい→ クリックすると、変数名と変数パスを入力する必要があります.
「環境変数」ウィンドウに次の画面が表示されます.

新しいをクリックすると、次のウィンドウが表示されます.変数名として' path 'を入力します.そして、あなたのJDKが変数経路にインストールされた経路を入力してください
これが適切にインストールされているかどうかを検証しましょう.

これを行うには、「Cmd」ウィンドウを開き、「javac」と入力します.

JDKのすべての詳細については、ウィンドウが表示されます.あなたがそれを得るならば、それは正しくインストールされていないならば、それから、もう一度試みます.

Step 2 : Eclipseのダウンロードと実行


このリンクを使用してEclipseをダウンロードできます.
https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1
Java EE開発者向けのEclipse IDEを選択し、インストールします.

いったんインストールすると、スクリプトを書くためにEclipse IDEウィンドウが開きます.

ステップ3:ダウンロードEclipse市場からTestng


このために、助けに行く→ エクリプス市場

Eclipseの「インストール」をクリックします.

プロセスを終了する.

ステップ4:ダウンロードセレン3.11.0


このリンクをダウンロードすることができます

https://www.seleniumhq.org/download/ ステップ5 :セレン依存ファイルのダウンロード


JDK 3.11.0のためのセレン依存ファイルをダウンロードしてください.

ステップ6 :プロジェクトを作成する


Javaプロジェクトの作成
ファイルを作成するには→ 新しい→ その他

Javaプロジェクトを作成する

プロジェクト名を入力します.
注意:プロジェクトの名前のスペースを入力しないでください

をクリックします

左側に新しいJavaプロジェクトが作成されます.' firstAutomationProject 'をクリックします.srcファイルが表示されます.それを右クリックします.新規選択→ その他→ 新しいJavaパッケージを作成します.

「完了」をクリックします.


ステップ7 :新しいTestngクラスを作成します。


パッケージNewpackの下に新しいTestngクラスを作成します.newpack -> new ->その他を右クリックします

チェック@ beforetestと@ aftertest.完了をクリックしたら、自動スクリプトを書くように設定します.

このようにテンプレートtestngコードが開きます.

ステップ8 :依存ファイルでセレンjarファイルをインポートする


FirstAutomationTestの右クリック→ インポート.「外部jarを追加」をクリックし、上記でダウンロードしたjarファイルを追加します.

このようにテンプレートtestngコードが開きます.

ステップ8 :依存ファイルでセレンjarファイルをインポートする


FirstAutomationTestの右クリック→ インポート.「外部jarを追加」をクリックし、上記でダウンロードしたjarファイルを追加します.

同様に、上記のリンクからダウンロードした依存ファイルをインポートします.

ZIP抽出依存ファイルからlibファイルをインポートします.

libフォルダ内のすべてのファイルを選択します.

すべてのファイルをインポートしたら、コードを書くように設定します.

コードを書く


今開いているEclipseウィンドウで次のコードを書きます.
Webpageのタイトルを確認するためにコードを書いています.
コード(自己説明):
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

//comment the above line and uncomment below line to use Chrome
//import org.openqa.selenium.chrome.ChromeDriver;
public class NewTest {
 WebDriver driver;
    [@Test](http://twitter.com/Test)
    public void FirstTest() {
        // declaration and instantiation of objects/variables
     System.setProperty("webdriver.chrome.driver","C:\\Users\\Admin\\Downloads\\chromedriver_win32\\chromedriver.exe");
  driver = new ChromeDriver();
  //comment the above 2 lines and uncomment below 2 lines to use Chrome
  //System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
  //WebDriver driver = new ChromeDriver();

        String baseUrl = "[https://www.lambdatest.com](https://www.lambdatest.com/?utm_source=devto&utm_medium=organic&utm_campaign=apr06_sd&utm_term=sd&utm_content=)/";
        String expectedTitle = "LambdaTest - Perform all your tests on cloud";
        String actualTitle = "";

// launch Chrome and direct it to the Base URL
        driver.get(baseUrl);

// get the actual value of the title
        actualTitle = driver.getTitle();

/*
         * compare the actual title of the page with the expected one and print
         * the result as "Passed" or "Failed"
         */
        if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");
        }

        //close Fire fox
        driver.close();

    }

}
コードを書いた後、それを保存し、新しいテストを右クリックします.ジャバ→ ASとして走る→ テストテスト.
したら、それをクリックすると、Chromeのブラウザのウィンドウが表示されますあなたのコードをテストするために入力したウェブサイトを開きます.そして、テストが完了するとすぐに自動的に閉じるでしょう、そして、以下の出力部では、以下のコンソールでテストの状態として' test pass 'が表示されます.

これにより、ローカルのWebドライバを使用して、テストで最初の自動化テストを実行します.
指定されたウェブページのタイトルを確認するには、既に指定されているものと一致します.

Testng認定を使用すると、Testngで自動化テストを実行し、次のレベルにあなたのキャリアを取るあなたのスキルに挑戦することができます.
Lambdatestからのtestng証明の短い垣間見があります:

LambdatestにおけるリモートWebドライバを用いたTestng & Seleniumによるクロスブラウザ自動テストの実行


これまでのところ、ローカルのWebドライバを使用してtestngスクリプトを実行する方法に気づいた.それはすべて簡単かつ迅速ですが、しかし、セレンとの自動化のテストを実行するためのローカルWebドライバを使用してあなたのウェブサイトやWebアプリケーションをテストするためのブラウザの様々なを提供しません!ローカルマシンにインストールされているブラウザでテストを行うことができます.インターネット上のブラウザの豊富を考慮すると、ほぼすべてのWebブラウザ上のローカルマシンを介してあなたのウェブサイトのテストをすることは不可能かもしれない.これはクラウドテストが重要な役割を果たすところです.LambDatastは、リモートのWebブラウザを使用してセレンスクリプトを実行するために提供するクラウドベースのクロスブラウザのテストツールです.このリモートのWebドライバは、2000以上のブラウザ+ブラウザのバージョンLambdatestセレングリッドによってサポートされてテストを行うことができます.LambDatastまた、あなたのローカルホストのWebアプリケーションやWebページにSSHトンネルを介してテストを実行することができます.あなたがテスト結果のより高い報道のためにあなたのOSにブラウザの過度の数をインストールする必要がないこの方法.

を使用した単一のインスタンスの実行


あなたのコードの2、3の変化はあなたがLambdatestセレンGridの上でセレンテストスクリプトを実行するために必要とするすべてです.ここでは、Lambdatestセレングリッドを示すために別の例を見てみましょう.
注意: は、ユーザーがテストをスキップするように定義された場合に発生します.テストステータスはisskip ()メソッドの結果によって考慮されます.
我々は、シンプルなリストのアプリを行うのスクリプトを実行されます.このリストでは、私たちのコードは、2つの項目として行われ、リストアイテムを追加し、保留中のアイテムの合計数が表示されますマーキングされます.
あなたは、同様に我々のSkipExceptionの上で以下のコードを見つけることができます.
import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;

public class TestNGTodo{
     public String username = "YOUR_USERNAME";
    public String authkey = "YOUR_ACCESS_KEY";
    public static RemoteWebDriver driver = null;
    public String gridURL = "[@hub](http://twitter.com/hub).lambdatest.com/wd/hub";
    boolean status = false;

    [@BeforeClass](http://twitter.com/BeforeClass)
    public void setUp() throws Exception {
       DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "chrome");
        capabilities.setCapability("version", "70.0");
        capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get the any available one
        capabilities.setCapability("build", "LambdaTestSampleApp");
        capabilities.setCapability("name", "LambdaTestJavaSample");
        capabilities.setCapability("network", true); // To enable network logs
        capabilities.setCapability("visual", true); // To enable step by step screenshot
        capabilities.setCapability("video", true); // To enable video recording
        capabilities.setCapability("console", true); // To capture console logs
        try {
            driver = new RemoteWebDriver(new URL("https://" + username + ":" + authkey + gridURL), capabilities);
        } catch (MalformedURLException e) {
            System.out.println("Invalid grid URL");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@Test](http://twitter.com/Test)
    public void testSimple() throws Exception {
       try {
              //Change it to production page
            driver.get("https://4dvanceboy.github.io/lambdatest/lambdasampleapp.html");

              //Let's mark done first two items in the list.
              driver.findElement(By.name("li1")).click();
            driver.findElement(By.name("li2")).click();

             // Let's add an item in the list.
              driver.findElement(By.id("sampletodotext")).sendKeys("Yey, Let's add it to list");
            driver.findElement(By.id("addbutton")).click();

              // Let's check that the item we added is added in the list.
            String enteredText = driver.findElementByXPath("/html/body/div/div/div/ul/li[6]/span").getText();
            if (enteredText.equals("Yey, Let's add it to list")) {
                status = true;
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@AfterClass](http://twitter.com/AfterClass)
    public void tearDown() throws Exception {
       if (driver != null) {
            ((JavascriptExecutor) driver).executeScript("lambda-status=" + status);
            driver.quit();
        }
    }
}
テストを実行するために選択した構成を見てください.それらは私たちの望ましい能力です、そして、それらの能力のために提供されるコードはGitHub repositoryから取り出されます.
LambdaTest Capabilities Generator
クリップボードにコピーを言うボタンをクリックするだけでワンクリックであなたの選択に基づいてすべてのコードをコピーするのに役立ちます.
それはあなたの最初の自動化テストスクリプトを実行するために必要です.
注: 24579152はTestngのDataProviderメソッドの呼び出しに関するどんな問題でも起こります.

Lambdatestを用いたTestngによるクロスブラウザ並列テストの実行


では、複数の設定で単一のテストを実行しましょう.はい、並列テスト実行について話しています.
並列テストを実行するには、testngを生成しなければなりません.以下のパラメータを使用するテストケースと一緒のXMLファイル
org.テスト.注釈.パラメータ
並列テストの例です.
import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;


public class TestNGTodo {
     public String username = "YOUR_USERNAME";
    public String authkey = "YOUR_ACCESS_KEY";
    public static RemoteWebDriver driver = null;
    public String gridURL = "[@hub](http://twitter.com/hub).lambdatest.com/wd/hub";
    boolean status = false;

    [@BeforeClass](http://twitter.com/BeforeClass)
    [@org](http://twitter.com/org).testng.annotations.Parameters(value={"browser","version","platform"})
    public void setUp() throws Exception {
       DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "chrome");
        capabilities.setCapability("version", "70.0");
        capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get the any available one
        capabilities.setCapability("build", "LambdaTestSampleApp");
        capabilities.setCapability("name", "LambdaTestJavaSample");
        capabilities.setCapability("network", true); // To enable network logs
        capabilities.setCapability("visual", true); // To enable step by step screenshot
        capabilities.setCapability("video", true); // To enable video recording
        capabilities.setCapability("console", true); // To capture console logs
        try {
            driver = new RemoteWebDriver(new URL("https://" + username + ":" + authkey + gridURL), capabilities);
        } catch (MalformedURLException e) {
            System.out.println("Invalid grid URL");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@Test](http://twitter.com/Test)
    public void testSimple() throws Exception {
       try {
              //Change it to production page
            driver.get("[https://4dvanceboy.github.io/lambdatest/lambdasampleapp.html](https://4dvanceboy.github.io/lambdatest/lambdasampleapp.html)");

              //Let's mark done first two items in the list.
              driver.findElement(By.name("li1")).click();
            driver.findElement(By.name("li2")).click();

             // Let's add an item in the list.
              driver.findElement(By.id("sampletodotext")).sendKeys("Yey, Let's add it to list");
            driver.findElement(By.id("addbutton")).click();

              // Let's check that the item we added is added in the list.
            String enteredText = driver.findElementByXPath("/html/body/div/div/div/ul/li[6]/span").getText();
            if (enteredText.equals("Yey, Let's add it to list")) {
                status = true;
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    [@AfterClass](http://twitter.com/AfterClass)
    public void tearDown() throws Exception {
       if (driver != null) {
            ((JavascriptExecutor) driver).executeScript("lambda-status=" + status);
            driver.quit();
        }
    }
}
さあ、TEXngを生成しましょう.ブラウザ、ブラウザのバージョン、OSなどの基本的なテスト構成を宣言するXMLファイル.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "[http://testng.org/testng-1.0.dtd](http://testng.org/testng-1.0.dtd)">
<suite thread-count="3" name="LambaTestSuite" parallel="tests">

  <test name="WIN8TEST">
  <parameter name="browser" value="firefox"/>
  <parameter name="version" value="62.0"/>
  <parameter name="platform" value="WIN8"/>
    <classes>
      <class name="lambdatest.TestNGTodo "/>
    </classes>
  </test> <!-- Test -->

  <test name="WIN10TEST">
  <parameter name="browser" value="chrome"/>
  <parameter name="version" value="70.0"/>
  <parameter name="platform" value="WIN10"/>
    <classes>
      <class name="lambdatest.TestNGTodo "/>
    </classes>
  </test> <!-- Test -->
  <test name="MACTEST">
  <parameter name="browser" value="safari"/>
  <parameter name="version" value="11.0"/>
  <parameter name="platform" value="macos 10.13"/>
    <classes>
      <class name="lambdatest.TestNGTodo"/>
    </classes>
  </test> <!-- Test -->

</suite>
口先!これは、LambDataest上でDataProviderInvocationExceptionを使用して並列自動テストを正常に実行するために必要なすべてです.
何も新しい何かをやった後に感じる感じにマッチしません.だから、あなたの最初の自動化スクリプトを実行した後に良い感じ?下記のコメント欄であなたの経験を教えてください.