Тестирование java web start приложения с помощью jemmy


Мне нужно создать несколько тестов gui с помощью Jemmy, но я понятия не имею, как запустить его с приложением javaws. В учебниках / примерах / etc есть что-то вроде этого:

new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
                                                        .startApplication();

Этот код открывает окно примера, но как я могу, используя объект ClassReference, открыть файл *.jnlp? Или это еще один способ "подключить" jemmy с java web start application?

Спасибо за аванс.

3 14

3 ответа:

Вы можете достичь этого, подготовив специальную сборку с включенным Jemmy и вызвав Jemmy из приложения, запущенного в самом режиме jnlp.

Решение таково:

  1. Поместите файлы сборки в любую папку на вашем ПК.
  2. Добавьте .jar файлы из этой сборки в ваш тестовый проект.
  3. Откройте файл .jnlp в текстовом редакторе и найдите основной класс приложения
    application-desc main-class="[Main application class]"/>
  4. вызовите его из теста для запуска приложения
    new ClassReference("[Main application class]").startApplication();

Теперь вы можете получить доступ к элементам этого Java-приложения из тестовой среды

Вы можете использовать Jemmy с JUnit в IDE NetBeans.

Для тестирования графического интерфейса мы используем jemmy, библиотеку, которая поставляется с IDE NetBeans и очень полезна для тестирования приложений Swing.

JUnit тесты, которые используют Jemmy так например:

@Test
public void JunitTest() {
JFrameOperator mainFrame = new JFrameOperator();
JTextFieldOperator textField = new JTextFieldOperator(mainFrame, "textIn");
int x = 10;
assertEquals(x, textField.getLocationOnScreen().x);
}

Добавление аннотации @Test и использование при необходимости аннотаций JUnit assertEquals() и fail().


Другой Подход:

Вы также можете сделать это с помощью jnlp. Уже предложил @ Сергей Грин

Хороший пример и работающий код приведен в этой ссылке:

Снимок:

  1. щелкните ссылку файл jnlp в webdriver, сохраните файл jnlp на диске;
  2. запустите приложение webstart из jnlp;
  3. захватите открытое приложение и используйте его для тестирования.

Этот процесс можно выполнить с помощью следующих библиотек:

  • netx - для запуска приложения webstart из jnlp.
  • uispec4j - для перехвата созданное окно webstart и манипулирование элементами окна.

Вы можете, вероятно, сделать тот же трюк с другими АВТ/качели инструмент тестирования, но uispec4j позволяет перехватывать функция webstart приложение выполнено из jnlp, вы не нужно, чтобы запустить приложение с помощью вызова функции main() и вам не нужно, чтобы ваша функция webstart приложение с исходным кодом тестирования кода РЕПО.

Кредит переходит к тпоребе

Чтобы узнать больше о Джемми, вы можете перейти по этой ссылке

  1. Джемми Учебник
  2. Образцы Джемми
  3. Учебник По Инфраструктуре Тестирования Платформы NetBeans