Testable Enterprise - Kubernetes

Installing Testable into a Kubernetes cluster is our recommended route for a production deployment. This will work both in your data center or in the cloud via services like the AWS Kubernetes Service, the Azure Kubernetes Service, or the Google Cloud Kubernetes Service.

Prerequisites

System Requirements

  • Testable Services & Storage: The core deployments will require 8 vCPU, 16GB RAM, and 50GB of storage in your cluster.
  • Test Runner: Each additional test runner will require ~100MB RAM and 5GB storage when not running any tests. Resource utilization per virtual user depends on the scenario type (e.g. OpenFin vs Webdriver.io vs JMeter vs Node.js). The test runner agent will attempt to utilize all resources accessible to it for generating virtual users.

Required Images and Helm Charts

If your company has its own container registry you will need to pull in the following container images available on Docker Hub:

Testable

Packaged Helm Charts (if not hosted separately)

Installation

Follow below steps to install Testable Helm Chart on Kubernetes:

  1. Configure your installation using a values.yaml file. An example file with documentation for each property can be found at sample-values.yaml. 2a. No SSL
    • Create a new namespace, testable, and deploy the Testable platform there: helm install --create-namespace --namespace --timeout 900 -f my-values.yaml testable https://testable-onprem.s3.amazonaws.com/testable-latest.tgz 2a. With SSL
    • SSL is disabled by default. If you want to ENABLE it, then you first need to download the package and extract it. Follow below steps to enable ssl:
    • Add all your ssl related files in the ssl directory in the extracted folder.
    • Update the ssl related configs in your my-values.yaml file.
    • And then run below command: helm install --create-namespace --namespace --timeout 900 -f my-values.yaml testable PATH_TO_YOUR_EXTRACTED_HELM_CHART_DIRECTORY
  2. After helm chart is installed, to find the website URL check the Testable web service using the command: kubectl --namespace=testable describe svc testable-web

    testable-web

  3. The value of LoadBalancer Ingress in the response is the URL to your application. Feel free to configure this in your DNS for easier access via a more memorable URL.
  4. If you have gateway service and proxy service enabled, then to access the respective services run the command in step 4. and replace testable-web with testable-gateway / testable-proxy

Updates

To update your installation you can use the following command:

helm upgrade -f helm-chart-values.yaml testable https://testable-onprem.s3.amazonaws.com/testable-latest.tgz

Browser Versions

This section is only relevant if you plan to run browser based tests with a tool like Selenium AND you would like to either:

  1. Use old versions of browsers
  2. Use the latest version of browsers without having to update the test runner container image

Our test runner image comes with the latest version of each browser pre-installed on it as of the time the container is built. Testable will validate new browser releases and then make them available to our customers. The new version, as well as older versions, are available in two ways:

  1. Auto-Update: Testable will download the required version automatically from an AWS S3 bucket into your deployment. This requires the deployed environment to have the ability to make HTTP requests out to S3. The S3 bucket has browser versions going back many years available.
  2. Via Browsers Cache Container: We also publish a version of our micro-services container that includes the last 10 versions of each browser. This can be deployed in your environment if you want to avoid any external network requests. Every time a new browser version is available for our customers we will publish a new build of this container image for you to deploy.

Launching More Test Runners

Each test runner region has a deployment named testable-test-runner-[region-name]. You can simply scale this up with kubectl:

kubectl scale --replicas=3 deployment testable-test-runner-[region-name]

To persist this change for future deployments make sure to update the regions property in your values.yaml file.

To launch a new test runner region, add it to your values.yaml file in the regions dictionary and then run helm upgrade -f my-values.yaml testable https://testable-onprem.s3.amazonaws.com/testable-latest.tgz.