我们仍然有Silverlight (悲伤的故事),我需要写一个烟雾测试,检查IE是否在部署后访问该站点时重新下载XAP文件。重新下载XAP意味着存在某种配置/部署问题,这是不好的。
当然,代码要么是C#,要么是Powershell,并且必须在没有人工干预的情况下运行。例如,它运行在一个专用的测试运行器上,在那里我可以安装Fiddler。
然而,对此使用Fiddler或任何全局代理并不理想,因为相同的测试运行程序用于检查部署在云中的不同站点。不过,这是有可能的。更复杂的是,为了解密HTTPS通信量,Fiddler必须安装它的SSL证书。简言之,我不知道这是否正确。此外,我还不清楚如何自动化这些步骤:
因此,我正在寻找关于如何做它的建议,而不一定使用Fiddler或全局HTTP代理。有什么想法吗?
编辑1
此测试已在手动烟雾测试列表中。我们正在自动化这些测试,现在轮到这个测试了。
发布于 2019-02-27 05:44:40
看起来你在试着测试IE的行为,这是不切实际的。
例如,IE可能被配置为总是在退出时删除其缓存,因此在后续请求中重新下载XAP是预期的行为。
实际上,我会尝试测试宿主HTML页面和/或HTTP响应。
例如,您可以使用WebRequest
以编程方式请求网页,然后检查响应头中是否存在内容过期或缓存控制,这将告诉浏览器是否应该缓存该页。
您还可能希望检查网页上具有<param />
值的<object />
元素的source
子元素。
如果URL与以前相同,浏览器将缓存XAP文件。因此,您可以检查该值是否随后续请求而改变。
...the浏览器将缓存此.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
https://stackoverflow.com/questions/54888350
复制相似问题