2012-06-03 2 views
4

В прошлые времена у PalmOS был эмулятор, который мог генерировать случайные события («коснитесь здесь, введите мусор в этом текстовом поле ...») для тестирования того, как приложения будут обрабатывать их (так называемые «Гремлины»). Это немного похоже на fuzzing, но для графического интерфейса. Есть ли простой (существующий) способ сделать это в приложении Java Swing?Есть ли способ для размытия приложений Swing?

Edit:

Пожалуйста, обратите внимание, что я не хочу, чтобы иметь возможность указать, какие события увольняют. Я бы хотел, чтобы код автоматически генерировал и стрелял случайным (как в событиях «Math.random()»). Вероятность того, что события что-то полезное или найти ошибку, довольно мала. Но это компенсируется пуском многих событий.

+0

Надеемся, что ваше приложение не сможет открыть диалог «открыть файл», а затем удалить все содержимое вашего диска. –

+0

Если это проблема с интерфейсом, будем надеяться, что я найду его таким образом, прежде чем пользователь сделает это. – xmjx

+0

Любое приложение в Windows позволяет удалять и создавать папки в диалоговом окне «Открыть файл». Это не обязательно ошибка в приложении. –

ответ

5

Пробег: FEST. Это упрощает процесс функционального тестирования Swing GUI, позволяя получить доступ к компонентам Swing по имени и затем взаимодействовать с ними.

Пример с сайта FEST:

dialog.comboBox("domain").select("Users"); 
dialog.textBox("username").enterText("alex.ruiz"); 
dialog.button("ok").click(); 
dialog.optionPane().requireErrorMessage() 
        .requireMessage("Please enter your password"); 

Edit:

Кроме того, что вы пытаетесь достичь, должен быть очень простым использованием Math.random(), цикл, findBomponentAt (int, int) и класс Robot. Особенно полезен класс Robot class mitght, так как он имеет методы для спуфинга событий мыши и клавиатуры.

+0

Это звучит круто, но это не то, что я хочу. Я хочу, чтобы автоматические/случайные/события запускались. Как и в «Math.random()», а не в «Random Access Memory». – xmjx

+0

Если да, то, что бы вы ни пытались достичь, должно быть очень просто, используя [Math.random()] (http://docs.oracle.com/javase/1.5.0/docs/api/java/ lang/Math.html # random% 28% 29), цикл, [findBomponentAt (int, int)] (http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/Container .html) и [Robot] (http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/Robot.html). Особенно полезно использовать класс класса «Робот», так как он имеет методы для спуфинга событий мыши и клавиатуры. – npe

+0

Я отредактировал оригинальный ответ, так что теперь вы можете. Рад, что смог помочь :-) – npe

Смежные вопросы