【问题标题】:Why python requests module is not used for web automation testing instead of flaky UI tests?为什么 python requests 模块不用于 Web 自动化测试而不是易碎的 UI 测试?
【发布时间】:2017-07-02 13:59:36
【问题描述】:
在这些 UI 测试的大部分时间里,我一直在使用 selenium webdriver 自动化 Web 应用程序测试用例
是易碎的,但是当我使用 python 请求模块时,我能够自动化可靠的测试用例
GET、POST、DELETE http 方法(借助正则表达式来捕获一些令牌和 id。)
我的问题是,为什么似乎没有人使用像 python requests 模块这样的 http 库来自动化 Web 应用程序测试用例而不是易碎的 UI 测试用例?
【问题讨论】:
标签:
python
selenium
automated-tests
ui-automation
【解决方案1】:
您正在将苹果与橙子进行比较。您不能使用 requests 来测试 Selenium 可以测试的相同内容。
Selenium 可让您测试呈现 HTML 和 Javascript 的结果。 requests 只是一个 HTTP 库,它可以发出 HTTP 请求,仅此而已。工具不同,测试不同的东西。
如果您需要做的只是测试您的服务器是否对 HTTP 请求(例如 REST API)产生正确的响应,请使用 requests。如果您需要测试 HTML 和 Javascript 在浏览器中的执行方式,请使用 Selenium。
【解决方案2】:
您正在谈论直接在服务器上使用 GET 和 POST 方法。是的,它们很有帮助。这是我的预测为什么人们不会使用它。因为这样做很累。
如果您的应用程序已公开 API,则可以轻松使用任何 API 客户端并联系服务器。在您的情况下,我假设没有公开的 API,并且您正在拦截到服务器的 HTTP 流量以处理请求/响应,然后在您的 python 脚本中使用它。
优势,它的快速并且可以完成任务。缺点是没有 UI 交互,你不会得到屏幕截图等(就像你使用 selenium 时所做的那样)+ 你需要花费大量时间来拦截 HTTP 流量。
这只是您手头的要求和时间的问题。