Archiwa tagu: testowanie

How to check if element is invisible in Ruby Selenium client

How to check if element is invisible in Ruby Selenium client? In Java or C# answer is easy. There is a mechanism called ExpectedCondition, which has got ready for use method: ExpectedConditions.invisibilityOfElementLocated. Example:

driverWait.until(ExpectedConditions.invisibilityOfElementLocated(element));

Unfortunatelly, Ruby client hasn’t got anything like this. Quick workaround – try to find element. When element is not displayed, catch exception and return false:

def check_if_not_exist(locator)
  begin
    wait = Selenium::WebDriver::Wait.new :timeout => 10
    wait.until { @driver.find_element(:name, 'elementName').displayed? }
  rescue
    false
  end
end

Not very elegant and quick, but works.

 

Sprawdzanie czy checkbox jest zaznaczony w Selenium (C#)

Każdy z obiektów znalezionych przez Selenium jest standardowym obiektem typu WebElement. Udostępnia on następujące metody (których wartość zwracana jest typu bool):

  • displayed – element jest widoczny.
  • enabled – element jest aktywny – można go kliknąć, wpisać mu wartość itd. W praktyce każdy element dostępny na stronie ma stan enabled, gdyż jest to stan domyślny. „Wyłączyć” można go jedynie poprzez celowe dodanie do HTML atrybutu disabled. Element z takim atrybutem będzie „wyszarzony”.
  • checked – element jest zaznaczony. Dotyczy pól typu input – zarówno typu radio jak i checkbox.

Kawałek kodu HTML-owego, do którego zastosuję Selenium:


<html>
<body>
<form>
<input type="checkbox" />
</form>
</body>
</html>

Oraz fragment kodu C# z wykorzystaniem Selenium:


[Test]
public void CheckboxIsChecked()
{
  driver.url="file:///C:/DOCUMENTS/test.html";
  var el = driver.FindElement(By.TagName("input"));
  var before = el.Selected;//false
  el.Click();
  var after = el.Selected;//true
}

Selenium: Exception „Compound class names are not supported”

Today something about one of exceptions that can occure in Selenium PageFactory.

IllegalLocatorException was unhadled by user code.
An exception of type „OpenQA.Selenium.IllegalLocatorException” occured in WebDriver.dll but was not handled in user code.
Additional information: Compound class names are not supported. Consider searching for one class name and filtering the results.

In my case, this exception was thrown in line:

PageFactory.InitElements(webDriver, pageElement);

This is probably a bug in Selenium. Solution is easy: just do not use:

[FindsBy(How=How.ClassName, Using="name_of_class"]

Instead of ClassName, try to use Css Selectors:

[FindsBy(How=How.CssSelector, Using=".name_of_class"]

Remember about a dot!

Testowanie – rodzaje testów

Jakie są rodzaje testów? Czym się różnią testy dymne od testów jednostkowych? Myślę, że jest to wiedza, którą obowiązkowo trzeba mieć, jeśli myśli się o przystąpieniu do egzaminu ISTQB i pracy jako tester.

rodzaje testów w pajęczej sieci

Krzyżak ogrodowy. Foto: moje, 2017

Różne rodzaje testów

  • Testy funkcjonalne – black-box, bez spoglądania w kod, testowanie pod kątem wymagań funkcjonalnych.
    • Testy dymne (smoke test) – najbardziej podstawowe, ogólne testy – czy program się w ogóle instaluje, uruchamia, pokrywają sprawdzenie podstawowych funkcjonalności.
    • Testy regresji – sprawdzają, czy nowo dodane funkcjonalności lub poprawki błędów nie wprowadzają nowych defektów. Idealne pole do automatyzacji.
    • Testy jednostkowe (modułowe, unit tests) – testowanie najniższych jednostek (funkcji) w izolacji od reszty systemu.
    • Testy integracyjne – po złożeniu systemu w całość. Szukanie błędów głównie w interfejsach i interakcjach pomiędzy modułami.
    • Testy systemowe – black-box, testowanie pod kątem spełniania wymagań ze specyfikacji, testowanie systemu złożonego w całość.
    • Testy akceptacyjne – wykonuje klient (lub beta tester po stronie klienta), testowanie pod kątem z wymaganiami klienta.
  • Testy strukturalne – white-box, przejście przez każdą ścieżkę.
  • Testy niefunkcjonalne
    • Testy obciążeniowe (load tests)
    • Testy ergonomii
    • Testy bezpieczeństwa

Podział ze względu na sposób wykonywania testów:

Czytaj dalej

Testowanie strony w różnych wersjach IE

Każdy, kto zajmował się aplikacjami webowymi pamięta problemy z kompatybilnością i różnym wyświetlaniem stron w przeglądarkach Internet Explorer. Wynika to z odmiennej interpretacji HTML, CSS czy JavaScript przez te przeglądarki. W jeszcze nie tak dawnych czasach, stanowiło to nie lada wyzwanie. Trudno było wówczas dysponować farmą komputerów z różnymi wersjami IE, zwłaszcza że pociągało to za sobą także posiadanie różnych systemów operacyjnych (Windows XP i różne service packi, Windows 7 itd.). Pamiętam programy, które miały emulować zachowanie różnych wersji IE, nie były one jednak wystarczająco miarodajne.

Od pewnego czasu, za pośrednictwem serwisu http://modern.ie Microsoft oferuje zestaw narzędzi ułatwiających owe zadanie. Jest to m.in. możliwość zalogowania się do zdalnych maszyn z różnymi wersjami przeglądarki, zrobienia screenshotów, jak strona wygląda pod rożnymi przeglądarkami:

Oraz, co najciekawsze, pakiet maszyn wirtualnych, dostępnych do ściągnięcia z adresu: Czytaj dalej

Recenzja – Dane testowe. Teoria i praktyka

Tytuł książki „Dane testowe. Teoria i praktyka” autorstwa Radosława Smilgina i Anny Piaskowy (wydawnictwo Helion), bardzo dokładnie mówi, czego możemy się spodziewać po lekturze. Tak – w dużej mierze – danych testowych.

dane_testowe

W pierwszej części książki autorzy wprowadzają kilka znanych z egzaminu ISTQB technik testowania (klasy równoważności, wartości brzegowe itd.) oraz definiują, czym są dane testowe. Przydatna ściągawka dla osób początkujących. Czytaj dalej

Lista narzędzi testerskich

Jeżeli kiedykolwiek zastanawiałeś się, jakiego narzędzia lub podejścia użyć w celach testowania różnego rodzaju aplikacji, może natknąłeś się na listę narzędzi testowych sporządzoną przez The Minstry of Testing (powiedzmy, taki odpowiednik polskich Testerzy.pl).

Foto: moje, 2007

Lista jest naprawdę imponująca – zawiera wiele narzędzi, pogrupowanych wg celu, np. testowanie aplikacji www, desktopowych, zarządzanie testami itd.

Link: http://www.ministryoftesting.com/resources/software-testing-tools/

Niektóre z narzędzi:

Czytaj dalej

Artykuł w PasjaOnline: Jak ugryźć testowanie oprogramowania

„Jak ugryźć testowanie oprogramowania” to jeden z moich artykułów w serwisie PasjaOnline. Stanowi wstęp do serii artykułów poświęconych testowaniu. Więcej na stronie:

http://pasjaonline.pl/jak-ugryzc-testowanie-oprogramowania/

PasjaOnline to dość młody serwis skupiający miłośników programowania (zwłaszcza aplikacji webowych).