Komut dosyalarının paralel olarak nasıl çalıştırılacağını anlamak için önce anlayalım
Neden Oturum Yönetimi'ne ihtiyacımız var?
Test yürütme sırasında, Selenium WebDriver, verilen komutları yürütmek için tarayıcıyla her zaman etkileşimde bulunmalıdır. Yürütme sırasında, geçerli yürütme tamamlanmadan önce başka birinin aynı makinede ve aynı tarayıcı türünde başka bir komut dosyasını yürütmeye başlaması da mümkündür.
Böyle bir durumda, iki farklı infazımızın birbiriyle çakışmaması gereken bir mekanizmaya ihtiyacımız var. Bu, Selenium'da Oturum İşleme kullanılarak elde edilebilir.
Selenium WebDriver'da Oturum Yönetimi nasıl sağlanır?
Selenium WebDriver'ın kaynak kodunu kontrol ederseniz, 'sessionId' adında bir değişken bulacaksınız. Bir WebDriver nesnesinin yeni bir örneğini oluşturduğumuzda, yeni bir 'sessionId' oluşturulacak ve söz konusu Firefox / Chrome / IE Sürücüsü () ile eklenecektir.
Yani bundan sonra yaptığımız her şey yalnızca o belirli Firefox tarayıcı oturumunda yürütülecektir.
Bu yerleşik bir işlev olduğundan, oturum kimliğini atamaya açık bir ihtiyaç yoktur.
Kod Örneği: Burada iki farklı WebDriver için iki farklı oturum oluşturulacaktır.
import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;public class SessionHandling {public static void main (Dize… dizeler) {// WebDriver'ın ilk oturumuWebDriver sürücüsü = yeni FirefoxDriver ();// Goto guru99 sitesidriver.get ("http://demo.guru99.com/V4/");// WebDriver'ın ikinci oturumuWebDriver sürücüsü2 = yeni FirefoxDriver ();// Goto guru99 sitesidriver2.get ("http://demo.guru99.com/V4/");}}
Selenium ile Paralel Testler nasıl çalıştırılır
Aynı anda birden fazla test çalıştırmak istediğiniz durumlar vardır.
Bu gibi durumlarda, "paralel" özniteliği kullanılabilir
Paket etiketinin paralel niteliği dört değeri kabul edebilir:
testler | Testing xml dosyasının |
sınıflar | Bir Java sınıfındaki tüm test durumları paralel çalışacaktır |
yöntemler | @Test ek açıklamasına sahip tüm yöntemler paralel olarak yürütülür. |
örnekler | Aynı örnekteki test senaryoları paralel olarak yürütülecektir ancak iki farklı örneğin iki yöntemi farklı iş parçacığında çalışacaktır. |
İş parçacığı sayısı özniteliği, bu yürütme için kaç iş parçacığı ayrılması gerektiğini belirtmenize izin verir.
Eksiksiz Örnek: Bu Örnekte, üç test durumu paralel çalışacak ve http://demo.guru99.com adresindeki oturum açma verilerini dolduracaktır.
Komple proje şöyle görünecektir:
TestGuru99MultipleSession.java
import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;public class TestGuru99MultipleSession {@Ölçekpublic void execSessionOne () {// WebDriver'ın ilk oturumuSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();// Goto guru99 sitesidriver.get ("http://demo.guru99.com/V4/");// kullanıcı adı metin kutusunu bulun ve doldurundriver.findElement (By.name ("uid")). sendKeys ("Sürücü 1");}@Ölçekpublic void executeSessionTwo () {// WebDriver'ın ikinci oturumuSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();// Goto guru99 sitesidriver.get ("http://demo.guru99.com/V4/");// kullanıcı adı metin kutusunu bulun ve doldurundriver.findElement (By.name ("uid")). sendKeys ("Sürücü 2");}@Ölçekpublic void execSessionThree () {// WebDriver'ın üçüncü oturumuSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver sürücüsü = yeni ChromeDriver ();// Goto guru99 sitesidriver.get ("http://demo.guru99.com/V4/");// kullanıcı adı metin kutusunu bulun ve doldurundriver.findElement (By.name ("uid")). sendKeys ("Sürücü 3");}}
TestNG.XML
xml version = "1.0" encoding = "UTF-8"?>
Test Durumu sırası ve Bağımlılık
Test Senaryosu yürütme sırasını ve bağımlılığını ayarlayabilirsiniz.
'TestGuru99TC1' ve 'testGuru99TC2' olmak üzere iki test durumunuz olduğunu ve 'testGuru99TC1'den önce' testGuru99TC2 'test senaryosu yürütmek istediğinizi varsayalım. Bu durumda, bağımlılık ve yürütme sırası yapmak için 'portsOnMethods' özniteliğini kullanacağız.
xml version = "1.0" encoding = "UTF-8"?>
Özet
- Yeni bir WebDriver örneği için yeni bir oturum kimliği oluşturulur.
- Bir oturum, belirli bir tarayıcıyla bağlanacaktır.
- Evre ve paralel niteliklerini kullanarak, komut dosyalarınızı paralel olarak çalıştırırsınız.
- Yürütmeyi test etme sırasını ayarlamak için öznitelik bağımlılığını kullanabilirsiniz.