I concur 100%, it is important to test under realistic conditions.
I used Xcode's link conditioner tool to test a custom protocol under packet loss and latency.
With Wireshark you can see TCP retransmissions. In my case, TCP introduced too much latency since the guarantees it offers are costly under certain circumstances.
So I moved to UDP and reworked the protocol to have fire-and-forget messages.