2016-05-19 13 views
0

異なる環境(最大3)で同じテストを実行する必要がありますが、それぞれについて異なるデータを使用する必要があります。私が持っているUserDataのクラスで異なるデータで複数の環境をテストする - ベストプラクティス

@Test (groups = "core", description = "Login: Valid log in") 
public void validLogin() { 
    User user = UserData.user_2(); 
    loginPage.logOn(user); 
} 

public static User user_2() { 
    return new User().newUser("user2", "password"); 
} 

"user2は" すべての環境に存在しない

は、私がテストメソッドを持っています。私は、テストデータと一致するようにすべての環境で利用可能なデータを変更することができないかもしれません。

テストはMavenとTestNgのどちらかで実行されるので、実行環境のパラメータを送信できます。

私の最初に考えたのは使用することです:

public static User user_2() { 
    switch(env) { 
    case "env1": return new User().newUser("user2", "password"); break; 
    case "env2": return new User().newUser("user2Z", "password"); break; 
    case "env3": return new User().newUser("user2X", "password"); break; 
} 

私はデータクラスとメソッドの限られた数(< 100)が、数千回のテストを持っています。

さまざまな環境でテストするために必要なデータを設定して処理する最良の方法は何ですか?

+0

このような奇妙な要件を実装する前に、おそらくあなたがこれをやろうとしている理由を分かち合うことができます。そして、より良いアプローチを見つけるお手伝いをします。 –

答えて

0

異なるユーザーの場合、 私のテストケースはそのままで、変更を最小限に抑えてください。 これは私が従うものです。 eclipseでusername.propertiesファイルと言うファイルを作成します。

[email protected] パスワード= passswd1

あなたは、IEの名前で、ここで複数のユーザーを作成することができます

[email protected] ロハンのパスワード:ロハン今

たち私たちのクラスでこのファイルを呼び出す必要があります。 以下の例を参照してください。そこでここではユーザ名がプロパティファイルから取得されます

メインテスト

SignInPage.SendkeysMethodForSignInPAgeForPropertyFile(driver, By.cssSelector("input[id='Email']") , "username"); 

SignInPage.SendkeysMethodForSignInPAgeForPropertyFile(driver, By.cssSelector("input[id='Passwd'][type='password']"), "password"); 

これはSendkeysMethodForSignInPAgeForPropertyFileに行きます:

パブリッククラスSignInPageとしてSendkeysForPropertyFile方法に行きます{

public void SendkeysMethodForSignInPAgeForPropertyFile(WebDriver driver, By by, String Text) { 
    WebUtils.SendkeysForPropertyFile(driver,by, Text); 
    } 
} 

ReadFileData()クラスから読み込みます
public static void SendkeysForPropertyFile(WebDriver driver, By by, String Text) { 
    ReadFileData File = new ReadFileData(); 
    Properties Values = File.ReadFile(); 
     WebElement Element = driver.findElement(by); 
     Element.clear(); 
     if (Text == "username"){ 
     Element.sendKeys(Values.getProperty("username")); 
     } 
     else { 
     Element.sendKeys(Values.getProperty("password")); 
     } 

これは:

public class ReadFileData { 
    public Properties ReadFile() { 
     File file = new File("D:\\Selenium\\Gmail_Web_UI\\Loginproperty.properties"); 

     FileInputStream fileInput = null; 
     try { 
      fileInput = new FileInputStream(file); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
     Properties prop = new Properties(); 

     //load properties file 
     try { 
      prop.load(fileInput); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     return prop; 
    } 

これは、ユーザー名とパスワードを1つのファイルで安全に保つのに役立ちます。 さらにお問い合わせの際は、私に返信してください。ハッピーラーニング:-)

関連する問題