Допустим, я использую пакетный подход создания образов для Mac и иметь машину со свежим образом (или, лучше сказать, несколько разных типов машин), готовую к тестированию. Как выполнить автоматическое тестирование?
редактировать:
Меня в первую очередь интересуют изображения для клиентских машин. Я имею в виду следующее тестирование:
Возможно, более фундаментально:
AppleScript кажется очевидным выбором. Вот краткое описание этого (с некоторыми примечаниями о приложениях, которые не участвовали в минимальном тестировании, которое я проводил) (примечание: замените reportEvent чем-то более подходящим ...):
my TestApp("Address Book")
#my testApp("Aperture") # Aperture doesn't seem to understand activate -- WTF?
#my testApp("Automator") # Automator brings up a sheet when launched -- not sure how to dismiss
my TestApp("Calculator")
my TestApp("Chess")
my TestApp("Dictionary")
# etc...
my reportEvent("OS", "FinishedTest")
on TestApp(appName)
tell application appName to activate
delay 1
tell application "System Events" to count (application processes whose name is appName)
if result is 0 then
my reportEvent(appName, "QuitUnexpectedly")
end if
tell application appName to quit
delay 1
tell application "System Events" to count (application processes whose name is appName)
if result is not 0 then
my reportEvent(appName, "FailedToQuit")
end if
end TestApp
on reportEvent(appName, eventDesc)
do shell script "curl 'http://server/eventtracker.php?app=" & sanitizeSpaces(appName) & "&event=" & sanitizeSpaces(eventDesc) & "'"
end reportEvent
on sanitizeSpaces(dangerousString)
set AppleScript's text item delimiters to " "
set safeString to text items of dangerousString
set AppleScript's text item delimiters to "_"
return safeString as Unicode text
end sanitizeSpaces
... сохраните это как приложение из редактора AppleScript (чтобы он запускался при открытии), затем добавьте его в список элементов входа в тестовую учетную запись (Системные настройки -> панель учетных записей -> вкладка Элементы входа).
Я отложу проблему получения сетевой учетной записи для автоматического входа при загрузке. Я подозреваю, что есть не слишком сложный способ сделать это (возможно, через управляемые настройки или просто добавив соответствующие файлы настроек «вручную», то есть скрипт после восстановления), но у меня нет полезной тестовой настройки. пригодится на данный момент.
Под «тестом» вы имеете в виду «убедиться, что определенные пакеты и программы существуют и работают должным образом»?
Если это так, я не могу говорить с частями, специфичными для Mac, но мой подход состоял бы в том, чтобы включить небольшую программу XML-RPC как часть изображения. Это не обязательно должен быть XML-RPC, но это подход, который я раньше находил полезным.
Программа будет предоставлять API на коробке для различных тестов. По умолчанию он будет запускаться при загрузке машины, прослушивая (скажем) порт 8080. Ваш управляющий сценарий будет подключаться и запускать последовательность команд в стиле модульного тестирования. Вы можете управлять уровнем экспозиции, от «существует ли этот каталог» до «что происходит, когда вы запускаете фотошоп».
Как я уже сказал, это не для Mac, но было бы простым и портативным решением.
PS После прохождения тестов пакет мог ответить на финальную команду удалить себя из образа :)
я видел Баклажан много раз предлагал способ автоматизации тестирования, особенно с помощью приложений с графическим интерфейсом.
В качестве альтернативы короткий сценарий оболочки, который запускается при первом запуске и затем удаляется, чтобы убедиться, что настройки конфигурации установлены (например, привязаны к Open Directory, могут получить доступ к серверам, прочитать определенные настройки с помощью PlistBuddy или значений по умолчанию, проверить правильность MCXCache, и т.д.)
Я полагаю, это будет зависеть от того, что вы пытаетесь проверить. Я предполагаю, что вы можете использовать сценарий Apple для автоматизации любых действий, которые вы пытаетесь протестировать.