Тестирование java web start приложения с помощью jemmy
Мне нужно создать несколько тестов gui с помощью Jemmy, но я понятия не имею, как запустить его с приложением javaws. В учебниках / примерах / etc есть что-то вроде этого:
new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
.startApplication();
Этот код открывает окно примера, но как я могу, используя объект ClassReference, открыть файл *.jnlp
? Или это еще один способ "подключить" jemmy с java web start application?
Спасибо за аванс.
3 ответа:
Вы можете достичь этого, подготовив специальную сборку с включенным Jemmy и вызвав Jemmy из приложения, запущенного в самом режиме jnlp.
Решение таково:
- Поместите файлы сборки в любую папку на вашем ПК.
- Добавьте
.jar
файлы из этой сборки в ваш тестовый проект.- Откройте файл
.jnlp
в текстовом редакторе и найдите основной класс приложенияapplication-desc main-class="[Main application class]"/>
- вызовите его из теста для запуска приложения
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
и использование при необходимости аннотаций JUnitassertEquals()
иfail()
.
Другой Подход:
Вы также можете сделать это с помощью jnlp. Уже предложил @ Сергей Грин
Хороший пример и работающий код приведен в этой ссылке:
Снимок:
- щелкните ссылку файл jnlp в webdriver, сохраните файл jnlp на диске;
- запустите приложение webstart из jnlp;
- захватите открытое приложение и используйте его для тестирования.
Этот процесс можно выполнить с помощью следующих библиотек:
- netx - для запуска приложения webstart из jnlp.
- uispec4j - для перехвата созданное окно webstart и манипулирование элементами окна.
Вы можете, вероятно, сделать тот же трюк с другими АВТ/качели инструмент тестирования, но uispec4j позволяет перехватывать функция webstart приложение выполнено из jnlp, вы не нужно, чтобы запустить приложение с помощью вызова функции main() и вам не нужно, чтобы ваша функция webstart приложение с исходным кодом тестирования кода РЕПО.
Кредит переходит к тпоребе
Чтобы узнать больше о Джемми, вы можете перейти по этой ссылке