A blood flow simulator generates a compression and expansion in a test fluid that emulates the pressure waveform created by a heartbeat in blood flow. The blood flow simulator stores a plurality of pressure waveform files that include actual data recorded from a heartbeat, arterial pressure waveform, or venous pressure waveform. One or more of the pressure waveform files may be selected and the pressure waveform file is used by the blood flow simulator 100 to generate a pressure waveform in pressurized fluid. The pressurized fluid flows through a test site, such as a surrogate body part or an optical window or other component with material having similar properties to human tissue. Various target substances may also be added to the fluid in known concentrations for testing and configuration of medical devices at the test site.