Сведения о вопросе

Kirushaa

11:01, 5th August, 2020

Теги

Как вы тестируете веб-приложения, размещенные удаленно?

Просмотров: 426   Ответов: 5

Я знаком с TDD и использую его как на своем рабочем месте, так и в домашних веб-приложениях. Однако каждый раз, когда я использовал TDD в веб-приложении, у меня была роскошь иметь полный доступ к веб-серверу. Это означает, что я могу обновить сервер, а затем запустить модульные тесты непосредственно с сервера. Мой вопрос: если вы используете сторонний веб-хост, как вы запускаете свои модульные тесты на них?

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


Для всех, кто ответил с "just test before you deploy" и "разве у вас нет промежуточного сервера?- Я понимаю, к чему ты клонишь. У меня есть промежуточный сервер и настроенный процесс CI. Мои модульные тесты выполняются, и я убеждаюсь, что все они проходят перед обновлением до производства.

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

Я спрашиваю здесь, есть ли какой-либо способ, хотя бы для удовлетворения моих собственных навязчивых желаний, запустить модульный тест на сервере, на котором я не могу устанавливать приложения или удаленно (например, тот, к которому у меня будет только доступ FTP для обновления файлов)?



  Сведения об ответе

FAriza

21:44, 6th August, 2020

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

Я довольно сторонник TDD, и когда я проповедую преимущества клиентам, я часто ловлю себя на том, что говорю "you can't half adopt TDD, it's all or nothing"

То, что вы, вероятно, должны иметь некоторую форму автоматизированного тестирования, которое вы выполняете "after" deployment, но они не являются частью TDD.

Может, тебе стоит еще раз взглянуть на свой процесс.


  Сведения об ответе

fo_I_K

10:42, 21st August, 2020

Вы можете написать функциональные тесты в чем-то вроде WATIR , WATIN или Selenium , которые проверяют то, что возвращается на странице ответа после публикации определенных данных формы или запроса конкретного URLs.


  Сведения об ответе

darknet

01:28, 28th August, 2020

Для уточнения: какой вид доступа у вас есть к вашему веб-серверу? FTP или только WebDAV? Из вашего вопроса я предполагаю, что доступ к ssh недоступен - вы отбрасываете файлы в каталог для развертывания. Это правда?

Если это так, ответ для модульного тестирования, скорее всего, "сделайте это перед развертыванием". Вы можете настроить функциональное тестирование, управляемое автоматизированным инструментом, таким как Selenium , для удаленного тестирования вашего приложения через веб-интерфейс, но это не совсем модульное тестирование, поскольку вы ограничены тестированием системы в целом.

Рассматривали ли вы возможность установки промежуточного сервера, возможно, в качестве экземпляра VMWare, который отражает или, по крайней мере, имитирует вашу среду deployment?


  Сведения об ответе

SILA

11:30, 19th August, 2020

Что мешает вам запускать модульные тесты на сервере? Если вы можете загрузить свой рабочий код и позволить ему работать там, почему вы не можете загрузить этот другой код и запустить его?


  Сведения об ответе

lesha

08:57, 20th August, 2020

Я написал тестовые инструменты для сайтов, использующих python и httplib / urllib2, как правило,это было бы излишним, но в этих случаях он подходил. Не уверен, что это будет иметь общее использование, хотя.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться