Можно ли выяснить, перезагружает ли IE xaps Silverlight из кода C# или powershell?

У нас все еще есть Silverlight (грустная история), и мне нужно написать дымовой тест, который проверяет, перезагружает ли IE XAP-файлы при доступе к сайту после развертывания. Повторная загрузка XAP означает наличие какой-то проблемы с конфигурацией/развертыванием, и это плохо.

Это либо C#, либо Powershell, и, конечно, он должен работать без вмешательства человека. Он работает на выделенной машине для запуска тестов, где я могу, например, установить Fiddler.

Тем не менее, использование Fiddler или любого глобального прокси-сервера в этом отношении не идеально, поскольку один и тот же инструмент запуска тестов используется для проверки различных сайтов, развернутых в нашем облаке. Однако это возможно. Дополнительная сложность заключается в том, что Fiddler должен будет установить свои SSL-сертификаты, чтобы расшифровать HTTPS-трафик. Короче говоря, я не уверен, что это правильный путь. Плюс мне непонятно как автоматизировать шаги:

  1. Установить сертификат
  2. Начать захват
  3. Получить захваченный трафик
  4. Остановить захват
  5. Удалить сертификат

Итак, я ищу совет о том, как это сделать, не обязательно используя Fiddler или глобальный HTTP-прокси в целом. Любые идеи?

РЕДАКТИРОВАТЬ 1

Этот тест уже находится в списке ручных тестов дыма. Мы автоматизируем эти тесты, и теперь настала очередь этого.

Это отличный вопрос. И хорошая запись. К сожалению, я не уверен, что мы сможем дать окончательный доказуемый ответ, поскольку он может иметь любое количество решений. ?

Jon Adams 26.02.2019 19:18

И это того стоит: если автоматизировать становится слишком сложно, то не автоматизировать, а вместо этого сделать его частью списка ручных тестов QA. Не очень хорошо, но есть баланс между сложностью и воспроизводимостью автоматизации и тем, сколько времени она экономит. Если вы не развертываете это очень часто, например, ежедневно, но если вы все еще застряли на Silverlight, я думаю, ваш магазин/клиент не в курсе. (Опять же, это не совет «лучшей практики», а практический совет «сделать это» для проекта, который в любом случае может не соответствовать всем остальным лучшим практикам.)

Jon Adams 26.02.2019 19:23

Уже проверено локально. Но мы хотим автоматизировать это. При необходимости мы можем установить на тест-раннер что угодно.

mark 26.02.2019 20:19

Вместо этого лучше спросить об этом в sqa.stackexchange.com.

tk421 26.02.2019 21:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
41
1

Ответы 1

Похоже, вы пытаетесь проверить поведение IE, что нецелесообразно.

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

На самом деле я бы попытался протестировать HTML-страницу хостинга и/или ответ HTTP.

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

Вы также можете проверить дочерний элемент <param /> элемента <object /> на веб-странице, значение source которого имеет URL-адрес.

Браузер кэширует файл XAP, если URL-адрес такой же, как и раньше. Таким образом, вы можете проверить, изменится ли это значение с помощью последующего запроса.

От https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/gg701782(v%3Doffice.14):
... браузер будет кэшировать этот файл .xap так же, как и любой другой файл, на основе установленных политик кэширования.

Вот пример кода C#:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://example.com/SilverlightHostingPage.html"));

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string cacheControlHeader = response.GetResponseHeader("Cache-Control");
// TODO: check header value

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(response.GetResponseStream());
string xapUrl = xmlDoc.DocumentElement.SelectSingleNode("//object/param[@name='source']").Attributes("value").Value;
// TODO: check xap url

Хм, так вы говорите, что правила кэширования XAP точно такие же, как и для любого другого HTTP-ресурса? и, следовательно, можно понять, разобрав ответ HTTP? Я по-прежнему предпочитаю тестировать его через браузер, предполагая, что он не настроен на удаление кэша при выходе.

mark 27.02.2019 15:20

да. docs.microsoft.com/en-us/previous-versions/office/developer/‌​… "браузер будет кэшировать этот файл .xap так же, как и любой другой файл, в зависимости от установленных политик кэширования".

Rami A. 27.02.2019 18:24

Это означает, что тест должен проанализировать ответ HTTP и выяснить, что будет делать браузер. Нужно проверить, простой ли это тест. Можете ли вы оформить свой ответ как ответ, чтобы я мог заслужить его? Было бы неплохо, если бы вы могли предоставить некоторые оперативные подробности.

mark 27.02.2019 20:53

Другие вопросы по теме