假http服务器用于测试目的

时间:2011-11-01 13:10:52

标签: unit-testing http testing ip-camera

我有一个应用程序连接到IP摄像头并执行HTTP请求以获取图像和M-JPEG。现在没关系,因为我在开发室里有相机。但是几个星期后,凸轮将投入生产(它们是非常昂贵的凸轮),所以我不会让它们用于测试和调试我的应用程序。

我想知道的是“嘲笑”这些凸轮的最佳方法是什么?目前,我的应用程序正在使用2个摄像头,假设它们位于http://192.168.88.1http://192.168.88.2。我想到了这个:

  1. 在我的应用程序中,我可以封装执行该操作的函数 http中的一个类可以调用真正的http请求 在调试时发布和伪造。不好的一面是它会 不能像偶尔的超时和网络那样重现真实的东西 流量。
  2. 也许有一个我可以放在我身上的ip cam模拟器 网络和使用?
  3. 也许创建真实的http请求到我将拥有的真实服务器 编程返回假图片?如果是的话,如何处理?
  4. 就像你看到的那样,我有想法,但我不确定什么是最好的,那里的人在做什么。根据您的答案,考虑到我可能会将其用于单元测试以及相机离开时的正常调试。

    谢谢!

4 个答案:

答案 0 :(得分:2)

广告。 1:单元测试时这是一种很好的方法 - 您的代码不应该依赖于外部服务器/设备/文件系统。但是你已经看到这种环境可能过于理想化了。但是,我的目标是外部化HTTP基础架构代码 - 这将改善您的测试能力和整体架构。

广告。 2:从来没有听说过,抱歉。

广告。 3:我认为这是最可行的解决方案。如果您曾经使用过servlet,只需抓住Tomcat或Jetty并编写一个。然后在localhost:8080/war_name/servlet_name下连接到您的servlet,并从中返回您想要的任何内容。 Here是一个简单的例子。

如果您从未听说过Java servlet和servlet容器 - 仍然值得了解它们。但是启动Sun JDK中内置的HTTP服务器可能会更快,请参阅HttpServer API和example

答案 1 :(得分:1)

如果您想要真实的图像并可以访问网络摄像头,您可以在解决方案中创建一个ASP.Net网络服务,可根据要求从您的网络摄像头中拍摄照片。 当您处于调试模式时,配置您的解决方案以在asp.net developpement服务器上启动Web服务,这样您就不必配置“真正的”Web服务器

以下是从c#获取快照的代码链接 它适用于winforms,但它应该适用于Web服务 http://sites.google.com/site/webcamlibrarydotnet/winfrom-and-csharp-sample-code-and-download

答案 2 :(得分:1)

我建议使用Sinatra创建一个简单的测试工具。 Sinatra非常简单,可以用来存储任何类型的基本Web应用程序。

例如,这是一个使用Sinatra编写的真实程序:

require 'sinatra'

get '/hi' do
  "Hello World!"
end

这将运行一个简单的网络侦听器,如果您点击了Hello World!,它将回复/hi

Sinatra是一个基于Ruby的应用程序,如果你了解Ruby,它是最好的。如果您没有,或者您对其他语言有强烈的偏好,Sinatra's Wikipedia page列出了25种类似的应用程序,这些应用程序是用各种其他语言编写的,因此您可以选择使用它。

答案 3 :(得分:0)

在http服务器中使用python build

# sudo python -m http.server 80
Serving HTTP on 0.0.0.0 port 80 ...
123.123.12.1 - - [12/Feb/2018 11:34:02] "GET / HTTP/1.1" 200 -