Creating a New Project in Functionize
The Project page is the landing page of Functionize upon login. Users can organize their test cases within different projects in a way that suits them, such as by Application, Functional Area, etc. This guide will walk you through the steps to create a new project in Functionize.
Steps to Create a New Project
Step 1: Initiate Project Creation
- Navigate to the Project Page:
- Upon logging into Functionize, you will land on the Project page.
- Click on the New Project Button:
- Click on the + New Project button to start creating a new project.
Step 2: Enter Project Information
- Project Name:
- Enter a name for the new project in the Project Name field.
- Top Level Domain:
- Enter the starting URL for the project in the Top Level Domain field.
- Environment:
- Select the project environment from the drop-down menu. Options include:
- Live
- Staging
- Development
- The environment selection is used to separate project variables, allowing you to set the domain for the environment that you're testing. Additional environments may be added once the project has been created.
- Select the project environment from the drop-down menu. Options include:
- HTTP Authentication (Optional):
- For websites protected by HTTP Authentication, check the setting Access to my website is protected by HTTP Authentication.
- The window will expand to display fields for entering the required credentials (username and password).
Step 3: Confirm Project Creation
- Confirm:
- Click the Confirm button to finalize the creation of the new project.
Editing Project Settings
Once a project is created in Functionize, users can edit the project settings to customize and manage various aspects of the project. These settings include:
- General information about the project
- Project site environment(s)
- Settings related to performance alerting for a particular environment within a project
- Browsers available for execution
- Alerts
How to Access Project Settings
There are two ways to edit an existing project:
Method 1: From the Projects Page
- Navigate to the Projects Page:
- Go to the Projects page within Functionize.
- Edit Project:
- Hover over the project you want to edit.
- Click on the Edit icon button.
Method 2: From the Test Case Listing Page
- Navigate to the Projects Page:
- Go to the Projects page within Functionize.
- View Project:
- Hover over the project you want to edit.
- Click on the View Project button.
- Edit Project:
- On the Test Case Listing page, click on the Project Actions hamburger menu (three lines) >> Edit Project.
- Edit Project Window:
- The Edit Project window will pop up, including the tabs: General, Project Environments, Browsers, Alerts, and Upload Screenshot.
Editing Project Settings
Project Settings Overview
- General: Update basic project details such as environment management, proxy settings, and region.
- Timeouts: Configure performance-related timeouts and thresholds for test cases.
- Advanced: Access additional project settings like default browsers, network logs, memory saver mode, and more.
- Integration: Integrate with other websites or services.
- Headers: Set custom headers for API calls.
- Cookies: Inject cookies into test cases.
- Alerts: Set up project-level alerts for status and performance metrics.
- Authentication: Manage HTTP authentication details for the project.
Project Settings Tabs
General Tab
The General tab allows users to update basic project details. The fields are as follows:
- Environment: The project environment in which the test is created.
- Certificate Errors: An error that occurs when a website's security certificate is not trusted by the browser.
- HTTP Auth: Authentication details for the environment.
- Environment Management: Used to override the existing URL for all test cases under the project.
- Syntax: https://www.existing-site.com::https://www.replace-with-site.com
- Host: Used for Basic Authentication credentials of test sites.
- Proxy Settings: Configuration options that allow users to set up and use a proxy server for accessing the application under test behind a customer's firewall. This includes specifying the proxy server details, IP address, and port.
- Region: Select the Google Datacenter region in which all test cases are executed and after selecting the Region Functionize will display a message to a user “Functionize will try to run the test in the selected data center. If it’s unavailable, another data center in the same region will be used.”
Webhooks Tab
The Webhooks tab is used to set the state of a test case, either before or after a test case executes. Currently, only GET and POST requests are supported for both Pre- and Post-test hooks. The fields are as follows:
- Pre-Test Hook: The Pre Test Hook allows you to define an API call that will be executed before the test starts. This can be useful for preparing the test environment or initializing certain conditions required for the test.
- API Call:
- Enter the URL for the API call in the API Call field.
- API Method:
- Select the HTTP method for the API call from the dropdown (e.g., GET, POST).
- Parameters:
- Click the Add Pre Hook Parameter button to add any parameters required for the API call.
- Enter the Parameter Name and Value in the respective fields.
- API Call:
- Post-Test Hook: The Post Test Hook allows you to define an API call that will be executed after the test completes. This can be useful for cleaning up the test environment or logging results to an external system.
- API Call:
- Enter the URL for the API call in the API Call field.
- API Method:
- Select the HTTP method for the API call from the dropdown (e.g., GET, POST).
- Parameters:
- Click the Add Post Hook Parameter button to add any parameters required for the API call.
- Enter the Parameter Name and Value in the respective fields.
- API Call:
Timeouts Tab
The Timeouts tab shows performance level timeouts and thresholds for all the test cases under this project. If any of these set thresholds are exceeded during test case execution, the test case status will display a warning.
- Environment:
- Select the environment in which the test cases will be executed. For example, "Live".
- DOM Loaded Threshold:
- Specifies the maximum time (in seconds) allowed for the DOM (Document Object Model) to load.
- Example: 10 Seconds
- First Paint Threshold:
- Defines the maximum time (in seconds) allowed for the first pixel to render on the screen.
- Example: 10 Seconds
- Page Load Alert Threshold:
- Sets the maximum time (in seconds) for the entire page to load before an alert is triggered.
- Example: 30 Seconds
- Page Performance Threshold:
- Specifies the maximum time (in seconds) for the page performance metrics to complete.
- Example: 10 Seconds
- Page Load Timeout:
- The maximum amount of time (in seconds) the ML (Machine Learning) timing model will wait for a whole page to load before attempting object selection.
- Example: 30 Seconds
- Missing Element Timeout:
- Defines the maximum amount of time (in seconds) the ML timing model will wait for an individual element to load before attempting object selection.
- Example: 15 Seconds
Note: These timeouts will not cause a test case to fail but will instead alert that one of these thresholds has been met or exceeded. Proper configuration of these settings helps in identifying performance issues and ensures that tests are running efficiently.
Advanced Tab
The Advanced tab showcases an extensive list of optional project settings. This includes:
- Language: You can select the Language on which you want to execute the test case at Runtime
- Default browser for initial desktop execution: Users can select any browser as default for initial desktop execution.
- Default browser for initial mobile execution: Users can select any browser as default for initial mobile execution.
- Visual Completion: Used to verify the web element visually.
- Fails on Invisible: When selected, the test will fail if the element is not visible on the web page.
- Note: Useful for ensuring tests are passed or failed correctly when executed again in the future.
- Window Width/Height: Users can set the window width and height for the project by inputting the value. This includes parameters when using responsive sites to set the window width and height.
- Note: Any Pageinit or Urlchange actions after the first step of the test will reset the window width and height back to the originally recorded values.
- Capture Network Logs: The test will capture the network logs.
- Note: Functionize recommends not leaving this enabled; only enable when needing to troubleshoot an issue, as this setting can collect large amounts of data depending on the site.
- Capture Console Logs: The test will capture the console logs.
- Note: Functionize recommends not leaving this enabled; only enable when needing to troubleshoot an issue, as this setting can collect large amounts of data depending on the site.
- Disable iOS CORS: Disabling Cross-Origin Resource Sharing (CORS) restrictions on iOS devices.
- TimeZone: Select the Timezone for test case execution.
- Update From Run Time: Allows users to update their test scripts while the test is running.
- Disable Web Security: Turns off certain security mechanisms implemented by the browser.
- Note: Allows users to bypass the same-origin policy and access resources from any domain.
- Maximum Concurrent (Parallel) Tests Allowed: Allows maximum tests running in parallel at a time for a particular project.
- Memory Saver Mode On: When enabled, the browser/application reduces its memory footprint and helps improve system performance and responsiveness.
- Block the 3rd Party Cookies: When enabled, all third-party cookies will get blocked in all browsing modes, ensuring a consistent browsing experience.
- Orientation: Users can select either Portrait or Landscape page orientation for the test cases.
- Element Match Requirement Default: Users can set a default value to show how much percentage an element will match.
- Full Page Visual Check Default: Users can set a default value to show how much percentage a page will match.
- Timing Model: The maximum time the execution engine waits can be specified as the Missing Element Timeout on the Timeout tab. This allows users to control how long the Functionize AI Timing Model waits for an element to appear. The more Aggressive the setting used, the faster the AI timing model executes, and the more Conservative the setting used, the slower the AI timing model executes.
- Self Heal: A feature that uses machine learning to detect changes in an application or website and automatically update tests to reflect those changes. This helps to avoid false positives and ensure that tests are up to date.
- Environment: Users can select an environment for a particular project.
- Default Schedule Time (PST): Users can select the default schedule time.
- DNS Override: Simulate different network conditions or redirect domain names to local servers.
Alerts Section on Advanced Tab
Alerts can be set up at the Project level so users can get alerts based on these parameters:
- Status: A measure of the success or failure of an action or test.
- Pageload Threshold: Allows users to set a maximum time limit for a page to load.
- Performance Downloaded: Measures the performance of a web page and is tracked by Functionize every time a test runs.
- Performance Interactive: Allows users to interact with a test while it is running on the Functionize Test Cloud.
- Note: Allows users to edit the test execution, so if an intermediate step fails, users can stop the failed test or rearrange the order of the tests in real time.
- Performance Firstpaint: Allows users to quickly identify and diagnose performance issues in their web applications.
- Note: Tracks page load speed and provides action duration reports to show the performance of each test action.
Integration Tab
The Integration tab is used to integrate any other website:
- Website: Select the integration target website from the drop-down.
Headers Tab
The Headers tab allows simulated data parameters, such as IP addresses, to create and deliver a specific experience at execution.
- Add New Header:
- Click on Add New Header.
- Header: Input parameter name.
- Value: Input parameter value.
Cookies Tab
The Cookies tab is used to inject cookies into a test case. For example, logging in a user without having to go through the login steps.
- Add New Cookie:
- Click on Add New Cookie.
- Cookie: Input cookie parameter(s) name.
- Value: Input cookie value.
Alerts Tab
The Alerts tab is used to send notifications about projects to the selected Users.
- Select users for project notifications: Click the checkbox next to the User(s) name
Auth Tab
The Auth tab is used if the site under test employs HTTP authentication. The tester can enter the following authentication details:
- MTLS Client Key: Enter client key.
- MTLS Client Certificate (PEM format): Enter client certificate.
- Note: Please see additional details on mTLS certificates here.
- Additional HTTP Authentication: Enter the URL without protocol.
- Domain: Enter the domain.
- Username: Enter the username.
- Password: Enter the password.
By following this guide, users can efficiently manage and customize project settings in Functionize, ensuring optimal configuration and performance for their testing projects.
Creating Folders
Functionize offers a categorization system to create a more granular organization of test cases. Folders are essentially a one-to-many categorization system, meaning many test cases can belong to a single folder.
Folders provide a hierarchical structure within a project, aiding in the organization of test cases based on various criteria, such as features, modules, or any other logical grouping. Similar to tags, folders can be created and utilized for grouping in Orchestrations as well. They can also be employed within each project to filter data, facilitating the retrieval of search results within projects/test cases.
To Create a Folder for a Test Case
- Open any project to create the Folder
- Click on the New Folder button
- Enter a Folder name and click on the Checkmark button
- Test cases can now be categorized by using a Folder
- To move test(s) into a Folder, click the checkbox next to the test(s) to be moved into the folder, then select the three-dot icon to the left of any of the selected test(s) and drag-drop the test(s) to the desired Folder in the left sidebar panel
- The test(s) will now appear under the Folder it was placedNote: the test(s) will also still appear when the All Folder is selected as well.
Configuring Environments
Environment Configuration in Functionize allows users to define and manage the environments in which their tests will be executed. These environments can represent different stages of the development lifecycle, such as development, staging, production, or custom setups. Proper configuration ensures that tests run in the correct context, providing accurate and meaningful results.
Accessing Environment Configuration
To access and manage environment configurations, follow these steps:
- Open the Project:
- Navigate to the desired project within Functionize.
- Click on the ellipsis (three dots) button next to the "New Architect Test" button to open the dropdown menu.
- Select Environment Configuration from the menu.
Environment Configuration Interface
The Environment Configuration interface presents a list of existing environment configurations with options to edit, delete, and default environments and for creating and new Environment Configuration we have Manage Configuration.
Adding a New Environment Configuration
- Open Environment Configuration:
- Navigate to your project and click on the ellipsis button next to "New Architect Test".
- Select Environment Configuration from the dropdown menu.
- Manage Configuration:
- Click on the Manage Configuration button.
- Add Configuration:
- Click on the Add button.
- Add Configuration Details:
- In the "Add Configuration" dialog, enter the Name of Environment, Variable Name, and Value.
- Name of Environment: Enter a name for your Environment (e.g., "username").
- Variable Name: Enter a name for your configuration parameter
- Value: Enter the corresponding value for this parameter.
- Mask Value (Optional):
- If you want to mask the value (hide it for security reasons), check the Mask checkbox
- In the "Add Configuration" dialog, enter the Name of Environment, Variable Name, and Value.
- Confirm Environment Configuration:
- Once all parameters are added, click Confirm to save the new configuration.
- The new Environment configuration will now appear in the list of Environment configurations.
Multiple Environment Configurations
You can add multiple Environment configurations within the same project.
Editing an Existing Environment Configuration
- Locate the Environment configuration you wish to edit in the list.
- Click on the Edit button next to the configuration.
- Make the necessary changes to the configuration parameters.
- You can add multiple configurations by clicking on Add.
- Add the Parameter value.
- Click Confirm to apply the changes.
Setting a Default Environment Configuration
- Locate the environment configuration in the list.
- Click on the Mark it Default button.
- The selected configuration will now be marked as the default environment.
Copying an Environment Configuration
- Locate the environment configuration you wish to Copy From the list.
- Click on the Copy button.
- Enter the new name of the Environment on the Copy Configuration Window.
- Click on the Copy Button.
- New environment has been created with the same configuration.
Deleting an Environment Configuration
- Locate the environment configuration you wish to delete in the list.
- Click on the Delete button.
How to Use Environment Configuration in a Test Case
- Open a Test Case:
- Open the test case where you need to use the configuration value.
- Go to the Step:
- Go to the step on which you need to use the configuration value.
- Settings:
- Go to Settings and input {{fze.env.name}}.
Example: Assume you have a project where an environment is created with different values. When you execute the test case that uses the value of this configuration, it will use the value set at the time of configuration. You can use multiple values of a configuration in the same test case at different steps.
Execution of a Test Case with Configuration
- Open the test case.
- Click on the Play button.
- Select Custom Execution.
- Select the type of execution.
- Select Environment Configuration from the dropdown.
- Click on Run.
Applying Environment Configurations to Orchestrations
- Create an Orchestration:
- Go to the Orchestrations tab.
- Select the Create New Orchestration button.
- Fill in the required fields to create an orchestration.
- Configure Environment:
- Click on Environment Configuration.
- Select the Environment Configurations from the dropdown.
- Click the Confirm button to create the orchestration.
- Execute Orchestration:
- After executing the orchestration, it will run with the configurations provided in the environment variable.
By following these steps, you can efficiently manage and utilize environment configurations in Functionize, ensuring your tests run in the appropriate context, and providing reliable and accurate results.
Create & Enable a New Project Environment
At the Project Level, a user can enable and/or create project environments to execute tests in different contexts. Please follow these steps to enable and/or create project environments:
- Select the Project:
- Navigate to the desired project within Functionize.
- Access Project Actions:
- Click on the Project Actions hamburger menu (three lines).
- Edit Project:
- Select Edit Project from the drop-down menu.
- Project Environments Tab:
- From the Edit Project window, select the Project Environments tab.
- Activate Environments:
- Activate the Live, Staging, and/or Development environments by adding the corresponding URL for each environment.
- Add a New Environment:
- Click on the Add New Environment button.
- Enter the label and corresponding URL for the new environment.
- Confirm:
- Click Confirm to save the changes.
- The activated environment(s) will now show in the upper left-hand corner of the Functionize dashboard.
Moving a Site Environment
To move a test case (or multiple test cases) to a different Project Environment, follow these steps:
- Select Test Case(s):
- Check the checkbox next to the test case(s) you want to move.
- Bulk Actions:
- Click on Bulk Actions >> Move.
- Select Project:
- By default, the current project will be displayed in the Select Project field. You can choose to move the test case to another project if needed.
- Select Folder:
- Choose the folder to which the test will be moved, or keep All as the default selection, which will not place the test into any folder.
- Select Project Environment:
- Select the Project Environment from the menu to which you want to move the test case.
- Note: Only the active environments will be available in the drop-down menu. If the test case has a URL connected to one environment and that test is moved to another active environment, the URL will update automatically.
- Submit:
- Click Submit to finalize the move.
Copying a Site Environment
To copy a test case (or multiple test cases) to a different Project Environment, follow these steps:
- Select Test Case(s):
- Check the checkbox next to the test case(s) you want to copy.
- Bulk Actions:
- Click on Bulk Actions >> Copy.
- Select Project:
- By default, the current project will be displayed in the Select Project field. You can choose to move the test case to another project if needed.
- Select Folder:
- Choose the folder to which the test will be moved, or keep Select Folder as the default selection, which will not place the test into any folder.
- Select Environment:
- Choose from the menu to which you want to copy the test case.
- Note: Only the active environments will be available in the drop-down menu. If the test case has a URL connected to one environment and that test is copied to another active environment, the URL will update automatically.
- Keep Test Settings:
- Check the Keep Test Settings checkbox to keep all test settings in the current test case after the copy has been completed.
- Replace URL:
- The Replace URL feature instructs the test to use the To URL instead of the From URL when copying the test case. This is particularly useful as it eliminates the need for the user to revisit the test and manually edit the URL.
- From URL: The original URL used in the test case when it was recorded.
- To URL: The new URL to use when the test executes in the new environment.
- Submit:
- Click Submit to finalize the copy.
By following these steps, users can efficiently manage project environments in Functionize, ensuring that tests can be executed in different contexts with appropriate URLs and settings.