【发布时间】:2021-05-03 09:21:46
【问题描述】:
我正在对包含需要测试的 URL 的页面进行自动化测试。
我创建了一个方法,我认为它可以为我提供 http 状态代码:
public string ContentUrlHttpRequest()
{
HttpWebRequest protocolWebRequest = (HttpWebRequest)WebRequest.Create(ContentUrl());
protocolWebRequest.Method = "GET";
HttpWebResponse response = (HttpWebResponse)protocolWebRequest.GetResponse();
return response.Headers.ToString();
}
ContentUrl() 是我创建的另一种方法,用于在页面上查找带有要测试的 url 的元素并获取它的值。
我也试过return response.StatusCode.ToString();,但我收到的回复是“OK”。
我知道来自该 url 的响应需要 = 200。我有这个断言,它将来自 ContentUrlHttpRequest() 的响应与预期结果 (200) 进行比较:
Assert.AreEqual("200", ContentUrlHttpRequest(), "The Url is not live. Http response = " + ContentUrlHttpRequest());
我从ContentUrlHttpRequest() 得到的响应不是状态代码,而是:“日期:星期一,2021 年 5 月 3 日 09:07:13 GMT”。
我明白为什么会这样,它正在获取正在搜索的页面的标题。但是我怎么能得到状态码呢?硒可以吗?我的方法有问题吗?而不是 Headers 我需要使用不同的东西?
很遗憾,我无法提供我正在测试的网址或带有该网址的平台,因为它们是机密的。希望我的问题很清楚,你们可以给我一些指导。
【问题讨论】:
-
也许你可以使用
(int)response.StatusCode,如此处所述:stackoverflow.com/questions/1330856/… -
也许 response.getStatusCode ?
标签: c# selenium httprequest httpresponse http-response-codes