Как стать автором
Обновить
95.04

Как мы в TestIt мигрировали

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.7K

Привет, Хабр! Меня зовут Евгений Токарев, я руководитель группы автоматизированного тестирования в Innostage. Хочу поделиться нашим опытом выбора новой TMS и миграции достаточно большого количества тест-кейсов практически одной кнопкой.

Поехали!

Так случилось, что TMS TestLink, которой долгое время пользовались тестировщики в нашей компании, морально устарела, была довольно медленной и неудобной, в отличие от десятков более новых систем. Поэтому мы стали искать что-нибудь другое - более современное, полезное, удобное и быстрое.

Чем не устраивал TestLink:

  • У TestLink ужасное юзабилити. Имеются проблемы при администрировании. Дизайн и удобство настолько «на любителя» (дизайн и технологии 2006-го года), что некоторые проекты ведут документацию где угодно, но только не в нем (кто-то в Confluence, кто-то в Google Docs, кто-то в Excel).

  • Сложная или невозможная интеграция с Jira.

  • Проблемы с версионностью тестов. Нет инструмента сравнения версий (построчный diff).

  • Нет никакого функционала для работы с автотестами.

  • С помощью TestLink нельзя управлять нагрузкой на сотрудников, в то время как в большинстве современных TMS такая возможность есть.

Проблемы, которые должна решать новая TMS:

  • Единое место хранения тестовой документации для всех проектов.

  • Нужна связь между имеющимися автотестами и тест кейсами. Нужна для понимания, что мы можем не проходить вручную и что покрыто автотестами.

  • Должна быть возможность распределения нагрузки на тестировщиков.

Было проанализировано множество TMS, которые предлагает рынок:

Из них выбрано 5 для более пристального изучения:

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

И в итоге победил TestIt!

Прежде чем идти к руководству с просьбой купить нам лицензию на TestIt, было решено развернуть пробную версию, потрогать всё ручками, и, самое главное, узнать - как бы лучше, быстрее и безболезненнее мигрировать почти 21000 тест кейсов из TestLink.

Прямой интеграции между TestLink и TestIt не существует, поэтому начали искать свое или стороннее решение.

Писались скрипты на питоне, разворачивались локальные версии TestRail (туда потенциально можно было перекинуть сценарии из TestLink, а потом уже из TestRail в TestIt).

Параллельно было найдено JS-приложение для миграции из TestLink в TestIt, которое кто-то писал под себя несколько лет назад, но мы не знали работает ли оно и что конкретно делает.

Со временем удалось переписать это приложение, чтобы оно начало делать хоть что-то, и мы начали получать непонятные ошибки со стороны БД TestIt (прошу прощения за качество скриншотов, в лучшем качестве не осталось):

Был задан вопрос поддержке TestIt, и, в результате долгого и плотного общения с ними, удалось перенастроить докер-контейнеры и избавиться от части ошибок.

После этого выяснилось, что это JS-приложение шлет очень много одновременных запросов и из-за особенностей PostgreSQL мы ловим дедлоки. Пришлось снова переписать часть приложения, чтобы оно отправляло запросы последовательно, а не асинхронно.

Теперь JS-приложение начало работать как ожидалось. Оно устанавливало связь с TestLink, брало из него все папки и тест-кейсы для нужного проекта, конвертировало внутри себя в подходящий для TestIt формат, и создавало/заполняло папки и тест-кейсы уже в TestIt.

Но не очень правильно и не очень красиво! Выяснилось, что секции с Описанием тест-кейса, предусловия и постусловия не мигрируют вообще, а действия и результаты шагов мигрируют с неправильной нумерацией:

 

В итоге, немного поколдовав над приложением, удалось реализовать миграцию пред- и постусловий, и Описания, но результат все еще был далёк от совершенства...

Описание тащило за собой кучу ненужного:

А пред- и постусловия выглядели так же отвратительно, как шаги и результаты шагов (с неправильной нумерацией).

После небольшого сеанса магии, удалось избавиться от ненужных HTML-тегов в поле с Описанием, и оно стало выглядеть так:

 

А потом и вот так:

С этим закончили.

Осталось разобраться с неправильной нумерацией в пред-, постусловиях и шагах.

Было, напоминаю, вот так:

Потом стало красивее, без цифр вообще, но тоже не идеально:

 

Потом сплошным текстом без каких бы то ни было разделений:

И, в итоге, вот так:

Успешно мигрировав целый проект из 418-ти тест-кейсов мы окончательно поверили в себя и решили притормозить с исследованиями миграции.

Собрав по интернету кучу полезной информации про TestIt, просмотрев тонну обучающих видео, написав несколько презентаций и, собственно, презентовав их, мы успешно договорились с руководством о покупке лицензии на TestIt.

Через несколько месяцев согласований на всех уровнях компании, лицензионный TestIt наконец-то был развернут. И пришло время мигрировать нашу 21 тысячу тест-кейсов по-настоящему, назад пути не было…

Я сдул пыль с моего выстраданного скрипта миграции, немного поковырялся в нем, чтобы освежить в памяти, как и с какими параметрами его запускать, и, вздохнув и помолясь, начал миграцию.

Вначале я вручную создал все проекты в TestIt (можно было сделать это питоновским скриптом, написанным ранее, но автор скрипта был в отпуске, и показалось, что руками будет быстрее, чем писать ему, ждать ответа, уточнять что-то и так далее😊)

Затем были взяты ID всех проектов из TestLink и свежесозданных проектов из TestIt и занесены в табличку.

Также было взято общее количество тест-кейсов из TestLink по каждому проекту, чтобы в последствии сравнивать, не потерялось ли чего, и посчитать общий процент успешно мигрировавших тест-кейсов.

Забегая вперед, эта табличка впоследствии стала выглядеть так:

Решено было начинать миграцию с самых маленьких проектов, чтобы мигрировать по максимуму с самого начала, а не застрять на каком-нибудь огромном проекте и сидеть без какого-либо осязаемого результата😊

Первые 13 проектов мигрировали без сучка без задоринки. Я еле успевал менять ID проектов во входных параметрах скрипта. Но с 14-м проектом, у которого на скрине выше всего 34%, что-то пошло не так.

С первого раза удалось мигрировать 307 тест-кейсов из 313-ти, но такой результат мне не понравился (еще бы, ведь до этого все проекты мигрировали со стопроцентным успехом), и я решил перезапустить скрипт. А зря. Что-то где-то поломалось, и сколько еще раз я не пытался перезапустить скрипт, больше 107-ми тест-кейсов мигрировать так и не удалось. Их впоследствии вручную перенесли из системы в систему тестировщики.

Следующие три проекта снова мигрировали без проблем со стопроцентным успехом.

Затем начались проекты с количеством тест-кейсов 1000+. Какие-то успешно мигрировали с первого раза на 100%, какие-то со второго, какие-то с пятого, а у каких-то, несмотря ни на что, не удалось получить процент успешной миграции выше 99. Что тоже, в принципе, неплохо.

Проблемы начались с проектами, у которых количество тест кейсов было >2000. Наш скрипт работал с умопомрачительной скоростью, ддосил и TestLink и TestIt, и, в итоге, соединение отваливалось то с одной, то с другой стороны.

В этот момент мимо проходили два матерых архитектора, поинтересовались, отчего я ору на весь офис, и вызвались помочь. За полдня мы втроем переписали скрипт практически полностью, в нем не осталось ни одной изначальной строчки. Но задача была решена - запросы начали отправляться более разумно, и проблема разрыва связи с TestLink и TestIt ушла. Спасибо, Андрей и Вася😊

Последние 4 проекта с самым большим количеством тест-кейсов мигрировали с достаточно высоким процентом.

В итоге, мы успешно перекинули из TestLink в TestIt 20530 тест-кейсов из 20990, причем 200+ из немигрировавших были ненужными дубликатами. Так что общий процент успешно мигрировавших тест кейсов стал равен 97%.

Ну а счастливые тестировщики приступили к работе в новой системе😊

Теги:
Хабы:
Всего голосов 9: ↑9 и ↓0+9
Комментарии8

Публикации

Информация

Сайт
innostage-group.ru
Дата регистрации
Численность
1 001–5 000 человек
Местоположение
Россия