It has nothing to do with WiFi even; when running a test you need a server that emits the test data - this could be a standard HTTP server on the internet (in case of public speed tests) or a binary like iperf that synthesizes the test data on the fly.
You need to ensure the server is able to send the test data quickly enough so that the network link becomes the bottleneck.
In his case he was running the test server on the router, and the router’s CPU was unable to churn out the data quickly enough to actually saturate the network link (most network equipment does the network switching/routing/NAT in hardware and so doesn’t actually come equipped with a CPU that is capable of line-rate TCP because it’s not actually needed in normal operation).