OpenQuality.ru

Качество программного обеспечения

Качество программного обеспечения: в главных ролях

Лента  Радар  Блог  Опыт  
Разум  Видео  Заметки  Эпизоды


PowerShell: автоматизация тестирования GUI

Добрый день.

Продолжаем разговор о PowerShell. В поставку оболочки входит больше сотни командлетов (cmdlets), облегчающих выполнение административных задач в среде Windows. В то же время, для автоматизации тестирования GUI потребуются дополнительные средства: командлеты, учитывающие специфику тестируемых приложений, либо прямое обращение к классам Microsoft .NET Framework.

В статье “UI Automation with Windows PowerShell” Dr. James McCaffrey объясняет принципы создания и использования командлетов, способных работать с элементами графического интерфейса. По ссылке можно скачать cамораспаковывающийся архив TestRun2007_12.exe, в состав которого входит исходный код командлетов (CustomUICmdletsLib) и тестируемого приложения (TheAppToTest). После сборки в Visual Studio соответственно получаем CustomUICmdletsLib.dll и TheAppToTest.exe. Библиотеку нужно зарегистрировать с помощью прилагаемого Microsoft.PowerShell_profile.ps1:

function RegisterUILib
{
  write-host "registering custom cmdlets for UI automation`n"
  $env:path = $env:path += ";C:\Windows\Microsoft.NET\Framework\v2.0.50727"
  sl 'C:\UIautomationWithPowerShell\CustomUICmdletsLib\bin\Debug'
  installutil.exe CustomUICmdletsLib.dll | out-null
  add-pssnapin LibPSSnapin
  write-host "get-window, get-control, get-controlByIndex, send-chars, send-click"
  write-host "get-listBox, send-menu, and get-textBox custom cmdlets are enabled `n"
}
RegisterUILib # invoke function
set-location C:\UIautomationWithPowerShell

В результате в нашем распоряжении оказываются следующие командлеты: get-window, get-control, get-controlByIndex, send-chars, send-click, get-listBox, send-menu, get-textBox. Скрипт testScenario.ps1, присутствующий в архиве, выполняет запуск тестируемого приложения и операции с ним (нахождение окна, нажатие на кнопки, ввод текста и т.п.). Изучение, модификация и запуск этого скрипта (он довольно простой) позволят понять специфику командлетов.

Вот еще три примера реализации:

1. Windows Automation Snapin for PowerShell. Представлены следующие командлеты: Select-Window, Select-Control, Send-Click, Send-Keys, Set-WindowActive, Set-WindowPosition, Get-WindowPosition, Remove-Window. Вот вступительное слово от автора. Определенный интерес представляет и предыдущая версия этих командлетов, снабженная примером автоматизации работы Notepad (вот краткое описание).

2. PowerShell Scripts for Testing. Примеры использования этой библиотеки можно почерпнуть в блоге ее создателей.

3. PowerShell Community Extensions. Неплохая подборка командлетов и скриптов.

Стоит отметить, что PowerShell можно применять и для тестирования Web-приложений. Вот небольшой пример (получить текст web-страницы и проверить наличие в ней определенной строки):

$url = "http://openquality.ru"
$pattern = "OpenQuality"

$obj = new-object System.Net.WebClient
$page = $obj.DownloadString($url)

if($page -match $pattern) {
    write-output "OK"
} else {
    write-output "Failed"
}

Подходы к тестированию Web-интерфейса изложены в статье “Web UI Automation with Windows PowerShell”, где Dr. James McCaffrey рассматривает примеры работы с элементами web-страницы.

Эффективность применения PowerShell в автоматизации тестирования графического интерфейса напрямую зависит от объекта тестирования. Это .Net-приложение? Есть необходимые командлеты или .Net-классы? Опыт программирования в среде С#? В таких случаях PowerShell достоин самого серьезного рассмотрения.

Хорошим инструментом для работы с PowerShell-скриптами является графическая оболочка PowerGUI, которая позволяет не только запускать готовые скрипты в различных конфигурациях, но и создавать и отлаживать новые.

Всего доброго. Оставайтесь с нами.

Отправить в Twitter, Facebook, FriendFeed, ВКонтакте | Опубликовано 05.12.2008 в рубрике "Автоматизация"

Комментарии


Добавить комментарий

Пожалуйста, исправьте результат: дважды два равно



КРАТКОЕ СОДЕРЖАНИЕ

Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.


ПУТЕВОДИТЕЛЬ

Список всех статей с краткой аннотацией и разбивкой по рубрикам. Открыть карту.

ПОДПИСКА

Доступ к самым интересным материалам по электропочте и RSS. Подробности.

ИЩЕЙКА