Подтвердить что ты не робот

Тестирование приложения для веб-запуска java с использованием jemmy

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

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

Этот код открывает примерное окно, но как я могу, используя объект ClassReference open *.jnlp file? Или - это еще один способ "соединить" jemmy с приложением Java Web Start?

Спасибо за продвижение.

4b9b3361

Ответ 1

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

Ответ 2

Решение:

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

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

Ответ 3

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

Для тестирования GUI мы используем 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. Уже предложил @Сергей Гринев

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

Снимок:

  • Нажмите ссылку jnlp файла в webdriver, сохраните файл jnlp на диск;
  • Запустите приложение webstart из jnlp;
  • Захватите открытое приложение и используйте его для тестирования.

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

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

Возможно, вы можете сделать тот же трюк с другим инструментом тестирования AWT/Swing, но uispec4j позволяет перехватить приложение webstart, выполненное из jnlp, вам не нужно запускать приложение, вызывая main(), и вам не нужно иметь исходный код вашего веб-сайта в репозитории кода тестирования.

Кредит отправляется tporeba

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