A Virtual service is configured in learning mode. It checks if a particular transaction is present in the VSI. If not go to live and take the response and add that new transaction in the VSI file.
While testing it we observed that it works fine when testing each scenario one by one. But when doing a load test it failed with a big margin.
Release: All supported DevTest releases
This is working by design as per our documentation: Execution Mode
This mode is like Image Validation mode, but it automatically "heals" or corrects the virtual service to have the new or updated response from the live system. The next request that is passed into the virtual service automatically sees the new response that was "learned". Not only one system is being checked to learn, but both are, and the live system currently prevails.
So it will always be doing live invocation as well.