Использование cygwin для автоматизации процессов...

Post on 26-Dec-2014

1.558 Views

Category:

Education

24 Downloads

Preview:

Click to see full reader

DESCRIPTION

SQA Days 11. День 2. Стендовая секцияИгорь РыбакБССМосква, Россия

TRANSCRIPT

Использование cygwin дляавтоматизации процессов тестирования в

Windows

Рыбак Игорь«БСС»

Задача развертывания

Задача развертывания

Задача развертывания

Задача развертывания

Задача развертывания

Задача развертывания

Что такое cygwin?

поддержка системных вызововPOSIX

Что такое cygwin?

порт GNU утилит под windows

поддержка системных вызововPOSIX

Почему именно cygwin?

Почему именно cygwin? Универсальность

Почему именно cygwin? Универсальность

Кроссплатформенность сценариев

Задача генерации блока текста

Задача

многострочный текстовый файл конфигурационный файл

Требуется создать:

с динамическим содержимым

Как это сделать?...

Генерация блока текста

Winset "file=config_file.txt"

echo param1=%value1%>%file%

echo param2=%value2% >>%file%

Генерация блока текста

Winset "file=config_file.txt"

echo param1=%value1%>%file%

echo param2=%value2% >>%file%

Генерация блока текста

Cygwin

Win

cat > "config_file.txt" <<End-of-message

param1=${value1}

param2=${value2}

End-of-message

set "file=config_file.txt"

echo param1=%value1%>%file%

echo param2=%value2% >>%file%

Задача обработки массива

Задача

одно действие (команду) с разными аргументами

Требуется выполнить:

Как это сделать?...

Массивы

Win

set "args=args_file.txt"

echo arg1>%args%

echo arg2>>%args%

for /F "usebackq delims=" %%i in(%args%) do (

do_something %%i

)

Массивы

Win

set "args=args_file.txt"

echo arg1>%args%

echo arg2>>%args%

for /F "usebackq delims=" %%i in(%args%) do (

do_something %%i

)

Массивы

Cygwin Win

args=(

arg1

arg2

)

for arg in ${args[*]}

do

do_something arg

done

set "args=args_file.txt"

echo arg1>%args%

echo arg2>>%args%

for /F "usebackq delims=" %%i in(%args%) do (

do_something %%i

)

Задача обработки текста

Задача

обработать файл с логом вывести все строки со словом

«Exception»

Требуется:

Как это сделать?...

Обработка текста Win

@echo offsetlocal enabledelayedexpansionset len=0

set "str=abcderExceptionasdasd"set "substr=Exception"

call :get_str_len %substr%set substr_len=%len%

call :get_str_len %str%set str_len=%len%

set /a end_str=(%str_len%-%substr_len%)

for /L %%i in (0,1,%end_str%) do (set res=!str:~%%i,%substr_len%!if not defined res (

goto :out) else (

if "!res!"=="%substr%" (echo %str%goto :succ)

))goto :out

:get_str_lenset mystr=%~1for /L %%i in (0,1,30) do (

set res=!mystr:~%%i,1!if not defined res (

set len=%%igoto :EOF

))goto :EOF

:succ:outpause

Обработка текста Win

@echo offsetlocal enabledelayedexpansionset len=0

set "str=abcderExceptionasdasd"set "substr=Exception"

call :get_str_len %substr%set substr_len=%len%

call :get_str_len %str%set str_len=%len%

set /a end_str=(%str_len%-%substr_len%)

for /L %%i in (0,1,%end_str%) do (set res=!str:~%%i,%substr_len%!if not defined res (

goto :out) else (

if "!res!"=="%substr%" (echo %str%goto :succ)

))goto :out

:get_str_lenset mystr=%~1for /L %%i in (0,1,30) do (

set res=!mystr:~%%i,1!if not defined res (

set len=%%igoto :EOF

))goto :EOF

:succ:outpause

Обработка текста Cygwin Win

cat c:/log.txt|awk '/Exception/ {print($0)}'

@echo offsetlocal enabledelayedexpansionset len=0

set "str=abcderExceptionasdasd"set "substr=Exception"

call :get_str_len %substr%set substr_len=%len%

call :get_str_len %str%set str_len=%len%

set /a end_str=(%str_len%-%substr_len%)

for /L %%i in (0,1,%end_str%) do (set res=!str:~%%i,%substr_len%!if not defined res (

goto :out) else (

if "!res!"=="%substr%" (echo %str%goto :succ)

))goto :out

:get_str_lenset mystr=%~1for /L %%i in (0,1,30) do (

set res=!mystr:~%%i,1!if not defined res (

set len=%%igoto :EOF

))goto :EOF

:succ:outpause

Задача remote-доступа к машине

Задача

запустить на удаленной машине сценарий после отключения сценарий должен

выполняться

Требуется:

Как это сделать?...

Консоль удаленной машины Win

Консоль удаленной машины Cygwin Win

scp -i $DSA_KEY file.sh user@remote_server:~/

Передача сценария

Консоль удаленной машины Cygwin Win

scp -i $DSA_KEY file.sh user@remote_server:~/

ssh -i $DSA_KEY user@remote_server "/bin/bash~/file.sh"

Передача сценария

Запуск сценария

Задача передачи файлов

Задача

из shared folder в windows cкачать по http/ftp

Требуется получить файлы:

Как это сделать?...

Передача файлов

Cygwin + Win

net use W: \\ftp_folder

rem work with files

net use W: /DELETE

Передача файлов

Cygwin + Win

net use W: \\ftp_folder

rem work with files

net use W: /DELETE

wget -N -P c:/dist_folder/ --progress=dot:mega http://file.zip

Cygwin

Задача архивации

Задача

распаковать файлы из zip-архива

Требуется:

Как это сделать?...

Распаковка zip

Win

Распаковка zip

Cygwin

unzip c:/archive.zip -d c:/archive

Win

Задача передачи управления

Задача

запустить bat- или exe-файл в среде windows передавать аргументы

Требуется:

Как это сделать?...

Передача управления в Windows

cygstart "C:/folder/run.bat"

Запуск приложения

Передача управления в Windows

cygstart "C:/folder/run.bat"

cygpath -w "c:/folder/run.bat" C:\folder\run.bat

/cygdrive/c/folder/run.batcygpath -u "C:\folder\run.bat"

Запуск приложения

Преобразование путей

Offline - установка

Offline - установка

Offline - установка

Автоматическая установка

Автоматическая установка

set PACKAGE_LIST=openssh,tcp_wrappers,diffutils,zip,unzip,wget

Задаем список устанавливаемых пакетов

Автоматическая установка

set PACKAGE_LIST=openssh,tcp_wrappers,diffutils,zip,unzip,wget

Задаем список устанавливаемых пакетов

Запускаем установкуcygwin_setup.exe -q --local-install --root %SystemDrive%\cygwin-l %cd% -P %PACKAGE_LIST%

Автоматическая установка

set PACKAGE_LIST=openssh,tcp_wrappers,diffutils,zip,unzip,wget

Задаем список устанавливаемых пакетов

Запускаем установкуcygwin_setup.exe -q --local-install --root %SystemDrive%\cygwin-l %cd% -P %PACKAGE_LIST%

setx path "%PATH%;%SystemDrive%\cygwin\bin"

setx CYGWIN "ntsec tty"

Прописываем системные переменные

Итог

Итог

Общее описание cygwin

Итог

Примеры использования

Общее описание cygwin

Итог

Примеры использования

Удобства развертывания

Общее описание cygwin

Итог

Примеры использования

Удобства развертывания

Спасибо за внимание!

Общее описание cygwin

top related