Diskspd is an open-source hard drive benchmarking tool from Microsoft. Or as they describe it, a program which "combines robust and granular IO workload definition with flexible runtime and output options, creating an ideal tool for synthetic storage subsystem testing and validation."
It's a command-line program which provides a vast amount of control over the testing methods, duration, threads, queues, CPU and IO affinity, reporting, and more.
This doesn't have to be as complex as it sounds, because you can start using Diskspd with very few switches, and then add more as you learn how it works.
A command like diskspd c: runs a read test on drive C:, for example; diskspd c: e: benchmarks both drives; diskspd -d30 c: e: runs the tests for a duration of 30 seconds (the default is 10); diskspd -c100M -d30 c: e: runs the test with a 100MB file. (Make sure you run these as an administrator, or from an elevated command line.)
-S is expanded to control write-through independent of OS/software cache. Among other things, this allows buffered write-through to be specified (-Sbw).
XML: adds a new <WriteThrough> element to specify write-through
XML: <DisableAllCache> is no longer emitted (still parsed, though), in favor or <WriteThrough> and <DisableOSCache>
Text output: OS/software cache and write-through state are now documented separately (adjacent lines)
Latency histogram now reports to 9-nines (one part in one billion) in both text and XML output
Error message added for failure to open write-content source file (-Z<size>,<file>)
-ag is now default (round robin group-aware affinity)
new -ag# for group-aware thread->core affinity assignment
-Sr : remote cache mode
-Sh : equivalent to -h, all cache modes collapsed under -S
<ProcessorTopology> (under <System>) element in XML results shows Processor Group topology of the system the test executed on
<RunTime> (under <System>) element shows run start time in GMT
-ft : specifies FILE_ATTRIBUTE_TEMPORARY_FILE on open (note: work in progress, effect of this attribute is not fully lit up yet)
Diskspd is a hugely configurable drive benchmarking application. It's targeted very much at IT professionals, and you'll need to be a Windows and storage expert to understand everything the program can do, but experienced home users may also find it useful.
If you want something much simpler, though, check out CrystalDiskMark. It's essentially a GUI for Diskspd, so you get the same accuracy of results, but it's all controlled with a few point and clicks.