首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用自定义协议测试驱动网络应用程序?

如何使用自定义协议测试驱动网络应用程序?
EN

Stack Overflow用户
提问于 2009-11-05 15:49:30
回答 3查看 653关注 0票数 1

我目前正在为学校项目开发两个Java网络应用程序。一个是TCP协议,另一个是UDP协议。在这两种情况下,我都必须实现简单的自定义协议。

尽管我非常努力,,我还是找不到一种方法来正确地测试这类应用程序,或者更好地用测试优先开发来开发。

如果我有一个客户端,并且我想要真正的测试而又不想把所有的东西都弄坏,我必须用模拟的行为来实现服务器,如果使用这样简单的应用程序,这几乎就是整个项目的。我明白,当事情大的时候,写几行Perl脚本来测试它真的会有帮助。

现在我正在同时开发服务器和客户端,这样我至少可以手工测试,但这似乎不是一种干净的开发方式。唯一的帮助是通过记录器挖掘连接,这样我就可以看到所有经过的数据(使用用于IDEA的TunneliJ插件)。

--使用自定义协议的网络应用程序TDD的最佳方法是什么?我应该把每件事都做好吗?

EN

回答 3

Stack Overflow用户

发布于 2009-11-05 15:54:04

将协议与网络层分开。一旦您可以将自己的数据提供给它,而不需要通过网络堆栈,那么测试协议的逻辑就会变得更容易。即使您没有使用Python,我还是建议您看看扭曲的框架的结构。这是如何测试网络应用程序的一个很好的例子。

票数 3
EN

Stack Overflow用户

发布于 2009-11-05 15:56:59

不久前我们也遇到了同样的问题。我们认为让两个开发人员来完成这个任务更简单:一个是编写服务器,另一个是编写客户机。我们开始在同一个办公室工作,这样我们就可以更容易地编码、测试、修改和重复。

总之,我认为这是我们最好的解决办法。它使我们有能力在不理想的条件下实际测试程序。例如,我们的互联网坏了几次,我们的程序崩溃了,所以我们修复了它。它对我们很好,但如果您是唯一的开发人员,它可能不是您的解决方案。

无论您做什么,在编写自定义协议时,我都会检查Wireshark以监视网络流量,以确保所有数据包都是正确的。

票数 2
EN

Stack Overflow用户

发布于 2009-11-05 15:58:50

在我的应用程序中有这样的代码

代码语言:javascript
复制
    m_socket.receive(packet);

    doSomething(packet);

我模拟接收,因此可以执行doSomething()需要做的所有事情。

这对你来说是怎么回事?这里您是真正的单元,测试您的代码行为是否正确,您还可以模拟套接字发送,并根据您的协议对您认为应该发送的内容表示期望。

当然,我们实际上并不是在测试协议的另一端是否满意。那是集成测试。我总是渴望尽快得到它。当你与“另一端”互动时,你才会发现有趣的东西。

你是幸运的位置,在控制两端,在这个位置我可能会花一些时间仪器来创造合适的,可控的测试线束。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1681413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档