Project Settings

Project Settings Overview

The Project Settings in Functionize allow users to add, edit, and review various settings related to a specific project. These settings include:

  • General
  • Timeouts
  • Advanced
  • Integration
  • Headers
  • Cookies
  • Authentication
  • Alerts

Users can customize these settings to configure the behavior of their projects.

How to Access Project Settings

There are two ways to access Project Settings:

Method 1: From the Test Case Listing Page

  1. Open any Project:

    • Navigate to the desired project within Functionize.
  2. Access Project Settings:

    • Click on the Project Actions hamburger menu (three lines) >> Project Settings.
  3. Project Settings Modal:

    • The Project Settings modal will appear.

Method 2: From the Test Case Detail Page

  1. Open Test Case Details:

    • On the Test Case Listing page, click on the Test Actions button >> Details or click on the test case name.
  2. Access Project Settings:

    • On the Test Case Details page, click on the Project Actions hamburger menu >> Project Settings.
  3. Project Settings Modal:

    • The Project Settings modal will appear.

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.
    1. API Call:

      • Enter the URL for the API call in the API Call field.
    2. API Method:

      • Select the HTTP method for the API call from the dropdown (e.g., GET, POST).
    3. 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.
  • 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.
    1. API Call:

      • Enter the URL for the API call in the API Call field.
    2. API Method:

      • Select the HTTP method for the API call from the dropdown (e.g., GET, POST).
    3. 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.

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.
  • 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 Advance 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.

  1. 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.

  1. Add New Cookie:
    • Click on Add New Cookie.
    • Cookie: Input cookie parameter(s) name.
    • Value: Input cookie value.

Alert 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.