I want a way to get a consistent average FPS reading in BF3 for benchmarking purposes. How do guys like tomshardware.com get a reliable FPS reading? In the Quake series you could always replay a demo and get the average FPS - anything similar in BF3?
I will assume that you have FRAPS(if not you can get the free version from FRAPS.com;the main difference between the full and the demo AFAIK is that in the demo you can record videos of upto 30 seconds at a time)/
Note: Make sure you have the MinMaxAvg dialog ticked under benchmark settings.
Battlefield has a built in FPS reading output.
You can turn it on by first pressing the tilda key ' ~ ' (top left of most English keyboards - to the left of the '1') and then type "render.drawfps true"
You can then turn it off by changing the true to false
Personally, I don't think is it entirely possible to perform a legitimate benchmark within Battlefield 3. There are way too many variables to account for as each run or play through of single player and/or multiplayer, as a benchmark should include the same graphical rendering every time.
Your best option to gather a solution close to a benchmark within Battlefield 3 would be to manually play a single player mission (less variables in comparison to multiplayer) with FRAPS running, and, if possible, at the same time run GPUz or similar software to gather information on the vitals of your VGA(s). There is an option within GPUz to log the information on the selected VGA.
It is always good practice to watch or be aware of your system temperatures (as seen in the GPUz example below).
Be sure to these steps multiple times to gather an average FPS.
Keep in mind, this is not a valid benchmark, but rather a sense of an average FPS you obtain in Battlefield 3.
For legit Benchmarking, this article and links provided within it may interest you.