Моя цель:
- Наши клиенты могут создавать новые веб-тесты.
- Наш сервер непрерывной интеграции осуществляет развертывание в тестовой среде; он должен выполнить тесты против него
- Тест также можно запустить в другой среде.
(Заказчик должен провести окончательные приемочные испытания, чтобы протестировать шрифты и т. Д., Но это будет отличной проверкой перед приемкой для нашей тестовой среды. Клиенты могут сосредоточиться на других вещах, чем сейчас.)
Обычно какое-то свойство (например, идентификатор текстового поля) изменяется или что-то в этом роде, и тесты прерываются через несколько недель. Кажется, что записанные тесты часто ломаются, поэтому лучше легко записать новый, чем пытаться поддерживать и модифицировать старый тест.
Теперь я нашел совершенно новый подход. Может быть, запись не правильный путь.
Как насчет того, чтобы наши клиенты могли использовать варианты на понятном для человека языке, который машина могла бы понимать и компилировать для веб-записи (с помощью языка, специфичного для домена, DSL).
Это не научно, это уже сделано, так что читайте дальше. : -)
Я пытался использовать эти рамки автоматического веб-тестирования:
- Веб-тест Visual Studio (клиенты не могут выполнить)
- Selenium (работает только с Firefox, у наших клиентов IE)
- WatiN (.NET-версия Watir, записывающее устройство немного глючит)
- HP Quick Test Pro (не достаточно просто сделать новые тесты)
На самом деле ни один из них не дал того, что мне нужно ... но Селен - самый близкий.
Наши клиенты говорят на финском языке, поэтому в начале проекта программного обеспечения, на этапе спецификации, пользователь пишет пример использования, например:
- Avaa "OmaLomake"
- Syötä "Tuomas" kohtaan "nimi"
- Paina "Seuraava"
Перевод:
- Открыть "MyForm"
- Вставить "Туомас" в поле "имя"
- Нажмите «Далее»
Теперь ... Это удобочитаемый вариант использования, но он также может быть скомпилирован для автоматического веб-приемочного тестирования. Открыть, Вставить, в поле и Нажать - ключевые слова, остальные - значения.
Какой инструмент DSL подойдет для этого?
Microsoft создает новый инструмент для создания DSL в своем Осло-проекте под названием MGrammar. Это означает, что вы можете создать собственный язык, чтобы облегчить работу с машинами нетехническим людям. (Та же самая базовая идея, которая была (и не удалась) в Cobol и Visual Basic.)
Я обнаружил, что кто-то уже сделал этот вид DSL с MGrammar, но это для Ватина, а не для Selenium:
http://www.codinginstinct.com/2008/11/creating-watin-dsl-using-mgrammar.html
Таким образом, процесс сервера непрерывной интеграции будет:
- Получить новую версию из системы контроля версий (как обычно).
- Сборка, запуск модульных тестов и анализ кода (как обычно).
- Сделать установочный пакет и версию тега в управлении версиями (как обычно).
- Компилировать сценарии использования в веб-тесты
- Запуск веб-тестов
- Принять / отклонить программное обеспечение: -)
Выполнение веб-теста на сервере непрерывной интеграции обычно означает большую работу по настройке. Итак, прежде чем я попробую это, мне любопытно, что вы думаете?
Вы использовали такую же настройку, и каков ваш опыт? (Какая точная среда?)
Как насчет DSL, будет ли у него достаточно мощности для сценариев использования или это будет еще одна бесконечная задача разработки? Будут ли клиенты когда-либо создавать тесты?