Selenium / Python - 如何模拟服务器响应?

时间:2014-12-17 03:18:04

标签: python selenium mocking

我已经编写了一个工具,可以自动与我无法控制的慢速Web服务进行交互。为了测试某些功能,我希望避免Selenium对实际服务进行重复请求。为此,我想使用单元测试和模拟。

有没有办法模拟真实服务器的响应?理想情况下,我希望能够定义以下的映射:

mock_responses = {
  'http://server/path1': 'path1.html',
  'http://server/pathN': 'pathN.html',
}

因此,当请求密钥中的URL时,Selenium会将本地静态HTML文件视为来自实时Web服务,而不是发出实际请求。

PS。我没有找到涉及站起来测试网络服务器返回静态页面的解决方案。

1 个答案:

答案 0 :(得分:1)

由于您计划保留静态htmls(响应)的本地副本,因此可以使用Selenium(webdriver)get()方法在需要时加载所需的响应html。

例如,您已将所有响应HTML存储在" C:/ responces /" (您可以将响应htmls存储为自动化框架的一部分),然后您可以加载所需的响应,如下所示:

driver.get("file://C:/responces/path1.html");
driver.get("file://C:/responces/pathN.html");