@purbo
I opt for the 1st approach.
Reason? Flexibility.
I use parametrization a lot, so in case something change (e.g the base url) i only have to update the variable in the test profile.
Or, I have to extend the test for one new customer, so i simply add a new test data for it, testcases remain same
And … I hate to have lot of objects, I am trying to keep my projects as simple as possible and the code to be reusable