Here is how I believe a "test" should be handled.
Some blasters misuse the test blast. It is not intended to be a tool to get a job. You get the job first or you will be just wasting tons of time and your labor. It's nothing for a customer to say yes to a free test. The question is are they ready to actually have a blast completed ( by you) if the price is right, or after you spend your time are they going to say, "yeah that sounds good, I might wake for next spring. I'll give you a call then.
This is how it should work. You give them a realistic price range. With an un known pool coating you might have to say $1,500 to $2,800 + or -. Now, when they called you they knew it wouldn't be free. They either have some cash to spend right now or they don't. Ask them if that is in their budget. If they say they can only go up to $2,000 that's something to work with. Here is the important part. If they are telling you the truth that there really is a job you don't need to do a test first. Just schedule the job to begin based on the estimated range that they just agreed to. You explain that when you get there the first bag or two is considered a test and that if you know you can stay in the price range you will simply continue and if you can't you will be willing to walk away with no charge to them. Once you are there they will want you to finish. If they don't schedule then they are not really able to spend the money and you would have wasted you time on a test or they may use your estimate after you spent your labor just to talk another guy down in his price.