On TestFlight you can only allow users to test apps for 30 days. So you will have to upload a new build every 30 days?
Yes, this indeed the case. Any builds within the Prerelease section within iTunes Connect are only valid for 30 days. So, after a build expires and you want your users to be able to keep on testing you'll have to upload a new build.
This is also stated on the Testflight website:
The beta period lasts for 30 days, starting on the day it is released to testers. In TestFlight, the number of days remaining appears below the Open button for each app.
Note that in normal circumstances, 30 days is more than enough for any beta testing phase....