Integrations
Reflect.run
Layerfile Reference
Common Problems
Tuning Performance
Advanced Workflows
API Docs
Customize Notifications
Integrations
Reflect.run
Reflect.run is a no-code automated web testing tool that anyone can use.
Example Layerfile
Layerfile
#This is an example webapp.io configuration for React!
FROM vm/ubuntu:18.04
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
curl -fSsL https://deb.nodesource.com/setup_14.x | bash && \
apt-get install nodejs yarn jq curl
COPY . .
RUN yarn install
RUN BACKGROUND yarn start
EXPOSE WEBSITE http://localhost:3000
SECRET ENV REFLECT_API_KEY
RUN bash the-shell-script-above.sh
Setting up Reflect.run with webapp.io
Use SECRET ENV to add your Reflect API key, and then commit a script like the following:
#!/bin/bash
REQUEST_BODY="
{
\"parallelism\": 1,
\"overrides\": {
\"hostnames\": [{
\"original\": \"app-development.useorigin.com\",
\"replacement\": \"$EXPOSE_WEBSITE_HOST\"
}]
}
}"
EXECUTION_ID=$(curl --location --silent --show-error --request POST 'https://api.reflect.run/v1/tags/suite/executions' \
--header "X-API-KEY: $REFLECT_API_KEY" \
--header 'Content-Type: application/json' \
--data-raw "$REQUEST_BODY" | jq -r '.executionId'
)
echo "Running the tests... Execution id: $EXECUTION_ID"
STILL_RUNNING_TESTS=true
while [ "$STILL_RUNNING_TESTS" = "true" ]; do
EXECUTION_STATUS=$( \
curl --location --silent --show-error --request GET "https://api.reflect.run/v1/executions/$EXECUTION_ID" \
--header "X-API-KEY: $REFLECT_API_KEY" \
--header 'Content-Type: application/json' \
)
TESTS_FAILED=$(echo $EXECUTION_STATUS | jq -c '.tests[] | select(.status | contains("failed"))')
STILL_RUNNING_TESTS=$(echo $EXECUTION_STATUS | jq -c '.tests[] | select(.status | contains("running") or contains("queued")) | length > 0') if ! [[ -z "$TESTS_FAILED" ]]; then
printf "\e[1;31mSome tests has failed.\nReflect Execution ID: $EXECUTION_ID\nFailed tests: $TESTS_FAILED\n\n" >&2
exit 1
fi
sleep 1
done
More information on how to integrate Reflect.run with your webapp.io pipeline can be found here.