Подбор Open-source решений для тестирования Web/IE
#1
Отправлено 04 марта 2005 - 18:40
Встала задача подобрать набор open-source (или просто бесплатных) решений для тестирования Web-приложений (только HTML) в IE. Скрипты предполагается писать руками. Набор необходимых инструментов я себе представляю так:
1) Скриптовый движок (JScript, VBScript, ActiveScript Perl, ...)
2) Полноценный и при этом бесплатный IDE к п.1. Требования: полноценная отладка, интеграция с системами версионного контроля, autocomplete, COM/OLE object browser, проекты, средства редактирования на уровне SciTe, TextPad, etc. (Это всё, конечно, в идеале - минимально достаточно просто отладки и подсветки синтаксиса).
3) Spy, умеющий показывать все объекты DOM в открытых браузерах. Пока найдена чрезвычайно убогая но бесплатная примочка от Microsoft и платный IE DOM Explorer.
4) Framework (IE Driver), упрощающий работу с DOM в открытых браузерах. Пока:найдены IeUnit для JavaScript и Samie для Perl.
Вопрос, собственно следующий - приходилось ли кому-нибудь подбирать подобные набор средств, и насколько успешно. Ну, и здорово, если кто-то работал с IeUnit/Samie
Всем заранее огромное спасибо! ;)
Майк.
#2
Отправлено 04 марта 2005 - 18:42
#3
Отправлено 04 марта 2005 - 18:52
Майк.
#5
Отправлено 04 марта 2005 - 19:01
IDE нужно, повторюсь, поддерживающее скриптовые языки и позволяющие их отлаживать. А DOM Inspector, вроде, платный...?
Майк.
#6
Отправлено 04 марта 2005 - 19:16
Насчёт IDE, я, конечно, не являюсь спецом, но разве Eclipse и Visual Studio работают со скриптовыми языками?
Майк.
#7
Отправлено 04 марта 2005 - 19:47
сильно-ли DOM будет отличаться для IE vs. FireFox?Но, всё-таки, хотелось бы именно для IE.
Насчёт IDE, я, конечно, не являюсь спецом, но разве Eclipse и Visual Studio работают со скриптовыми языками?
Только если кто-то специально об этом позаботится Ж)
Visual Studio работает с JavaScript (в смысле - syntax highlighting, debugging).
Я, правда, только windows scripting host scripts отлаживал.
#8
Отправлено 05 марта 2005 - 06:54
Студия поддерживает свои родные скриптовые языки - JScript и VBScript. Причем в последних версиях JScript переведен в ранг JScript#, для него добавлен компилятор, появилась возможность использовать любой базовый класс .НЕТ и компилировать исполняемые файлы. Так что теперь он полноправный язык программирования.
Помимо выше перечисленного Студия имеет АСТ, что позволяет записывать, программировать и исполнять любые веб запросы (ну, или почти любые), как в среде разработки самой студии, так и при помощи АСТ. Кроме JScript и VBScript АСТ поддерживает Perl.
Но бесплатным такое решение можно назвать с большой натяжкой.
B)
Впрочем, если есть хорошие навыки программирования, то можно попробовать все писать в бесплатном редакторе среды разработки для .НЕТ, который поддерживает DOM (думаю, есть такие). Скрипты для АСТ могут быть созданы и выполнены в среде .НЕТ без непосредственного использования самого АСТ.
#9
Отправлено 05 марта 2005 - 08:51
(1) Java
(2) Java IDE на выбор (Eclipse, IDEA, NetBeans, JBuilder, ...)
(4) Jiffie (http://jiffie.sourceforge.net/)
(3) Mouseover DOM Inspector, работает не только с IE, но и с Мозиллой и Оперой (http://slayeroffice....tools/modi.html)
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#10
Отправлено 05 марта 2005 - 13:28
Использут ВБ.нет как язык (если есть психи, то можно писать хоть на шарпе, хоть на цепепе) Тесты пишутся и подключаются как плагины.
2Case: На сервер ее можно будет выложить, или мне сайт делать на народ.ру? ;)
#11
Отправлено 09 марта 2005 - 10:27
1 Java
2 Eclipse, IDEA, etc.
3 HtmlUnit
#12
Отправлено 09 марта 2005 - 12:44
HtmlUnit не подходит под условия задачи, драйвер должен работать с браузером, а не на уровне HTTP-протокола. В результате весь JavaScript и прочая клиентская логика в пролёте.Можно HtmlUnit попробовать использовать (http://htmlunit.sourceforge.net/).
Если Java, то использовать нужно однозначно Jiffie -- http://jiffie.sourceforge.net/
Конечно, если отказаться от условия "движок должен работать с браузером" и опуститься на уровень протокола, тогда можно и HtmlUnit.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#13
Отправлено 09 марта 2005 - 12:55
#14
Отправлено 09 марта 2005 - 12:57
Это только кажется, что имитирует :)HtmlUnit отличается от HttpUnit-a, он имитирует работу браузера и умеет обрабатывать JavaScript.
Он обрабатывает JS по-своему, а каждый браузер -- по-своему.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#15
Отправлено 09 марта 2005 - 13:37
2Case: На сервер ее можно будет выложить, или мне сайт делать на народ.ру? ;)
Просто кидайте в меня с комментарием, что и куда.
Заодно таки открою раздел о которой Майк говорил и писал, а у меня всё руки не доходят :(
Редактор портала www.it4business.ru
#16
Отправлено 09 марта 2005 - 15:33
PS: Использование OLE тоже имитирует функциональное тестирование. На самом деле просто вызываются обработчики, а вот перемещений мыши, кликов, нажатий на кнопки нет. Ну и не все сделать можно.
#17
Отправлено 10 марта 2005 - 08:33
К сожалению, для тестирования нашего приложения OLE использовать не удаётся - при попытке получить свойства фреймов (или любого дочернего элемента фреймов), следует неизменный Access Denied. Причём это случается как при работе с OLE IE напрямую, так и с использованием open-source библиотек. В чём дело - непонятно абсолютно :( - очень похоже на cross-frame security, но не из фреймов же мы скрипты вызываем? Да и вообще, как-то же все эти инструменты с другими приложениями с фреймами работают?!
Майк.
#18
Отправлено 10 марта 2005 - 09:32
(1) Ruby
(4) Watir -- http://wtr.rubyforge.org/ (тоже IE через COM)
(1) JavaScript
(4) Selenium -- http://selenium.thou....com/index.html (тест выполняется в браузере в отдельном фрейме)
В пункте (3) однозначно Mouseover DOM Inspector -- http://slayeroffice....tools/modi.html
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#19
Отправлено 10 марта 2005 - 10:50
Что-то подобное у нас тоже было.Так, речь и шла именно об использовании OLE. Просто, не напрямую, а с помощью open-source библиотек.
К сожалению, для тестирования нашего приложения OLE использовать не удаётся - при попытке получить свойства фреймов (или любого дочернего элемента фреймов), следует неизменный Access Denied. Причём это случается как при работе с OLE IE напрямую, так и с использованием open-source библиотек. В чём дело - непонятно абсолютно :( - очень похоже на cross-frame security, но не из фреймов же мы скрипты вызываем? Да и вообще, как-то же все эти инструменты с другими приложениями с фреймами работают?!
Можно кусок кода, в котором исключение происходит?
#20
Отправлено 10 марта 2005 - 12:35
Selenium не годится. Я его, конечно, не копал пока подробно, но
1. Насколько я понял, тесты там пишутся в XML (?). Это не скриптовый язык.
2. Слишком хитрый движок. И не факт что заработает с нашим, довольно-таки хитрым приложением - многофреймовым, частично на https:// и т п.
3. Вообще, хотелось не тул а библиотеку (типа ieHTML, WatIR)
Watir я попробовал. Похоже, это действительно лучшее из того, что я пока видел (Samie,ieHTML) - одна только объектная модель чего стоит! Только вот, бесплатный IDE для Ruby - FreeRIDE - просто ужасен. Кроме того, что он мало что умеет, он ещё и глючит - например, если exception в cкрипте не ловится, падает IDE. Хотя, может у меня просто руки кривые.
Кроме того, для Java есть некий Enterprise Web Test. Но его я не смотрел совсем.
2Guriy:
Что-то вроде: (деталей не помню)
<...Get IE somehow>
===
' Это упрощённый вариант функции. Вложенные фреймы игнорируются.
dim isReady,i
do
isReady = (IE.document.readyState="complete")
if isReady then
for i = 0 to IE.document.frames.length-1
isReady = isReady and (IE.documet.frames(i).document.readyState="complete")
next
end if
waitmsec 100
loop until isReady
===
Не уверен в конструкции .frames(i).document.readyState - (может, надо frames(i).readyState) - но я пробовал оба варианта.
Майк.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных