While blockingSubscribe is useful in testing, it cannot always serve your purpose. You might need to test the first, last or all the values of the producer. For that purpose you would need the data in its pure imperative nature.
The set of yet uncovered operators in RxKotlin is at your helm in that scenario. The blocking operators serve as an immediate accessible bridge between the reactive world and the imperative world. They block the current thread and make it wait for the results to be emitted, but returns them in a non-reactive way.
The only similarity between blockingSubscribe and blocking operators are that both block the declaring thread even if the reactive operations are performed in a different thread.
Other ...