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

标签 python selenium mocking

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

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

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

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

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

最佳答案

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

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

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

关于python - Selenium/Python - 如何模拟服务器响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27517773/

相关文章:

unit-testing - 单元测试中的随机数据?

python - 单元测试 Tornado 应用程序: How to improve the display of error messages

python - 读取 Unicode 文件 - Python3.2

python - 如何对离散轴上的刻度标签进行排序(0 像条形图一样索引)

amazon-web-services - 如何使用 AWS CloudFormation 在内部相互公开 Docker 容器?

python - 如何使用 pytest 模拟 os.environ?

python - 无法通过 webdriver selenium 单击元素

Selenium RC 单击命令卡住

python - 使用 Python 和 Selenium 向 Facebook 中的 friend 发送消息

junit - 如何实例化用于 junit 测试的模拟 Kafka 主题?