As per The Load Reports guide:
Throughput is measured in requests per second/minute/hour. The time unit is chosen so that the displayed rate is at least 1.0. When the throughput is saved to a CSV file, it is expressed in requests/second, i.e. 30.0 requests/minute is saved as 0.5.
As per JMeter Glossary
Throughput is calculated as requests/unit of time. The time is calculated from the start of the first sample to the end of the last sample. This includes any intervals between samples, as it is supposed to represent the load on the server.
The formula is: Throughput = (number of requests) / (total time).
As per Calculator class from JMeter's source
/**
* Throughput in bytes / second
*
* @return throughput in bytes/second
*/
public double getBytesPerSecond() {
if (elapsedTime > 0) {
return bytes / ((double) elapsedTime / 1000); // 1000 = millisecs/sec
}
return 0.0;
}
/**
* Throughput in kilobytes / second
*
* @return Throughput in kilobytes / second
*/
public double getKBPerSecond() {
return getBytesPerSecond() / 1024; // 1024=bytes per kb
}