Testowanie

Czytanie z plików XML w testach automatycznych

Jako że swego czasu całkiem dużo czasu poświęciłem na znalezienie satysfakcjonującego mnie rozwiązania pozwalającego na odczyt wartości z plików XML (i oczywiście późniejsze ich wykorzystywanie w testach automatycznych), chciałbym innym tego czasu oszczędzić i przedstawić skuteczne oraz proste rozwiązanie. Znakomicie sprawdzi się (a przynajmniej powinno) jako baza do dalszego rozwoju maszynek zaciągających dane z plików wystawionych na zewnątrz.

Poniższe przykłady napisane w JAVA.

1. Zaczynamy od zdefiniowania prostego Stringa. To już tutaj dzieje się „wciąganie” pliku do pamięci i wyciąganie z niego interesujących nas wartości.

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
 
public class XMLReader
{	
	public static String GetSiteAddress() throws Exception
	{		
		 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
		 documentBuilderFactory.setNamespaceAware(true);
		 DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
		 
		 //path to the Parameters.xml file
		 Document document = documentBuilder.parse("config\\Parameters.xml");
		 
		 //initialize java-native XPath reader
		 XPathFactory xpathFactory = XPathFactory.newInstance();
		 XPath xpath = xpathFactory.newXPath();
		 
		 //get the requested value by using XPath
		 XPathExpression expr = xpath.compile("config/sites/site[@ToTest]/address");
		 
		 //return value
		 String address = (String) expr.evaluate(document, XPathConstants.STRING); 
		 return address;		 
	}
}

2. W dowolnej klasie która zawiera zdefiniowane testy, sprawdzamy, że powyższy String zostanie poprawnie zwrócony. W moim przypadku miejscem w którym użyję zczytywania z XML, będzie klasa Setup, która jest standardowo używana na samym starcie każdego wykonania zbioru testów.

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import XMLReader.XMLReader;
import XMLWriter.XMLWriter;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class Setup {

	public static void WebDriverSetup() throws Exception {

		//initialize driver      
		System.setProperty(XMLReader.GetBrowser(), XMLReader.GetWebDriverExe());

		if(XMLReader.GetBrowser().contains("webdriver.ie.driver")){

			//here was something... :)
		}

		else {

			driver = new ChromeDriver(); 

			//tests should start with opening a baseUrl (http://192.168.1.10:1555 in this case)
			String baseUrl = XMLReader.GetSiteAddress();
			driver.get(baseUrl);  
			driver.manage().deleteAllCookies();
			driver.manage().window().maximize();
		} 
	}		  	  
}

3. Uruchamiamy testy i sprawdzamy, że wartości, które zaciągnęła nasza maszynka są zgodne z tym co podaliśmy w ścieżce XPath w Stringu GetSiteAddress i zgodnie z tym, co jest w samym pliku XML, którego przykładowwą zawartość umieszczam poniżej.

C:\\Users\\rmianowicz\\Automaty\\Project_1\\screenshots\\ webdriver.chrome.driver MyPortal_1.0
http://192.168.1.10:1555

admin ZbigniewStonoga MyPortal_2.0

http://192.168.1.10:1556

admin ZbigniewStonoga

 

Share this Story
  • Czytanie z plików XML w testach automatycznych

    Jako że swego czasu całkiem dużo czasu poświęciłem na znalezienie satysfakcjonującego mnie rozwiązania pozwalającego na odczyt wartości z plików XML (i oczywiście późniejsze ich wykorzystywanie w testach automatycznych), chciałbym innym tego czasu oszczędzić i przedstawić skuteczne oraz proste rozwiązanie. Znakomicie sprawdzi się (a przynajmniej powinno) jako baza do dalszego rozwoju maszynek zaciągających dane z plików wystawionych na zewnątrz.
Więcej postów
  • Instaprefs – zwiększ możliwości swojego Instagrama

    Odnoszę wrażenie, że przy codziennym korzystaniu z aplikacji mobilnej Instagrama, jego użytkownicy mogą odczuwać niedosyt i dyskomfort. Ten pierwszy może być spowodowany niepełną (ograniczoną) funkcjonalnością. Dyskomfort z kolei może powodować nadmiar reklam - tych pojawiających się pomiędzy przeglądaniem stories i tych wkradających się pomiędzy zdjęcia na głównej osi aplikacji.
  • Czy dzisiejsza niedziela jest handlowa?

    Za każdym razem szukając w Internecie informacji o tym, czy najbliższa niedziela jest handlowa, natrafiałem głównie na strony mające nadmiar tekstu, zbędnej treści wokół i grafik niedotyczących tego, czego faktycznie szukam. Dlatego też, pewnego lutowego wieczora postanowiłem samemu sobie przyjść z pomocą. 
  • Unsocially social, czyli wyłączanie się z życia

    Wszechobecne kieszonkowe komputery (zwane smartfonami) mają swoje zastosowanie w wielu obszarach codziennego życia większości z nas. Jednym z nich są wszelakiej maści media społecznościowe, portale i komunikatory, które znajdują się u (zdecydowanej) większości z nas. Jak nie u wszystkich.
Load More By mianowicz
  • Czytanie z plików XML w testach automatycznych

    Jako że swego czasu całkiem dużo czasu poświęciłem na znalezienie satysfakcjonującego mnie rozwiązania pozwalającego na odczyt wartości z plików XML (i oczywiście późniejsze ich wykorzystywanie w testach automatycznych), chciałbym innym tego czasu oszczędzić i przedstawić skuteczne oraz proste rozwiązanie. Znakomicie sprawdzi się (a przynajmniej powinno) jako baza do dalszego rozwoju maszynek zaciągających dane z plików wystawionych na zewnątrz.
  • Kwalifikacje do Testing Cup 2017 – refleksje

    Poniższy tekst bazuje na moim zdobytym dzisiaj doświadczeniu.Jednocześnie informuję, że jedynym celem tekstu jest zwrócenie uwagi na to, jak ważna podczas zakończonych już Kwalifikacji do Testing Cup 2017 była (lub nie była) weryfikacja gotowej aplikacji z jej opisem funkcjonalnym.
  • TPI Next – analiza jakości testów w firmie

    TPI Next - ciągła (nie schodkowa) struktura doskonalenia z biznesowego punktu widzenia, opisująca kluczowe elementy efektywnego i skutecznego procesu testowego. Przyznam się, że to darmowe (i ciągle rozwijane i dostosowywane do rynkowych realiów) oraz potężne Excel'owe narzędzie poznałem niedawno.
Load More In Testowanie

O mnie

Rafał Mianowicz


Nazywam się Rafał Mianowicz i bywam technologiczym geekiem.

Gram na perkusji w Moron i CF98, zawodowo testuję oprogramowanie w Circle K, działam na XDA, lubię uśmiechać się do ludzi.