First port of call would be to see if you've got any soft codes stored that can help you diagnose it. Plug in vcds or obdeleven (you can get them for around £50 including the scanner and a pro license, it's already paid for itself many times over for me) and see what it's saying, otherwise it's a case of guesswork/process of elimination which can take a lot of time and effort.
If the oil cap is hard to open then it sounds like you've got a solid vacuum, although that doesn't mean there isn't a small leak somewhere away from the rocker cover. Check your fuel trim numbers and see if you're running lean, which you can do with a normal OBDII scanner (<fiver off amazon etc). What you can also do is spray a bit of aerosol (like silicon spray, carb cleaner etc) around any vacuum pipes/air lines whilst the engine is running - if you get a sudden change in idle then you know its a leak for sure and take it from there.