如何测试两个本地套接字之间的数据传输

时间:2018-01-22 07:10:45

标签: sockets c++11 testing automated-tests

我有两个类ReceiverSocket接收数据,SenderSocket发送数据。

 explicit SenderSocket(const std::string &receiver_ip, const int port_num);

在调试模块中,我传递receiver_ip =" 127.0.0.1"。这是一个名为SendPacket的方法及其声明:

 void SendPacket(const std::vector<unsigned char> &data);

SenderSocket类似,ReceiverSocket可以在端口上接收数据。

explicit ReceiverSocket(int port_number);

const std::vector<unsigned char> GetPacket() const;

//The method returns true on success, false otherwise. 
const bool BindSocketToListen() const;

为了测试这两个类,我必须创建两个可执行文件,一个用于SenderSocket另一个ReceiverSocket

有没有办法为数据传输编写测试?

1 个答案:

答案 0 :(得分:1)

对于手动测试,您是否尝试过使用WireShark?本主题说明如何: https://superuser.com/questions/508623/how-can-i-see-127-0-0-1-traffic-on-windows-using-wireshark?answertab=votes#tab-top

另一个可能更适合自动化测试的选择可能是创建第三个可执行文件,它可以充当中间人。您的两个可执行文件都必须与第三个可执行文件通信,它只传递所有数据,但也允许您监听和验证数据。 当然,你也可以使用一个测试框架来运行“中间人”传递服务器&#39;。