t.me/atinfo_chat Telegram группа по автоматизации тестирования

Не могу соединиться с БД MSSQL

Теги: #<Tag:0x00007f9af9ce7160>

Уже всё по перепробовал не могу подключиться и всё. Выдает эспшн в логе
Не удалось установить соединение TCP/IP к серверу localhost/test по порту 1433. Ошибка: “null. Проверьте свойства соединения. Убедитесь, что на сервере запущен экземпляр SQL Server и он принимает TCP/IP-соединения по порту. Убедитесь, что TCP-соединения по этому порту не блокируются брандмауэром.”.

Скачал sqljdbc4.jar и положил в папку lib Jmetera

На сколько я понимаю если я не указываю в URL порт, то он подкл автоматически т.е. к 1433, URL пробывал как jdbc:sqlserver://localhost так и jdbc:sqlserver://localhost:1433/test всё равно нет подключения

Запрос делал вот такой: insert into test.dbo.testable values (‘23’,‘dfgpoint’)

Если подкл к БД через jdbc в IDEA, то всё летит на ура
Кто знает в чем трабла ПОМОГИТЕ

Почему /test в строке подключения? Там точно не ; должна быть?

  1. Попробовать рестартануть jmeter
  2. Убедиться в правильности строки подключения

Ну и урлик в тему

/test - это база к которой идет подкл (она в принципе и не нужна)

урлик тот тоже не идет

То есть Вы скопировали URL из IDEA и с ним не подключается?

Совершенно верно! я его еще видоизменял добавляя порт и имя использованной БД, так же использовал урл которые предлагали выше

Мой вопрос был не про название базы test, а про символ /, которого в connection string не должно быть в том смысле, который ты в него вкладываешь. Как имя сервера (хост/SQL-инстанс) это валидно, но как сочетание hostname/dbname - нет. И именно об этом сообщает текст исключения Не удалось установить соединение TCP/IP к серверу localhost/test по порту 1433, он рассматривает localhost/test как имя сервера.

Попробуй указать валидное значенив строки подключения в формате jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;, примеры смотри здесь

1 Симпатия

Собственно поэтому я и удивился, почему скопированый url из идеи не работает

Причину нашел!
URL: jdbc:sqlserver://localhost
JDBC Driver: com.microsoft.sqlserver.jdbc.SQLServerDriver

Запрос insert into test.dbo.testable values (‘23’,‘dfgpoint’)
при первом подключение всё ОК

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

Еще вопрос по многопоточности?
Получается выбирая 100 пользователей за 1 сек, они по очереди будут обращаться к табл, при этом блокировок в MSSQL не будет, а есть ли возможность с Jmetera сделать чтобы обращение сразу было всех 100 потоков? или писать утилиту самому?

Jmeter как раз во много потоков запускает сэмплеры

1 Симпатия

Ну так они работают последовательно, пока не отработает 1-й не запускается 2-й, или не так?

Нет. Каждый пользователь запускается параллельно.

Странно а почему тогда не вкл блокировки в mssql?

Ну, смотря, что подразумевать под блокировками. Если то, что один не можёт вставлять, пока второй не вставит. Нафиг такая СУБД. :smile: