Self Hosted AWS Test Runner Setup

Test Runner instances generate load for your test. These instances can self-hosted within your AWS account. Testable will start the EC2 instances in your account as part of running your test and terminate it upon test completion.

In order to make this work you need to grant Testable access to your AWS account. The steps to do that are detailed in this guide.

Step 1: Create an AWS account

If you do not already have an AWS account, go to aws.amazon.com to create one.

Step 2: Define an IAM policy

Before we can setup a user and access key we need to define an IAM policy with the permissions required for Testable.

Login to the AWS Console for the IAM service and click on the Policies section and then Create Policy.

Use the following JSON for the policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Testable",
            "Action": [
                "ec2:*",
                "iam:GetRole",
                "iam:ListRoles"
            ],
            "Effect": "Allow",
            "Resource": [
                "*"
            ]
        }
    ]
}

Then simply give it a name (e.g. Testable) and press Create Policy.

Create IAM Policy

Step 3: Create an IAM user

Next we create a new IAM user within the AWS Console for the IAM service. Click Users on the left and then Add User.

Give it a name (e.g. testableio) and select Programmatic Access.

Add IAM User

On the Permissions step choose Attach existing policies directly and then select the policy we created in step 2.

Add IAM User Permissions

Note the access key id and secret access key once the user is created. Both of these values are required on the Testable side of this setup.

Step 4: Create a Test Runner

Login to your Testable account and go to Account => Test Runners and press the Create button in the upper right.

Use the access key id and secret access key from step 3 to setup the test runner.

Create Test Runner

And that's it! You will now see this test runner in the list when you create a new test configuration.

Add