# Creating the first goal
When arriving at an empty project or when you want to test specific parts of an application you can create a new goal. If you did not follow any specific order for reading this guide, and you are confused about what a goal is, you can check the Core concepts first and then come back here to create your first goal.
# How to create a goal
You can create a goal in Virtuoso with only a few steps:
- Click on the
New goalbutton on the Project dashboard;
- Give the goal a name (e.g.,
- Add a URL in the
Starting pointfield (e.g.,
This is the minimum information that Virtuoso needs to create a goal. There are more settings that you can tweak, but we will cover those later.
- Click on the
Create & add first journeybutton at the bottom:
After creating the goal, you are now on the Goal view, and you can start building your journey at this point. Whenever you create a goal, Virtuoso will include a first test step which is just a navigation step to your testing web application.
You can execute this journey as it is right now by clicking on the execute journey icon
# Goal settings
You can customize various aspects of the goal and how Virtuoso should interact with the application in the goal settings panel, beyond the name and the starting URL mentioned before.
For existing goals, you can open the goal settings panel again by clicking on the context menu icon
Your tests run through a browser on Virtuoso's side. By default, it uses Virtuoso's own Chromium-based browser with a default resolution of 1280x800. However, you can set a custom resolution if desired.
desktop variants will all by default use the Virtuoso browser for execution at the given resolution. These are just resolution templates to get you started, but you can execute them on custom real devices as well.
There are other aspects related to the browser that you might be interested in, such as enforcing same-origin policy (CORS) in your executions (disabled by default).
Here you can configure which environment should be used by default when Virtuoso runs your goal. Environments are used to inject environment variables into your test steps during execution, you can read more at Environments.
Also, you can set the parallelism limit for your executions, by default there is no limit set and these limits affect how Virtuoso would execute journeys. For example, with no limit set Virtuoso will attempt to execute the maximum number of journeys for your organization limits, but if you set the limit to 1 and execute multiple journeys each will be executed once the previous journey finishes (at most 1 will be active at any given time for that specific execution).
Finally, you set a Virtuoso bridge. This is used to provide a proxied connection to your target application for those cases where it's running in a limited access environment (e.g., localhost, private networks). You can read more at Virtuoso bridge.
This group of settings defines how Virtuoso should interact against your testing application while executing your tests, note these are advanced settings, and you will not need to change them in most cases.
Virtuoso can perform exploratory testing against an application using machine learning to discover all the possible application states while doing autonomous interactions with the application. This process is known as
Exploration on Virtuoso, you can read more at Exploration and Exploring a goal further.
Note that the settings under this section are usually modified only by advanced users, and for specific use cases (e.g., keep track of every page even if they are duplicated when performing an exploration).
Here you can select a different exploratory testing directive as well as enable or disable the intelligent graph consolidation flag which prevents from having duplicate states as the result of an exploration.
If you are a project manager, you can control whether publishing journeys in the goal is restricted to only project admins, or all members of the project with write access (default).
If you are not sure about some of the settings above, you may find it useful to know that most of these settings can be altered for a single execution by using the
Execute advanced option of the goal context menu in the project dashboard, or from the goal view.