【问题标题】:python webtest port configuration?python webtest端口配置?
【发布时间】:2010-05-05 14:46:14
【问题描述】:

我正在尝试使用 webtest 编写一些测试来测试我的 python GAE 应用程序。我遇到的问题是应用程序正在侦听端口 8080,但我无法配置 webtest 以访问该端口。

例如,我想使用 app.get('/getreport') 来点击http://localhost:8080/getreport。显然,它只是点击 http://localhost/getreport。

有没有办法设置 webtest 以访问特定端口?

【问题讨论】:

    标签: python google-app-engine webtest


    【解决方案1】:

    使用 paste.proxy.TransparentProxy,您可以测试响应 http 请求的任何内容...

    from webtest import TestApp
    from paste.proxy import TransparentProxy
    testapp = TestApp(TransparentProxy())
    res = testapp.get("http://google.com")
    assert res.status=="200 OK","failure....."
    

    【讨论】:

    • 这个答案确实有助于我们在我们的 Python Web 应用程序中利用 webtest。
    【解决方案2】:

    config,我引用,

    port
    

    需要吗?不,默认值为“80”

    定义要使用的端口号 执行请求,例如“8080”。

    编辑:用户澄清说他们的意思是this webtest(pythonpaste 的),不是广泛使用的 Canoo 应用程序。我不会猜到,因为 pythonpaste 的 webtest 是一个非常不同的鱼,我引用...:

    有了它,您可以测试您的网络 无需启动 HTTP 的应用程序 服务器,并且无需插入 Web 框架的快捷方式 您需要的应​​用程序 测试。 WebTest 运行的测试是 完全等同于一个 WSGI HTTP 服务器会调用一个应用程序

    没有启动 HTTP 服务器,没有“端口”的概念——事情在进程内运行,在 WSGI 级别,没有实际的 TCP/IP 和 HTTP 在起作用。因此,“应用程序”不是监听端口 8080(或任何其他端口),而是直接调用其 WSGI 入口点,“就像”HTTP 服务器正在调用它们一样。 p>

    如果你想测试一个实际运行的 HTTP 服务器,那么你需要 Canoo 的 webtest(或其他等效框架),不是 pythonpaste 的 -- 后者会通过避免任何套接字层和 HTTP 层开销来加快测试速度,但您不能以这种方式测试单独的、现有的、正在运行的服务器(例如 GAE 的 SDK)。

    【讨论】:

    • 对不起,应该更清楚。这是 webtest 的 python 版本,名称与 Canoo 的 webtest 相同。 pythonpaste.org/webtest
    • 实际上,通过将一个透明代理交给 TestApp 是可行的,它是一个 wsgi 应用程序,它只是将 http 请求转发到您告诉它的任何地方并返回响应。
    【解决方案3】:

    我认为您误解了 WebTest 的功能。像app.get('/getreport') 这样的东西不应该在任何端口上向localhost 发出任何类型的请求。 WebTest 的美妙之处在于它不需要您的应用实际运行在任何服务器上。

    这是来自 WebTest 文档的 "What This Does" section 的引述:

    使用它,您可以在不启动 HTTP 服务器的情况下测试您的 Web 应用程序,并且无需插入 Web 框架来为您的应用程序的需要测试的部分添加快捷方式。 WebTest 运行的测试完全等同于 WSGI HTTP 服务器调用应用程序的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-05
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2011-02-25
      • 1970-01-01
      相关资源
      最近更新 更多