# Appvance IQ Production System Requirements

# Appvance IQ Production System Requirements

![](https://docs.appvance.net/Content/Resources/Images/GettingStarted/ProdSystemReq.png)

- **Testers** - Browsers accessing Appvance IQ via a browser.
- **Appvance IQ Controller** - The Controller is the primary point of communication and information exchange for Appvance IQ. Runs on an individual machine.
- **Database** - The relational database is required to store test results. Both the Controller and the Test Nodes write to the database. Results are generated from data the Controller reads from the database.
- **Appvance Test Node(s)** - Runs on individual machines. Test Nodes are also known as Load Generators. The Controller provides tests to each Test Node to run.
- **Repository** - Stores all test components, including scenarios, scripts and data files. The Repository can use local file storage or point to a source control repository.
- **Application Under Test (AUT)** - The application being tested by AIQ.

These are the recommended configurations and hardware sizing for AIQ production level systems.

## Controller

The AIQ Controller is the primary point of communication and information exchange for Appvance IQ.

### Minimum Recommended System Configuration

#### Linux

- Ubuntu Server 20.24 / 22.04
- 8+ CPU Cores minimum
- 64 GB RAM
- 200 GB SSD  
    Note: This is regardless of cloud provider (Azure, Google Cloud, etc).
- Java GraalVM 11 (64-bit)

#### Cloud Equivalents

<table id="bkmrk-sizeawsazuregoogle-c" style="box-sizing: border-box; border-collapse: collapse; border-style: solid; border-color: rgb(0, 0, 0); border-width: 1px; border-spacing: 0px; width: 971.406px; margin-left: 0px; margin-right: auto;"><colgroup><col></col><col></col><col></col><col></col></colgroup><tbody><tr style="box-sizing: border-box;"><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Size

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right-width: 1px; border-right-style: solid; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">AWS

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Azure

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Google Cloud

</th></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Medium Deployment

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top; border-right-width: 1px; border-right-style: solid;">c5.2xlarge

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Standard\_D8\_v3

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">n1-standard-8

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Large Deployment

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: left; vertical-align: top; border-right-width: 1px; border-right-style: solid;">c5.4xlarge

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Standard\_D16\_v3 / Standard\_D32\_v3

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: left; vertical-align: top;">n1-standard-16 / n1-standard-32

</td></tr></tbody></table>

- SSD io HD (not gp)

EBS should be set to IO1 with 3000-5000 IOPS

Installing the Controller on a Windows machine is no longer a supported configuration.

## Test Node

Appvance Test Node(s) run on individual machines. Test Nodes are also known as Load Generators. The Controller provides tests for each Test Node to run.

Sizing of the Test Node is dependent on the number of concurrent tests you want to run. The more concurrent tests, the more CPU and memory required. Refer to the Test Node Capacity Load Generator Table below.

### Minimum Recommended System Configuration

#### Windows

- Windows Server 2022 or newer
- 8+ CPU Cores
- 16 GB RAM (bare minimum - 64GB+ memory recommended for production-level testing)
- 60 GB SSD
- Java GraalVM 11 (64-bit)

#### Cloud Equivalents

<table id="bkmrk-sizeawsazuregoogle-c-1" style="box-sizing: border-box; border-collapse: collapse; border-style: solid; border-color: rgb(0, 0, 0); border-width: 1px; border-spacing: 0px; width: 971.406px; margin-left: 0px; margin-right: auto;"><colgroup><col></col><col></col><col></col><col></col></colgroup><tbody><tr style="box-sizing: border-box;"><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Size

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right-width: 1px; border-right-style: solid; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">AWS

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Azure

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Google Cloud

</th></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Medium Deployment

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top; border-right-width: 1px; border-right-style: solid;">c5.2xlarge

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Standard\_D8\_v3

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">n1-standard-16

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Large Deployment

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: left; vertical-align: top; border-right-width: 1px; border-right-style: solid;">c5.4xlarge

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">Standard\_D16\_v3 (AISG 5 or more browsers)

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: left; vertical-align: top;">n1-standard-32 (AISG 5 or more browsers)

</td></tr></tbody></table>

EBS should be set to IO1 - 5000 IOPS

#### AI Script Generation (AISG) Considerations

Performance of the AISG process is highly dependent on the resources available to your test node as well as configuration choices that you make. Here are some general guidelines.

This information also applies to Cloud AISG Executions using Kubernete (K8) which will be supported in future releases of AIQ.

What follows are some general highlights. See the [Resource Considerations](https://docs.appvance.net/Content/AIQ/AI3/AISG_Resources.htm) section of the AISG documentation for more information.

<table id="bkmrk-ramaws16-gbup-to-5-h" style="box-sizing: border-box; border-collapse: collapse; border-style: solid; border-color: rgb(0, 0, 0); border-width: 1px; border-spacing: 0px; width: 971.406px; margin-left: 0px; margin-right: auto;"><colgroup><col></col><col></col></colgroup><tbody><tr style="box-sizing: border-box;"><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">RAM

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">AWS

</th></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">16 GB

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">Up to 5 headless browsers

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">32 GB

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">Up to 10 headless browsers

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">64 GB

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: left; vertical-align: top;">Up to 20 headless browsers

</td></tr></tbody></table>

- RAM and disk space may need to be adjusted depending on depending on the web page complexity and how many hours the AISG execution needs to run. For example, web pages with endless scrolls or tables with check boxes may take a long time to run.
- The AISG execution should not be run for more than 48 hours. If it does, the recommendation is to adjust your setup. For example, use more browsers, or exclude some pages from scan. As an additional way to improve the execution time, it is recommended that you make use of SmartTags. A general guideline is that this should be considered for web pages with 1000 elements on the page. See [SmartTag Workbench](https://docs.appvance.net/Content/AIQ/TestDesigner/SmartTagWorkbench/Smart_Tag_Workbench.htm) for more information.
- Repository performance also impacts AISG executions. If you are running AISG, you are required to use only AWS S3 Bucket or Google Storage to save files. GIT storage is not supported for AISG executions due to performance limitations.

### Test Node Capacity Load Generator Table

Estimated capacity per server or VM. This can vary greatly with application complexity.

Refer to the table below to determine Test Node capacity and configuration needs:

<table id="bkmrk-cpu-coresminimum-mem" style="box-sizing: border-box; border-collapse: collapse; border-style: solid; border-color: rgb(0, 0, 0); border-width: 1px; border-spacing: 0px; margin-left: 0px; margin-right: auto;"><colgroup><col style="width: 94px;"></col><col style="width: 140px;"></col><col style="width: 214px;"></col><col style="width: 219px;"></col><col style="width: 189px;"></col><col style="width: 204px;"></col></colgroup><tbody><tr style="box-sizing: border-box;"><th class="align-center" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">CPU Cores

</th><th class="align-center" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right-width: 1px; border-right-style: solid; color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Minimum Memory

</th><th class="align-center" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Minimum

UX-Level Browsers

</th><th class="align-center" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right-width: 1px; border-right-style: solid; color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Max likely

UX-Level Browsers

</th><th class="align-center" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">HAR Protocol Level VU

</th><th class="align-center" style="background-color: rgb(220, 220, 220); box-sizing: border-box; color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">JMeter Protocol Level tests

</th></tr><tr style="box-sizing: border-box;"><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">8

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">16 GB

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">8

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">16

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">250

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top;">40

</td></tr><tr style="box-sizing: border-box;"><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">12

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">24 GB

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">12

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">24

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">500

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top;">60

</td></tr><tr style="box-sizing: border-box;"><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">16

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">32 GB

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">16

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">32

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">1000

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top;">80

</td></tr><tr style="box-sizing: border-box;"><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">32

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">64 GB

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">32

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">32

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">2500

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top;">160

</td></tr><tr style="box-sizing: border-box;"><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">64

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">128 GB

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">32

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">64

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">5000

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: center; vertical-align: top;">320

</td></tr><tr style="box-sizing: border-box;"><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">128

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">256 GB

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">32

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: center; vertical-align: top; border-right-width: 1px; border-right-style: solid;">64

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: center; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">10000

</td><td class="align-center" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: center; vertical-align: top;">640

</td></tr></tbody></table>

Using the latest Chrome browser, poor linear scalability is experienced after 30 browsers regardless of the size of the test node.

### Example System Requirement Calculation

If a test specification requires UX tests to run 1000 virtual users, and each test node has an 8 Core CPU with 12 GB RAM, then 20 test nodes are required.

Calculated as:

- Test Nodes Required = Total Virtual Users / Virtual Users per Test Node
- (from the above example) 20 Test Nodes = 1000 Virtual Users / 50 Virtual Users per Test Node

## Security Port Requirements

Following are the list of ports that need to be open in the server that will host Appvance IQ.

These port configurations apply to both the Controller and the Test Nodes.

<table id="bkmrk-portdescription3306p" style="box-sizing: border-box; border-collapse: collapse; border-style: solid; border-color: rgb(0, 0, 0); border-width: 1px; border-spacing: 0px; margin-left: 0px; margin-right: auto;"><colgroup><col></col><col></col></colgroup><tbody><tr style="box-sizing: border-box;"><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Port

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Description

</th></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">3306

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">Port access between AIQ Controller and MySQL service/server (if applicable)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">9095 -9100

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">From end-user computer outbound to AIQ Controller (required only for recording HTTP traffic from end-user computer)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">8080

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">HTTP port. Outbound access from the Controller and between all Test Nodes (Either 8080 or 8443 is required, not both)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">8443

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">HTTPS port. Outbound access from the Controller and between all Test Nodes (Either 8080 or 8443 is required, not both)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">9090

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">Test Designer port, required for internal use within Controller and Test Nodes (not external)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">9091

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">Test Designer port, required for internal use within Controller and Test Nodes (not external)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">8090

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top;">Security Testing required only within the controller and test nodes (internal to each system only)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">8079

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: left; vertical-align: top;">Java processes shutdown port required only within the controller and test nodes (internal to each system only)

</td></tr></tbody></table>

In addition to these ports, the Database must be enabled to allow incoming connections from Controller (recommended on same box for trials) and Test Node machines.

## Database

A relational database is required to store test results. Both the Controller and the Test Nodes write to the database. Results are generated from data the Controller reads from the database.

### Recommended Configuration

- MySQL Server (needs to be run as RDS or a standalone server)
- MySQL database is required to store test results
- The AIQ Controller and Test Nodes read and write to the database
- The Database must be enabled to allow incoming connections from Controller and TestNode machines
- Minimum 200 GB HD auto-increment
- Should old data no longer be required, data can be dropped and/or backed up and dropped

#### AWS Examples

- RDS db.t3.medium / Auto-increment 100 GB HD
- RDS t2.xlarge / Auto-increment 200 GB HD

## Repository

The Repository Stores all test components, including scenarios, scripts and data files. The Repository can use local file storage or point to a source control repository.

Supported repository types are:

- Amazon S3
- Git (most Git variations are supported: GitHub, GitLab, Azures Git)
- Azure blob
- Google Storage \*
- SFTP \*\*
- FTP \*\*

Certain repository types are not optimal for certain types of tests. For example, Appvance does not recommend using Git to store your images if your are using the Visual Accessor functionality. This is due to Git not being designed to handle large amounts of binary files efficiently.

\* Support for Google Storage with AIQ 5.3.0  
\*\* Starting with AIQ 5.3.0, SFTP and FTP will no longer be supported repository types.

## Browsers

Browsers accessing Appvance IQ via a browser. AIQ supports the latest versions of the following browsers:

- Apple Safari
- Google Chrome
- Microsoft Edge
- Mozilla Firefox

AIQ no longer supports the use of Internet Explorer. Contact <support@appvance.ai> for questions regarding alternate browser versions.

## End User Systems

### Minimum Recommended System Configuration

- 6+ CPU Cores (at least Intel® Xeon E5 Class processor) \*\*
- 8+ GB Memory\*\*
- Java GraalVM 11 (included with Appvance IQ end-user setup)
- End user must have administrator permission to install AIQ's Test Designer (proxy) as well as the ability to modify system environment variables during the setup process.

### Network Configuration

The end user systems will access AIQ only from a browser. The following ports must not be in use, and must permit internet access

<table id="bkmrk-portdescriptionrequi" style="box-sizing: border-box; border-collapse: collapse; border-style: solid; border-color: rgb(0, 0, 0); border-width: 1px; border-spacing: 0px; margin-left: 0px; margin-right: auto;"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr style="box-sizing: border-box;"><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Port

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; border-right-width: 1px; border-right-style: solid; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Description

</th><th class="align-left" style="background-color: rgb(220, 220, 220); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-bottom: 2px solid rgb(0, 0, 0);">Requirement

</th></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">8080 | 8443

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; border-bottom: 1px solid rgb(0, 0, 0); text-align: left; vertical-align: top; border-right-width: 1px; border-right-style: solid;">HTTP navigation to server

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; border-bottom: 1px solid rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px;">Must permit internet access (not blocked by firewall for outbound traffic)

</td></tr><tr style="box-sizing: border-box;"><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px; border-right: 1px solid rgb(0, 0, 0);">9090 | 9091

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; padding: 2px; text-align: left; vertical-align: top; border-right-width: 1px; border-right-style: solid;">Test Designer client (internally open only)

</td><td class="align-left" style="background-color: rgb(255, 255, 255); box-sizing: border-box; color: rgb(0, 0, 0); text-align: left; vertical-align: top; padding: 2px;">Must not be in use.

</td></tr></tbody></table>

### Designer Proxy

End user machines must have permissions to install a proxy in the browser. You must have the Designer Proxy installed before you can begin using AIQ. You will be prompted by AIQ to install the proxy.

#### Test Designer folder (AIQ 4.10.x and earlier)

- Windows default path: `<span class="editor-theme-code">C:\TestDesigner</span>`
- Mac default path: `<span class="editor-theme-code">$HOME/TestDesigner</span>`

#### Test Designer folder (AIQ 5.0.0+)

- Windows default path: `<span class="editor-theme-code">C:\WebDesigner</span>`
- Mac default path: `<span class="editor-theme-code">$HOME/WebDesigner</span>`

## Anti-Virus Recommendations

The Appvance IQ installation package is sizable and the vast majority of the contents will never change between installations or upgrades. Because of this, you can exclude the AIQinstallation folder the from the scheduled daily / weekly / monthly scans. Doing so will reduce the time and resources devoted to these scans. Also if these folders are not excluded, you may see some unexpected behavior in AIQ.

For example, this may impact scenario executions, specially on DS and DS3 engines that write many temporary files for requests and responses.

Following are some of the top Anti-virus programs from which the files and folders of Appvance IQ should be excluded:

- AVG Anti-virus
- Avast Anti-virus
- Kaspersky Anti-virus
- McAfee Virus Scan
- Norton Anti-virus
- Symantec Endpoint protection
- Windows Defender

## Questions or need support?

Contact us at <support@appvance.ai> or by submitting a support request at [https://appvance.ai/support,](https://appvance.ai/support)

See [Contacts and Resources](https://docs.appvance.net/Content/AIQ/Support_License/AddionalResourcesContact.htm) for additional options to contact Appance Support.

---

Last updated: May 14, 2025

If you have any feedback on this topic, please contact us at <documentation@appvance.ai>