Staging and Production are very similar environments. Staging is not capped by performance, number of users, or messages. Staging apps can also send and receive push notifications provided development credentials have been uploaded to the dashboard.
However, there is 1 important difference between Staging and Production: user sessions on Staging only last for 5 minutes. After 5 minutes, the user will be de-authenticated and won't be able to send/receive messages. You will be issued an authentication challenge when the user is de-authenticated, and you can then re-authenticate the user.
We recommend that you do all your testing on Staging.
Note: While the Staging and Production app ID's look very similar they are actually different GUIDs. The "staging" and "production" prefixes are only used for developers to quickly identify their appIDs.