Both pratiquer and s'entraîner are valid translations of "to practice".
Which one is the most idiomatic will depend on the use case, and sadly I don't think there is a rule for that.
For sports we tend to use mostly s'entraîner, maybe because of it's proximity with the English verb "to train".
For instruments however we use pratiquer more often.
If I had to sketch out a rule, I would say for the more technical and refined it is the more you would use pratiquer, and the more effort and sweat it requires the more you would use s'entraîner. For languages for instance it's definitely pratiquer.
By the way J'ai besoin de pratiquer sounds more idiomatic than J'ai besoin de pratique (both are grammatically correct), while with s'entraîner both are OK: J'ai besoin d'entraînement and J'ai besoin de m'entraîner.