0

Sorun şu: eğer otomatik testlerimi maven yoluyla başlatırsam (komut isteminden VEYA tutulması), bunlar sorunsuz çalışır. Eğer testng.xml (tutulmadan) ile başlatmaya çalışırsam, testlerim NullPointerException ile başarısız olur.Selenium testi sadece maven ile başlatılabilir. TestNG xml dosyasını kullanmaya başladığınızda NullPointer ile başarısız (sistem değişkeni 'null' olduğundan)

private final String browser=System.getProperty("browser").toUpperCase(); 

Yani, deney daima: Temelde burada "tarayıcı" Burada

<properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <!-- Dependency versions --> 
     <selenium.version>LATEST</selenium.version> 
     <!-- Configurable variables --> 
     <threads>3</threads> 
     <browser>chrome</browser> 
     <overwrite.binaries>false</overwrite.binaries> 
    </properties> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.19.1</version> 
      <configuration> 
       <parallel>methods</parallel> 
       <threadCount>${threads}</threadCount> 
       <systemPropertyVariables> 
       <browser>${browser}</browser> 
        <!--Set properties passed in by the driverbinary downloader--> 
        <webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver> 
        <webdriver.ie.driver>${webdriver.ie.driver}</webdriver.ie.driver> 
        <webdriver.opera.driver>${webdriver.opera.driver}</webdriver.opera.driver> 
       </systemPropertyVariables> 

ve denilen sistem değişkeni ile benim pom.xml ben "tarayıcı" değişken almak için kullanmak kod olmasıdır Yukarıdaki satırda NullPointerException ile yürütmeyi durdurur. hatadır: BTW

FAILED: secondTest 
java.lang.NullPointerException 
    at DriverPackage.WebDriverThread.<init>(WebDriverThread.java:17) 

I (sadece bir metin değeri gibi) şu şekilde tarayıcı değeri atarsanız:

private final String browser=("firefox").toUpperCase(); 

sonra testi de Testng.xml yoluyla çalışır.

================

Benim düşünce bu daha ziyade yaklaşımı hakkında, benim kodu hakkında olmadığıdır. Belki de TestNG'nin yardımıyla sistem değişkenlerine erişmenin hangi endişe olduğunun farkında olmadığım bazı şeyler var mı? Ek olarak bahsetmek istediğim, maven-failsafe-plugin eklentisini kullanıyorum (bunu pom.xml dosyasında görebilirsiniz). Herhangi bir öneri son derece takdir edilmektedir.

cevap

0

Bunu çözmenin birkaç yolu vardır.

  1. Çalışmaya yönelik komutları kullanarak çalıştırın. Vm argümanlarında pom içinde ayarladığınız özellikleri ayarlayın ve süit dosyanızı belirtin.

  2. Xml'inizde, dinleyicileri kullanarak okuyabileceğiniz ve kodda belirtilebilecek statik değişkenleri ayarlayabileceğiniz parametreleri tanımlayın.

  3. Bir özellik dosyası tanımlayın, eğer system.getProperty (tarayıcı) boşsa, özellikler dosyasını okuyun ve verileri buradan alın.