Как запустить сценарий оболочки на удаленной машине с Java? - PullRequest
1 голос
/ 09 октября 2009

Я создаю тест, который выполнит некоторое стресс-тестирование приложения, которое обращается к базе данных Postgres. Чтобы сделать его воспроизводимым, я бы хотел воссоздавать базу данных при каждом запуске. Метод запуска, украшенный аннотацией org.junit.Before, удалит базу данных (если она существует) и восстановит ее из файла дампа. Выполнение этой формы оболочки / команды тривиально:

psql -f db.out newdb

или что-то в этом роде. Поскольку тест может быть выполнен на JVM, не работающей на той же машине, на которой размещена база данных, я задаюсь вопросом, возможно ли программно запустить сценарий shell / batch на удаленном компьютере из Java.

Спасибо

Ответы [ 2 ]

4 голосов
/ 09 октября 2009

Если вы знакомы с деталями машины (имя хоста, логин, пароль), единственное, о чем я могу думать в данный момент, - это использовать Java SSH-библиотеку для входа в систему и выполнения этой команды.

Или вы можете написать скрипт на своем локальном компьютере, который запускает скрипт на удаленном компьютере с заданными правильными параметрами.

Это самый простой способ, о котором я могу думать!

2 голосов
/ 09 октября 2009

Если настройка SSH слишком сложна, вы можете написать небольшую Java-программу, которая прослушивает соединения в сокете, а затем запускает скрипт. Установите это на сервере Postgres и подключитесь к нему в тестовом примере.

Тем не менее, я предлагаю установить копию Postgres на каждом компьютере разработчика. Это сделает ваши тесты намного быстрее, и вы не получите ложных ошибок, когда два разработчика будут запускать тесты одновременно. Кроме того, у вас не будет ошибок из-за проблем с сетью, потому что кто-то выполняет обслуживание на сервере, потому что разработчик X изменил схему БД и т. Д. И т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...