Как мы в Test IT мигрировали. Опыт компании Innostage

391 5 min

Руководитель группы автоматизированного тестирования в Innostage Евгений Токарев поделился опытом выбора новой TMS и миграции большого количества тест-кейсов из TestLink в Test IT практически одной кнопкой. Статья впервые опубликована в блоге компании Innostage на Хабре.  

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параллельно было найдено JS-приложение для миграции из TestLink в Test IT, которое кто-то писал под себя несколько лет назад, но мы не знали, работает ли оно и что конкретно делает. Со временем удалось переписать это приложение, чтобы оно начало делать хоть что-то, и мы начали получать непонятные ошибки со стороны БД Test IT. 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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


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


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


В этот момент мимо проходили два матерых архитектора, поинтересовались, отчего я ору на весь офис, и вызвались помочь. За полдня мы втроем переписали скрипт практически полностью, в нем не осталось ни одной изначальной строчки. Но задача была решена — запросы начали отправляться более разумно и проблема разрыва связи с TestLink и Test IT ушла. Последние четыре проекта с самым большим количеством тест-кейсов мигрировали с достаточно высоким процентом.


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

Была ли статья полезной?