Надежда Серкова -- Автоматическая генерация perl...
Post on 12-Jun-2015
592 Views
Preview:
TRANSCRIPT
Серкова Надежда
Шваркунов Сергей19 – 20 ноября 2010
Автоматическая генерация Perl скриптов для тестирования
систем хранения данных
Введение
Взаимодействие с системой хранения данных EMC Celerra осуществляется через графический интерфейс или через интерфейс командной строки (CLI интерфейс). Возможности CLI-интерфейса позволяют конфигурировать систему при помощи скриптов, а также открывают большие возможности для её тестирования. Поскольку этот интерфейс сам является частью нового продукта, он тоже должен быть протестирован как компонент системы.
EMC Celerra
Формулировка проблемы
• Большое количество команд
– Большое количество тестов • Сложности с их
– Созданием– Систематизацией \ навигацией– Модификацией
Решение
• Система автоматической генерации тестов– Хранение всей информации, необходимой
для генерации тесовых скриптов, в одном месте в простой и удобной форме
– Полное отсутствие необходимости написания или правки скриптов вручную
– Общая структура всех файлов тестов
Реализация:
• Выбор языка программирования
– Perl• Разбор структур данных• Работа с текстом• Создание и передача между
компонентами внутренних структур данных
• Linux окружение
Схема системы автоматической генерации тестов
1
domain_list.txt
get_automatic_tests.pl
2
3
Script_Generator.pm
<object>.csv
4
<Object>.pm :
sub precheck_<object> {…}sub check_<object> {…}sub postcheck_<object> {…}
template.pl
CLI_Test.pm CLI_Parametres.pmgenerated test
Синтаксис CLI команд • Объект: Shared folder
– Действия и их параметры:• Show:
– id, не обязателен– output, не обязателен, допустимые значения – table,
detail– mode, не обязателен, допустимые значения – brief,
detail• Create:
– name, обязателен– descr, не обязателен– res, обязателен– path, обязателен
• Delete– id, обязателен
Синтаксис CLI команд: продолжение • Вид возможных команд для объекта Shared
folder:– sf create –name share1 –res RES_05 –path “share”– sf create –name share2 –descr “my share” –res
RES_00 –path “share/another”– sf show– sf show –output table– sf show –mode detail– sf show –output nvp –mode detail– sf –id share1 show –mode brief– sf –id share2 delete
Структура таблицы
1
domain_list.txt
get_automatic_tests.pl
2
3
Script_Generator.pm
<object>.csv
4
<Object>.pm :
sub precheck_<object> {…}sub check_<object> {…}sub postcheck_<object> {…}
template.pl
CLI_Test.pm CLI_Parametres.pmgenerated test
Структура таблицы: продолжение
cmd start positive sf show
id <> share_1 share_2 default_share
output table <> nvp
mode brief detail <>
cmd end
“<>” – означает, что параметр отсутствует в команде
Принцип построения команд
cmd start positive sf show
id <> share_1 share_2 default_share
output table <> nvp
mode brief detail <>
cmd end
sf show –output table –mode brief
sf show –id share1 –mode detail
sf show –id share2 –output nvp
Принцип построения команд: продолжение
cmd start positive sf show
id <> share_1 share_2 default_share
output table <> nvp
mode brief detail <>
cmd end
sf show –id defult_share –output table –mode brief
Структура модуля
1
domain_list.txt
get_automatic_tests.pl
2
3
Script_Generator.pm
<object>.csv
4
<Object>.pm :
sub precheck_<object> {…}sub check_<object> {…}sub postcheck_<object> {…}
template.pl
CLI_Test.pm CLI_Parametres.pmgenerated test
Структура модуля: продолжениеsub precheck_sf{
my $command = shift;if ($$command{“action”} eq “show”){
if (defined $$command{“id”}){
my $id = $$command{“id”};# добавить в файл теста строки, # обеспечивающие наличие объекта с данным id
}}if ($$command{“action”} eq “create”) {…}if ($$command{“action”} eq “delete”) {…}
} sub check_sf {…}sub postcheck_sf {…}
МодификацияПри изменении синтаксиса команды или формата допустимых значений параметров необходимо:– Внести изменения в текст всех уже созданных
тестовых скриптов– Гарантировать их целостность и корректность их
работы после изменений
С использованием системы автоматической генерации тестов, этого легко добиться, поменяв значение параметра в таблице, на основе которой генерируются тесты, и сгенерировав их заново.
Заключение• Была разработана и реализована система
автоматической генерации тестов, которая успешно функционирует, с её помощью тесты создаются и при необходимости модифицируются.
• Преимущества– Упростилось управление тестами– Уменьшилось влияние человеческого фактора– Все скрипты имеют общую структуру и формат заголовка,
что позволило автоматизировать отображение их результатов и занесение тестов и результатов в трекерную систему
– Возможность сгенерировать ранее не выполнявшиеся тестовые скрипты
Спасибо
top related