【问题标题】:Selenium / Python - how to mock server responses?Selenium / Python - 如何模拟服务器响应?
【发布时间】:2017-08-10 01:45:01
【问题描述】:

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

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

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

这样当请求 key 中的 URL 时,Selenium 不会发出真正的请求,而是将本地静态 HTML 文件视为来自实时 Web 服务。

PS。我不是在寻找涉及建立测试网络服务器返回静态页面的解决方案。

【问题讨论】:

  • 你可以设置 fiddler 来模拟所有响应

标签: python selenium mocking


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-03-08
    • 1970-01-01
    • 2014-10-31
    • 2021-11-16
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2017-01-09
    相关资源
    最近更新 更多