I just got a scratch on my glasses and went for an eye test and got new lenses a couple of weeks ago (at the time I got referred due to dry eyes, so attended that appointment this morning).
I go to Specsavers for my eye tests - usually they are £20, but you can often get vouchers or offers for a free eye test. Eye tests are done every 2 years, unless you have concerns about your eye health or prescription, in which case you can have tests done more often.
I find Specsavers have good offers on frames and lenses too, like a free second pair, or free coatings/reactions lenses/money off thinned lenses:
http://www.specsavers.co.uk/offersI didn't change my frames this time because I like the frames I have, and I didn't need a new prescription, so I just paid for new lenses (due to the scratch) in my current frames... the lenses, plus all the coatings and the 'extra thinning' came to about £130 (£39 for the lenses, £90 for the thinning). If I had got new frames, it would have been £125 for the frames + lenses, plus £50 for the thinning (£40 off if you got complete frames).
However, you can get frames with lenses and coatings included for pretty good prices - generic frames + lenses start at £25, or you can go up to £125 for designer frames + lenses... then you just pay a bit more if you want any extras that aren't included (i.e. super thinned lenses etc.).
I don't wear contacts myself (due to my dry eyes), but they sometimes have offers on for contacts too, like free glasses when you sign up for contacts.