вторник, 10 июня 2014 г.

Тестирование ADF приложений. Часть 2(Тестирование форм при помощи Selenium)

После того как проверен код, нам нужно проверить работу форм.  Автоматизируем и эту проверку.Для этого мы будем использовать утилиту Selenium.

Selenium это бесплатная утилита с открытым кодом, для тестирования веб-приложений. Он состоит из двух частей:

  •  Selenium  IDE является Firefox плагином, в котором  вы записываете вашу тестовую сессию. Из IDE, вы можете воспроизводить сеанс для быстрой проверки, и экспортировать его в виде JUnit теста.
  •  Selenium Remote Control Server является сервером , который будет выполнять записанные тесты с помощью браузера

Между записью  и воспроизведением тестов , вы можете изменить их  в JDeveloper. Это 
позволяет добавлять параметры и выходить за рамки простого тестирования.


Selenium IDE существует только как Firefox плагин. Так что для начала установите браузер Firefox (http://www.firefox.com).Selenium IDE можно загрузить из Firefox в Открыть меню | Дополнения.







После установки  в меню "Инструменты" появится новый пункт:


Нажмите по нему.Появился Selenium IDE.   

Теперь начнем тестирование формы.
Для этого запустите вашу форму в браузере и введите адрес формы в Selenium в Base URL


После запуска формы, и указания в Selenium, с каким адресом ведется работа, необходимо создать собственно сам сценарий.  для этого есть несколько способов:

1.При нажатии правой кнопкой по тестируемому  элементу, в меню появляются доступные команды  над  ним. При нажатии по одной из команд, она выполняется и записывается в сценарий Selenium 

2. В Selenium  нажать  правой   кнопкой по области с командами  и выбрать "Insert New Command". После этого вам надо будет заполнить три поля:

  1. Command - команда которая должна выполниться
  2. Target - id компонента над которым выполняется эта команда. Что бы узнать id компонента, нажмите по нему правой кнопкой и выберите "Просмотр кода элемента"-если вы смотрите в Chrome," Исследовать элемент" - если вы смотрите в Mozilla.
  3. Value - значение которое нужно ввести в этот компонент



3. Нажать на кнопку Record в Selenium( красный круг). Тогда все действия выполняемые на вашей форме будут автоматически  конвертироваться в команды . Это самый быстрый и простой способ для формирования сценария и изучения команд Selenium-а.


После того как вы создали сценарий.Его можно проигрывать при помощи кнопки Play(зеленый треугольник).Скорость  выполнения сценария  можно менять при помощи бегунка:Fast-быстро,Slow-медленно(при быстром выполнении сценария,могут появиться ошибки в связи выполнением команды над компонентами которые не успели сформироваться)  Теперь нам надо, что бы этот  сценарий можно было выполнять в JDeveloper и в нем же лицезреть результат

Для этого нам нужно :


1. Экспортировать сценарий в JUnit файл и сохранить его в проекте, в котором подключены JUnit библиотеки



Сформируется файл такого типа:



package com.example.tests;

import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import java.util.regex.Pattern;

public class testForm {
private Selenium selenium;

@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost:7101/ADFExampleSOracleADFinfo-InputFileVC-context-root/faces/empPhoto.jspx");
selenium.start();
}

@Test
public void testTestForm() throws Exception {
selenium.open("/ADFExampleSOracleADFinfo-InputFileVC-context-root/faces/empPhoto.jspx?_adf.ctrl-state=13lwwd4wy1_19");
selenium.waitForPageToLoad("30000");
selenium.click("id=t1:0:cb1");
selenium.waitForPageToLoad("30000");
selenium.click("id=d2::ok");
}

@After
public void tearDown() throws Exception {
selenium.stop();
}
}


Сценарий находится в методе testTestForm. Когда вы откроете  сформированный файл в JDev, то увидите, что  для компиляции не хватает библиотеки com.thoughtworks.selenium.*.Что бы исправить эту проблему, нам  надо скачать Selenium Server (formerly the Selenium RC Server) по адресу http://docs.seleniumhq.org/download/ . После этого  добавьте скачанный  jar файл в проект и добавьте его в библиотеки проекта(Project Properties->Libraries and ClassPath->Add JAR). Так же нажмите правой кнопкой по добавленному файлу, и выберите Run. Этим вы запустите  Selenium RC Server, который позволит нам запускать Selenium с Jdeveloper.
Если вы все правильно выполнили, то  нажав Run по вашему тесту, мы получим удачное прохождение теста : )




Примечанию по тестированию в JDeveloper:
Что бы изменить скорость выполнения сценария Selenium на режим в JUnit нужно прописать команду: selenium.setSpeed("3000");