Yes, it is possible to use emulated versions of devices for testing. This solution is quite cheap and convenient, but sometimes it is not enough. In case you need your testing to be high-quality, a real device is surely a better choice.
You should try a webapp called LambdaTest which has all the feature which you are asking.
It offers you more than 1400 Browsers combinations and a huge set of Virtual machines on which you can perform as many test as you want.