The descriptions of the CEFR levels are not based on vocabulary size or grammar, but on "can-do statements". You can find a lot of information about the CEFR on the website of the Council of Europe, which developed the framework. For example, for the lowest level, A1, Global scale provides the following description:
Can understand and use familiar everyday expressions and very basic phrases aimed at the satisfaction of needs of a concrete type. Can introduce him/herself and others and can ask and answer questions about personal details such as where he/she lives, people he/she knows and things he/she has. Can interact in a simple way provided the other person talks slowly and clearly and is prepared to help.
For level C2, the highest level, the Global Scale provides the following description:
Can understand with ease virtually everything heard or read. Can summarise information from different spoken and written sources, reconstructing arguments and accounts in a coherent presentation. Can express him/herself spontaneously, very fluently and precisely, differentiating finer shades of meaning even in more complex situations.
The COE website also provides a self-assessment grid, which is available for 32 languages, including Esperanto.
For example, the self-assessemnt grid for Spanish contains can-do statements for the following aspects: comprensión auditiva (listening comprehension), comprensión de lectura (reading comprehension), interacción oral (spoken interaction), expresión oral (spoken production) and expresión escrita (writing).
For expresión escrita, the self-assessment grid says:
Soy capaz de escribir postales cortas y sencillas, por ejemple para enviar felicitaciones. Sé rellenar formularios con datos personales, por ejemplo mi nombre, mi nacionalidad y my dirección en el formulario del registro de un hotel.
So, essentially, if your target language is one of the languages for which the Council of Europe, download the corresponding self-assessment grid from the Council of Europe's website and work through it skill by skill. For each skill, not the level you reach. These self-assessment grids are in the target language they describe. If your target language is not listed, you'll have to fall back on a grid for a language you know or perhaps on sites such as Dialang (mentioned in other answers).