what is the difference between model.evaluate and model.predict in tensorflow ? on which of the above two method I will have to run the test set?

The model.evaluate evaluates metrics of the model. The model.predict find the prediction of your model. So if you need to compute metrics on the test set you need to use model.evaluate.