But when i tried to put it on TestFlight for the testers to test it, it didn't show a push notification but the data is correctly received.
That sentence is confusing. If you didn't get the push notification, what data is correctly received?
Anyway, if I recall correctly, for TestFlight you are using an AdHoc provisioning profile, which works with the production push environment. Therefore you'll need a production push certificate in order to push to devices that installed the app via TestFlight. In addition, don't forget that development device tokens are different than production device tokens, so make sure you are using the correct tokens.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…