У нас все еще есть Silverlight (грустная история), и мне нужно написать дымовой тест, который проверяет, перезагружает ли IE XAP-файлы при доступе к сайту после развертывания. Повторная загрузка XAP означает наличие какой-то проблемы с конфигурацией/развертыванием, и это плохо.
Это либо C#, либо Powershell, и, конечно, он должен работать без вмешательства человека. Он работает на выделенной машине для запуска тестов, где я могу, например, установить Fiddler.
Тем не менее, использование Fiddler или любого глобального прокси-сервера в этом отношении не идеально, поскольку один и тот же инструмент запуска тестов используется для проверки различных сайтов, развернутых в нашем облаке. Однако это возможно. Дополнительная сложность заключается в том, что Fiddler должен будет установить свои SSL-сертификаты, чтобы расшифровать HTTPS-трафик. Короче говоря, я не уверен, что это правильный путь. Плюс мне непонятно как автоматизировать шаги:
Итак, я ищу совет о том, как это сделать, не обязательно используя Fiddler или глобальный HTTP-прокси в целом. Любые идеи?
РЕДАКТИРОВАТЬ 1
Этот тест уже находится в списке ручных тестов дыма. Мы автоматизируем эти тесты, и теперь настала очередь этого.
И это того стоит: если автоматизировать становится слишком сложно, то не автоматизировать, а вместо этого сделать его частью списка ручных тестов QA. Не очень хорошо, но есть баланс между сложностью и воспроизводимостью автоматизации и тем, сколько времени она экономит. Если вы не развертываете это очень часто, например, ежедневно, но если вы все еще застряли на Silverlight, я думаю, ваш магазин/клиент не в курсе. (Опять же, это не совет «лучшей практики», а практический совет «сделать это» для проекта, который в любом случае может не соответствовать всем остальным лучшим практикам.)
Уже проверено локально. Но мы хотим автоматизировать это. При необходимости мы можем установить на тест-раннер что угодно.
Вместо этого лучше спросить об этом в sqa.stackexchange.com.





Похоже, вы пытаетесь проверить поведение 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? Я по-прежнему предпочитаю тестировать его через браузер, предполагая, что он не настроен на удаление кэша при выходе.
да. docs.microsoft.com/en-us/previous-versions/office/developer/… "браузер будет кэшировать этот файл .xap так же, как и любой другой файл, в зависимости от установленных политик кэширования".
Это означает, что тест должен проанализировать ответ HTTP и выяснить, что будет делать браузер. Нужно проверить, простой ли это тест. Можете ли вы оформить свой ответ как ответ, чтобы я мог заслужить его? Было бы неплохо, если бы вы могли предоставить некоторые оперативные подробности.
Это отличный вопрос. И хорошая запись. К сожалению, я не уверен, что мы сможем дать окончательный доказуемый ответ, поскольку он может иметь любое количество решений. ?