GUI
Как создать GUI map для использования в тестах, написанных с помощью web driver и java?
Опубликовано saddy666@gmail.com в 03.12.2011привет
возникли траблы с созданием gui map. в этом http://wiki.openqa.org/display/SEL/GUI_Map туториале нашла описание создания gui map и добавления ее к селелениуму.второй шаг туториала: include created js in the 'TestRunner.html' . Но куда я могу добавить созданную gui map если использую web driver?
Aвтоматизированный генератор тестовых скриптов, основанный на модели
Опубликовано d3unka в 05.08.2011В этой статье представлено вступление в новый способ генерирования тестовых скриптов для тестирования GUI (основанного на web или rich клиентах) используя model-based подход, а также описание того, как это меняет процесс тестирования. Описанный инструмент для генерирования тестовых кодов (Abstract Testing Tool) был разработан автором, при сотрудничестве с одним из наших клиентов. Сгенерированный код для автоматизации может использоваться для тестирования рабочих характеристик или функционального тестирования.
Robot Framework
Опубликовано polusok в 02.04.2011
Поставщик:
Nokia Siemens Networks
Распространение:
Бесплатный
Robot Framework - это фреймворк автоматизации для приемочного тестирования и разработки через приемочные тесты (acceptance test driven development). Инструмент поддерживает легко используемый синтаксис тестовых данных и использует keyword-driven подход. Возможности Robot Framework могут быть расширены с помощью дополнительных библиотек тестирования, которые можно писать либо на Python либо Java. Также пользователи инструмента могут создавать новые ключевые слова (keywords) из уже существующих с использованием точно такого же синтаксиса, который используется для написания тестов.
Функциональность:
- Возможность использования табличного синтаксиса при создании тестов
- Возможность использования keyword-driven, data-driven, behavior-driven подходов
- Предоставляет возможность создания высокоуровневых ключевых слов, которые составляются из уже существующих
- Предоставляет удобно читаемую отчетность и логгирование в HTML формате
- Независимый от платформы и приложения
- Модульная архитектура поддерживает создание тестов даже для приложений с несколькими разнообразными интерфейсами
- Предоставляет простой API для создания собственных библиотек расширения функциональности
- Предоставляет интерфейс командной строки и XML результаты для интеграции с существующей инфраструктурой (сервер непрерывной интеграции)
- Поддержка Selenium для доступа к веб-приложениям, Java GUI тестирование, TelNet, SSH, базы данных и т.д.
- Библиотека удаленного доступа позволяет реализовать распределенное тестирование и писать тестовые библиотеки на разных языках программирования
- Позволяет присваивать теги тестам для более удобной категоризации тестов
- Встроенная поддержка переменных и использования разных сред для тестирования
Поддерживаемые технологии:
Java, .NET
Поддерживаемые ОС:
Microsoft Windows, Linux, Unix-подобное
Язык тестов:
Python, Java
Тестируемые приложения:
веб приложения, клиент-сервеные приложения, .NET приложения, Java приложения, Консольные приложения,
Скачать:
Скачать Robot Framework
Блоги:
Robot Framework Wiki
Блоги:
Twitter фреймворка
Блоги:
Here be Robots!
Блоги:
Agile Testing Codecentric Архитектура автоматизации: Ограниченное использование графического интерфейса (Thin GUI)
Опубликовано polusok в 06.02.2011Проблема: Как можно протестировать графический интерфейс без непосредственного вызова элементов управления?
Решение: Разрабатывайте графический интерфейс пользователя как отдельный слой презентационного кода исходя из бизнес-логики. Используйте модульные- или API- тесты для тестирования бизнес-логики.
Контекст:
- Участники: Разработчики помогают тестировщикам разработать архитектуру автоматизации
- Продукт: Продукт имеет в наличии некоторый графический интерфейс или же другие формы отображения информации. Фреймворк автоматизации уже существует для модульного и API тестирования.
- Цели: Расширить автоматические тесты для покрытия графического интерфейса
Стратегия тестирования:
- Создание тестов: Тесты создаются как программистами, так и тестировщиками
- Выполнение тестов: Тесты запускаются через модульный или API фреймворк
- Оценка: Ожидаемые результаты описываются вручную в тестах. Заметка, фактические значения, которые отображаются на экране не проверяются, а проверяется значения которые посланы на спроектированный графический интерфейс
Атрибуты качества:
- Сопровождение и поддержка: Высокая. Цель отделения фактического графического интерфейса заключается в том, чтобы сделать тесты более устойчивыми к изменениям графического дизайна. Хотя некоторые технические проблемы могут помешать этой цели.
- Проверка: Средняя. GUI тесты написаны на том же языке программирования, что и модульные или API тесты. Соответственно, большинство людей из команды смогут проверять код автоматизации.
- Целостность и зависимость: Средняя. Фактически графический интерфейс не тестируется автоматически, потому все равно нужно будет выделить ресурсы на ручное тестирование.
- Возможность повторного использования: Средняя. Все что можно переиспользовать в этой технике - это модульные или API тесты
Следующий шаг:
Нет.
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Архитектура автоматизации: API-тесты
Опубликовано polusok в 05.02.2011Проблема: Как можно разработать тесты без взаимодействия через графический интерфейс?
Решение: Используйте программные интерфейсы, которые позволяют получить прямой доступ к той функциональности, что надо протестировать.
Контекст:
- Участники: Программисты/тестировщики.
- Продукт: API тестируемого продукта должен быть предоставлен.
- Цели: Поиск эффективного пути создания мощных автоматизированных тестов.
Стратегия тестирования:
- Создание тестов: Тесты пишутся на стандартном языке программированния, который позволяет использовать API-функции.
- Выполнение тестов: Понадобятся специальная среда для выполнения тестов.
- Оценка результатов тестов: Обычно, ожидаемые результаты определяются в момент создания тестов.
Атрибуты качества:
- Сопровождение и поддержка: Высокая. API-функции более стабильны нежели пользовательский интерфейс.
- Проверка: Средняя. Тесты пишутся на том же языке программирования и в той же среде, что и модульные/API-тесты, а это означает, что многие сотрудники смогут разобраться в коде.
- Целостность и зависимость: Средняя. Заметьте, что тестирование реального графического интерфейса пользователя невозможно полностью автоматизировать. Какие-то тесты все равно придется провести вручную.
- Возможность повторного использования: Низкая.
Следующий шаг:
Можно воспользоваться другими техниками и расширить API тестами, например до использования ключевых слов-действий. Разработчики API тестов могут воспользоваться программированием на основании тестов. Как только API тесты созданы, то можно подумать надо использованием и добавлением проверок и диагностик. Если пользовательский интерфейс строится поверх API, то вы можете использовать технику "Ограниченного использования графического интерфейса"
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Архитектура автоматизации: Ключевые слова-действий (action keywords)
Опубликовано polusok в 05.02.2011Проблема: Как бизнес пользователи могут создавать тестовые сценарии без знания программирования?
Решение: Определите ключевые слова-действия, которые будут являться действиями пользователя с системой, с помощью которых можно будет создать нужный сценарий.
Контекст:
- Участники: Специалисты предметной области, а также же сотрудники, занимающиеся только автоматизацией, и разрабатывающие библиотеки и функции навигации.
- Продукт: Обычно используется для тестирования пользовательского интерфейса, но этот же подход можно успешно применять и для других интерфейсов.
- Цели:Поддержка процесса автоматизации тестирования большим количеством специалистов предметной области.
Стратегия тестирования:
- Создание тестов: Тесты создаются в виде таблиц. Тесты высокого уровня могут быть спроектированы до того, как продукт будет доступен для тестирования.
- Выполнение тестов: механизм обработки ключевых слов выполняет тесты автоматически.
- Оценка: Обычно ожидаемые результаты определены как точки проверки в сценариях теста.
Атрибуты качества:
- Сопровождение и поддержка: Высокая. Тесты определяются на высоком уровне абстракции. Только библиотеки функционала навигации и прочих задач должны изменятся при внесении изменений в пользовательский интерфейс.
- Проверка: Высокая. Тесты легко проанализировать менеджерам и тем, кто не имеет отношения к программированию.
- Целостность и зависимость: Средняя. Механизм обработки ключевых слов и библиотеки функций являются ключевыми элементами. Если они работают хорошо, то возможность пересмотра способствует и надежности автоматизации.
- Возможность повторного использования: Низкая.
Следующий шаг:
Язык высокого уровня для написания тестов делает исходящий формат совместимым с различными техниками генерации автоматизированных тестов, например, такой как автоматизированная обезьянка.
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Архитектура автоматизации: Таблицы на основе пользовательского интерфейса
Опубликовано polusok в 05.02.2011Проблема: Как специалисты без знания программирования могут сами создавать автоматизированные тесты?
Решение: Используйте таблицы где будут определены свойства окон, элементы на окнах, действия и данные для тестов.
Контекст:
- Участники: Эксперты предметной области с поддержкой специалистов автоматизаторв, которые реализуют данную архитектуру.
- Продукт: Пользовательский интерфейс уже определен ранее и находится в рабочем состоянии.
- Цели: тестирование продукта с точки зрения бизнес пользователя
Стратегия тестирования:
Создание тестов:
- Специалисты предметной области пошагово планируют тесты, оформляя их в таблицы.
- Тесты могут быть записаны и финализированны как только пользовательский интерфейс будет известен. (другими словами, как только все готово для проведения тестоварония).
Выполнение тестов:
- Интерпретатор и «диспетчер» выполняют тесты.
Оценка:
- Ожидаемые результаты определяет автор теста.
Атрибуты качества:
- Cопровождение и поддержка: Низкая. Табличный формат тестов позволяет автоматизировать поддержку и сопровождение некоторых видов изменений интерфейса пользователя.
- Проверка: Высокая.Тесты легко проанализировать и тестировщикам, и программистам, и менеджерам.
- Целостность и зависимость: Обработка ошибок и логгирование изолируются в выполняющую систему, которая может быть оптимизирована для улучшения надежности.
- Возможность повторного использования: Формат представление действий и данных может заменить потребность использование дополнительных инструментов работы с графическим интерфейсом..
Следующий шаг:
«Ключевые слова-действия» строятся на этом подходе.
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
SQA Days 8: Используем GUI-автоматизацию вместе с бизнес-пользователями
Опубликовано polusok в 23.11.2010»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Бесконечный цикл запуска тестов. Практика "чертового колеса"
Опубликовано KaNoN в 18.09.2010Зачастую, когда объем автотестов становится весьма большим, достаточно тяжело уделять внимание запускам тестов. Тесты выполняются долго, часть проблем выявляется только после серии прогонов тестов и т.д. Более того, весьма полезно, чтобы результаты приходили регулярно и изменения, внесенные в код подхватывались по мере их внесения. Да и по сути, запуск тестов - это очередная рутина, которую хорошо бы делать регулярно, но в итоге всё делается, как получится. Соответственно, надо бы это как-то автоматизировать. Тут как раз подходит практика "Чёртового колеса"
Что это такое? Да, по сути это запуск всех тестов в бесконечном цикле. Вот и всё. Но сама по себе идея, как и многие другие идеи, весьма проста в озвучивании. Реализация же требует некоторой возни. Вот сосредоточимся на этом.
Итак, для того, чтобы можно было запускать тесты в бесконечном цикле нужна как минимум возможность одного запуска, после которого без всяких дополнительных действий можно повторить запуск полностью идентичным путем, после чего состояние системы останется таким же, как и до запуска. Что имеется в виду? Например, если мы используем какой-то внешний инструмент для тестирования (для того же UI-level тестирования как правило используются отдельные приложения), то получается следующая ситуация:
- До начала запуска необходимо гарантировать, что средство тестирования запущено
- По завершении запуска желательно средство тестирования закрыть по ряду причин
Всё это очевидно и решаемо. Наиболее простой случай - это использование определенных опций командной строки для закрытия средства тестирования после завершения выполнения всех тестов. Как правило средства автотестирования подобную опцию предоставляют. В крайнем случае в командных процессорах операционной системы есть команда удаления процесса по определенному имени.
Теперь ключевой момент: как зациклить.
Selenium RC (Ruby): Вынесение оконных деклараций в XML-файл
Опубликовано KaNoN в 02.09.2010Одной из наиболее серьезных проблем при автоматизации функционального тестирования на уровне GUI является высокая чувствительность тестов к изменениям GUI. По-хорошему, подобная ситуация не должна возникать, так как автоматизация подобного рода ставится тогда, когда пользовательский интерфейс более-менее стабилен. Но это идеальная ситуация. В реальности, продукт меняется по всем направлениям и в том числе это касается пользовательского интерфейса. Так или иначе какие-то мелкие изменения имеют место (поле переименовали, переместили, поменяли некоторые идентификаторы) и это уже влияет на работоспособность тестов. Частично, можно реализовать гибкий механизм поиска объектов, на который подобные изменения не повлияют, но в большинстве случаев корректировок самих реализаций тестов не избежать. Соответственно, надо как-то минимизировать трудозатраты на корректировку. Наиболее эффективным решением данной проблемы можно назвать вынесение оконных деклараций во внешний ресурс и использование "псевдонимов". Подобное реализовано в WinRunner ( GUI Map ), QTP, RFT ( в котором есть возможность маппинга и все оконные объекты можно классифицировать как mappable и non-mappable ), TestComplete ( NameMapping и Alias, появившийся в поздних версиях ). Суть подобных решений в том, чтобы некоторому оконному объекту с заданными атрибутами поставить в соответствие некоторое имя, которое и будет использовано для обращения к данному оконному объекту.
Во многих средствах подобный механизм реализован, но существует много различных решений, которые фактически представляют собой некоторую библиотеку с прикрученным тестовым движком. В этом случае приходится пользоваться возможностями языка, на котором эти тесты пишутся. В качестве примера рассмотрим язык Ruby и конкретно его порт под Selenium RC. Почему взят именно Ruby? Во-первых, на Ruby есть еще несколько решений аналогичных Selenium RC и возможности языка, там применимы в той же мере. Во-вторых, Ruby - один из примеров языков интерпретируемого типа, у которого есть возможность динамического формирования и компоновки объектов. Подобные механизмы имеются и во многих других скриптовых языках ( в частности JavaScript ), поэтому Ruby был выбран в качестве демонстрации самой возможности подобной компоновки. На других языках подобные решения реализуются по аналогии с поправкой на специфику.
Как известно, в Selenium оконные объекты распознаются с помощью локаторов - специальных строк вида:
<how>=<value>, где
how - определяет атрибут, по которому ищется объект. Это может быть id,name, dom, xpath и многие другие ( в документации по Selenium о локаторах достаточно много расписано )
value - непосредственно значение атрибута, по которому ищется объект
То есть одна строка идентифицирует объект. У подобного решения есть одно достаточно сильное преимущество - простота использования. Но подобная строка не отражает логического смысла объекта. Например, локатор
xpath=//img[@alt=‘The image alt text’]
Позволит определить, какой объект реально искать на форме, но совсем непонятно, какая форма должна быть. То есть с точки зрения удобства чтения мы не в состоянии фиксировать, на какой странице находится данная ссылка, достаточно сложно выявить логический смысл самой ссылки ( а это важно, так как при чтении кода больше упор ведется на логический смысл нежели фактические атрибуты ). Соответственно, удобно было бы сделать псевдоним вида:
<Псевдоним страницы>.<Псевдоним объекта>
просто для удобства чтения. Для этого можно сделать классы-обертки вида:
class MyPage
def lnkLink()
"xpath=//img[@alt='The image alt text']"
end
endПосле чего мы можем создать экземпляр данного класса:
wTestPage = MyPage.new
и вместо локатора использовать выражение вида:
wTestPage.lnkLink
Уже проще, так как в случае модификации атрибутов ссылки нам не надо будет менять локаторы во всех тестах, достаточно будет внести корректировки в объявлении класса. Также это решение удобно тем, что оконные декларации - это такая же часть програмного кода, что и непосредственно реализации тестов. Но тем не менее, немного неудобно нагромождать большое количество подобных классов, а если тестируемое приложение содержит много страниц, то классов будет много, что влечет за собой большое количество файлов. Поэтому, зачастую целесообразно отделить ресурсы ( оконные декларации ) от движка ( непосредственно програмной реализации ). В качестве аналога можно вспомнить NameMapping в TestComplete. Файл, описывающий правила маппинга - это XML-файл. Соответственно, можно попробовать сделать аналогичную реализацию на Ruby. Тем более в данном случае задача заметно проще, так как практически нет иерархии объектов, а сами объекты описываются одной строкой, а не множеством атрибутов.
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее
Статьи
- 1 of 23
- ››
Комментарии
надо было обернуть выбор в Select
В коде класса-теста
e.send_keys("123")а где сам
попробовать
спасибо
- 1 of 195
- ››
© 2009-2010 Портал для автоматизаторов тестирования ПО
Автор проекта Поляруш Михаил | При использовании материалов ссылка на www.automated-testing.info обязательна.
Все замечания и пожелания присылайте на webmaster@automated-testing.info.
Автор проекта Поляруш Михаил | При использовании материалов ссылка на www.automated-testing.info обязательна.
Все замечания и пожелания присылайте на webmaster@automated-testing.info.








