python webtest端口配置?
我正在尝试使用 webtest 编写一些测试来测试我的 python GAE 应用程序。我遇到的问题是应用程序正在侦听端口 8080,但我无法配置 webtest 来访问该端口。
例如,我想使用 app.get('/getreport') 来点击 http://localhost:8080/getreport< /a>.显然,它会点击 http://localhost/getreport。
有没有办法设置 webtest 来访问特定端口?
I am attempting to write some tests using webtest to test out my python GAE application. The problem I am running into is that the application is listening on port 8080 but I cannot configure webtest to hit that port.
For example, I want to use app.get('/getreport') to hit http://localhost:8080/getreport. Obviously, it hits just thits http:// localhost/getreport.
Is there a way to set up webtest to hit a particular port?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为您误解了 WebTest 的作用。像
app.get('/getreport')
这样的东西不应该在任何端口上向localhost
发出任何类型的请求。 WebTest 的优点在于它不需要您的应用程序实际在任何服务器上运行。以下是 WebTest 文档的“这是做什么”部分的引用:
I think you're misunderstanding what WebTest does. Something like
app.get('/getreport')
shouldn't make any kind of request tolocalhost
on any port. The beauty of WebTest is that it doesn't require your app to actually be running on any server.Here's a quote from the "What This Does" section of the WebTest docs:
使用paste.proxy.TransparentProxy,你可以测试任何响应http请求的东西......
With paste.proxy.TransparentProxy you can test anything that responds to an http request...
在 config 中,我引用,
编辑:用户澄清他们的意思是这个 webtest(pythonpaste的),不是广泛使用的 Canoo 应用程序。我不会猜到,因为 pythonpaste 的 webtest 是一个非常不同的鱼,我引用......:
没有启动 HTTP 服务器,没有“端口”的概念——事物在 WSGI 级别上在进程中运行,没有实际的 TCP/IP 和 HTTP 发挥作用。因此,“应用程序”不监听端口 8080(或任何其他端口),而是直接调用其 WSGI 入口点,“就像”HTTP 服务器调用它们一样。
如果您想测试实际运行的 HTTP 服务器,那么您需要 Canoo 的 webtest(或其他等效框架),而不是 pythonpaste - 后者将加快测试速度通过避免任何套接字层和 HTTP 层开销,但您无法以这种方式测试单独的、现有的、正在运行的服务器(例如 GAE 的 SDK)。
In config, and I quote,
Edit: the user clarified that they mean this webtest (pythonpaste's), not the widely used Canoo application. I wouldn't have guessed, because pythonpaste's webtest is a very different kettle of fish, and I quote...:
No HTTP server being started, there is no concept of "port" -- things run in-process, at WSGI level, without actual TCP/IP and HTTP in play. So, the "application" is not listening on port 8080 (or any other port), but rather its WSGI entry points are called directly, "just as if" an HTTP server was calling them.
If you want to test an actual running HTTP server, then you need Canoo's webtest (or other equivalent frameworks), not pythonpaste's -- the latter will make for faster testing by avoiding any socket-layer and HTTP-layer overhead, but you can't test a separate, existing, running server (such as GAE's SDK's) in this way.