Столкнулся с необходимостью выполнения определенных сэмплов через ssh тунель.
Имеем:
- хост "A", с которого доступны запросы на хосты "A1", "A2" ... "An"
- хост "B", на котором будет выполняться сценарий Jmeter. Эта машина имеет доступ к А, но не имеет доступа к А1, А2, А3 и т.д.
Задача:
- с хоста B делать SOAP запросы на хосты Ax, через хост А посредством создания туннелей.
- туннели должны создаваться именно в jmeter на время выполнения сценария
Сейчас добавил в группу OS Process Sampler, в котором в качестве команды указано SSH и добавлены соответствующие параметры. В итоге получаем выполнение команды "ssh -T -L localport:targethostAx:targetport serveruser@hostA"
После этого для отладки пока добавил HTTP Request с обращением к нужному мне сервису на хосте Ax.
Однако команда выполняется успешно, а HTTP запрос сообщает Connection refused.
Если в терминале открываю туннель на время выполнения этого запроса, то запрос проходит нормально.
Однако меня интересует именно открытие такого туннеля не вручную, а в самом тесте Jmeter
Что я упустил? Или может есть другой выход для достижения цели?
Недавно я прочитал статью в блоге Скотта Хансельмана "Темная сторона разработки – скрытые 99%". Основной мыслью статьи было то, что большинство разработчиков не читают профессиональные блоги, не ведут свой, не участвуют в групповых обсуждениях, не пользуются твиттером и фейсбуком, и не посещают крупные конференции.
Я часто наблюдал таких людей в командах, где я работал, и это не менее верно для тестировщиков. Небольшая их часть активно интересуется тестированием вне своего основного рабочего времени, и если вы это читаете – поздравляю, вы в меньшинстве. Все остальные находятся на темной стороне.
Почему?
Скотт считает, что причина кроется в постоянно растущих темпах перемен в мире разработки программного обеспечения. Это демотивирует многих следить за новостями индустрии – как только вы наконец-то освоили последние новинки, они уже превратились в преданья старины глубокой, потому что появилось нечто еще более новое и совершенное. Поэтому стоит ли стараться?
Это очень верно для мира разработки ПО, но для тестировщиков технология все-таки вторична по сравнению с функциональностью. Да, мы тоже чувствуем давление постоянных технологических перемен, но при этом не сражаемся на передовой, как наши коллеги-разработчики. Битва тестировщиков проходит на поле определений тестирования, оправданий тестирования, защиты тестирования. Эти вопросы постоянно всплывают в той или иной форме, они уже всех утомили, но это отражение состояния нашей отрасли.
Тестирование для многих – просто некий переходный период. Нет, это могут быть профи своего дела, опытные и любящие свою работу тестировщики, но в большинстве своем люди не мечтают об этой профессии с пеленок, и не хотят работать тестировщиками до конца дней своих. Добросим еще тот факт, что в мире не существует некого общего образования или набора идеальных практик для тестирования, и желаемые навыки очень варьируют в зависимости от конкретной компании или даже страны. Правда, неудивительно, что тестировщики не испытывают большого желания участвовать в жизни отрасли? Даже если они не прочь принять участие, это страшновато – в ней царит какофония различных мнений.
Часть автотестов, которые нужно написать требует перезагрузку между этапами.
Для примера:
0. Given виртуалка
1. Запустить установку программы
2. Перезагрузиться
3. Проверить корректность установки (n тестов)
4. Деинсталлировать программу
5. Проверить что на системе не осталось остатков программы
Не получилось у меня найти конкретику как дизайнить такие тесты на Python или с использованием Robot Framework, да и на других языках ничего толкового не нашел.
Очень круто было бы увидеть реальные примеры дизайна таких тестов, бестпрактикс работы с шагами тестов, передачи данных между этапами и т.п.