繁体   English   中英

客户端/服务器应用程序的自动化测试

[英]Automated test of client/server application

正如标题所说,您将如何测试用C / C ++编写的,通过网络进行通讯的客户端/服务器应用程序? 我对如何执行此操作有些困惑。 我曾经考虑过进行一些模拟,但是我从未尝试过模拟,所以我不知道这是否是最好的方法。 我应该怎么做? 我编写了许多单元测试,但从未尝试过测试通过网络交互的内容。

我使用单元测试驱动程序(客户端)中的命令模式将测试命令发送到服务器。 这样做的好处是将测试编码在一个地方。

测试请求超时的示例:

客户端先向服务器发送睡眠命令,然后向服务器发送请求。 请求超时,测试用例通过。

通常,您将需要使用模拟来验证双方是否对另一方的消息做出了必要的反应(例如,当客户端从服务器接收到响应时,它会正确处理该响应)。

要测试网络功能本身,您可以测试在同一台计算机上运行的这两种功能,也可以在虚拟机内部运行一个(或两者)的功能。 如果您有两个网络适配器,则甚至可以将每个适配器专用于一个虚拟机,这样,网络流量实际上就从一个虚拟机流出,到交换机/路由器,然后又从另一个流回(特别是在您要捕获和验证数据包时很有用) )。

我有一些通过回送地址进行单元测试的客户端/服务器代码。 当我必须测试错误条件时,我会使用一些模拟。 因此,我会尽可能地使用真实代码进行测试,而当我需要触发非常特定的条件时会进行模拟测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM