generated from tweag/project
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
### To be filled by the PR creator: * A brief description of the changes made - * Do we have clean latest run report (Docker or Browserstack) attached with this PR? * [ ] Yes * [ ] No (Please explain why) * Does the PR contain changes to any core file? * [ ] Yes (Needs approval from at least 1 people) * [ ] No * Is it * [ ] New Testcase * [ ] Fix ### To be filled by the PR reviewer: * [ ] Verify the attached run report passed in GitHub Actions (Docker or Browserstack run) * General * [ ] Use the best strategy to locate the elements * [ ] Comments wherever the code is not readable by itself * [ ] Use of the right data structure for the use case * [ ] Reuse logic/functionality as much as possible * [ ] Cleanup of any test data that is generated by the tests * [ ] No static waits
- Loading branch information
Showing
2 changed files
with
282 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,275 @@ | ||
name: LT - Web UI Tests | ||
|
||
env: | ||
TAGS: web_tests | ||
BASE_URL: https://opensource-demo.orangehrmlive.com | ||
LT_USER: ${{secrets.LT_USERNAME}} | ||
LT_ACCESS_KEY: ${{secrets.LT_ACCESS_KEY}} | ||
HRM_USER_NAME: ${{ secrets.HRM_USER_NAME }} | ||
HRM_PASSWORD: ${{ secrets.HRM_PASSWORD }} | ||
USING_ENV: "LAMDATEST" | ||
|
||
on: | ||
schedule: | ||
- cron: '30 22 * * *' | ||
workflow_dispatch: | ||
inputs: | ||
tags: | ||
description: Gherkin Tags | ||
required: true | ||
default: web_tests | ||
|
||
baseurl: | ||
description: Base URL | ||
required: true | ||
type: choice | ||
default: https://opensource-demo.orangehrmlive.com | ||
options: | ||
- https://opensource-demo.orangehrmlive.com | ||
- other | ||
|
||
inputurl: | ||
description: Other than default Base URL (e.g portal url) | ||
required: true | ||
default: https://opensource-demo.orangehrmlive.com | ||
|
||
os: | ||
description: 'Operating system (window or mac)' | ||
required: true | ||
type: choice | ||
default: mac | ||
options: | ||
- mac | ||
- window | ||
|
||
browser: | ||
description: Browser Name | ||
required: true | ||
type: choice | ||
default: chrome | ||
options: | ||
- chrome | ||
- firefox | ||
- edge | ||
- safari | ||
|
||
jobs: | ||
web-scheduled-regression: | ||
if: github.event_name == 'schedule' | ||
strategy: | ||
max-parallel: 1 | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- name: Win Chrome | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./env_configs/win_chrome.json | ||
html_report: win-chrome | ||
testrail_configuration_name: 'Chrome, Windows' | ||
testrail_run_name: 'Desktop Chrome' | ||
|
||
- name: Win Firefox | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: 'web_tests and firefox' | ||
config_file: ./env_configs/win_firefox.json | ||
html_report: win-firefox | ||
testrail_configuration_name: 'Firefox, Windows' | ||
testrail_run_name: 'Desktop Firefox' | ||
|
||
- name: Win Edge | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./env_configs/win_edge.json | ||
html_report: win-edge | ||
testrail_configuration_name: 'Edge, Windows' | ||
testrail_run_name: 'Desktop Edge' | ||
|
||
- name: Mac Firefox | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: 'web_tests and firefox' | ||
config_file: ./env_configs/mac_firefox.json | ||
html_report: mac-firefox | ||
testrail_configuration_name: 'Firefox, MacOS' | ||
testrail_run_name: 'MAC Desktop Firefox' | ||
|
||
- name: Mac Chrome | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./env_configs/mac_chrome.json | ||
html_report: mac-chrome | ||
testrail_configuration_name: 'Chrome, MacOS' | ||
testrail_run_name: 'MAC Desktop Chrome' | ||
|
||
- name: Mac Edge | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./env_configs/mac_edge.json | ||
html_report: mac-edge | ||
testrail_configuration_name: 'Edge, MacOS' | ||
testrail_run_name: 'MAC Desktop Edge' | ||
|
||
- name: Mac Safari | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: web_tests | ||
config_file: ./env_configs/mac_safari.json | ||
html_report: mac-safari | ||
testrail_configuration_name: 'Safari, MacOS' | ||
testrail_run_name: 'MAC Desktop Safari' | ||
|
||
- name: Mac Chrome Visual | ||
baseurl: https://opensource-demo.orangehrmlive.com | ||
tags: visual | ||
config_file: ./env_configs/mac_chrome.json | ||
html_report: mac-chrome-visual | ||
testrail_configuration_name: 'Chrome, MacOS' | ||
testrail_run_name: 'MAC Desktop Chrome Visual' | ||
|
||
name: ${{ matrix.name }} - Regression | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Setup Python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.9" | ||
|
||
- name: Start Tunnel | ||
uses: LambdaTest/LambdaTest-tunnel-action@v2 | ||
id: tunnel | ||
with: | ||
user: ${{ secrets.LT_USERNAME }} | ||
access-key: ${{ secrets.LT_ACCESS_KEY }} | ||
tunnelName: "pytestTunnel" | ||
|
||
- name: Check out code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup dependencies | ||
run: | | ||
sh setup_install.sh | ||
- name: Run All Tests | ||
run: | | ||
env | ||
source $HOME/.bp-venv/bin/activate | ||
sh ci_lt_run_web.sh ${{secrets.LT_USERNAME}} ${{secrets.LT_ACCESS_KEY}} "${{ matrix.config_file }}" "${{ matrix.tags }}" "${{ matrix.baseurl }}" "${{secrets.SLACK_WEBHOOK_URL}}" "${{secrets.TEAMS_WEBHOOK_URL}}" | ||
- name: Upload HTML run report in the Artifacts Folder | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.html_report }} | ||
path: | | ||
./*.html | ||
./output/ | ||
./assets/ | ||
./test_data/visualtesting/test/*.png | ||
if: ${{ always() }} | ||
|
||
web-manual-run: | ||
if: github.event_name != 'schedule' | ||
name: Manual - ${{ inputs.os }} ${{ inputs.browser }} - ${{ inputs.tags }} - ${{ inputs.baseurl }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Validate Input Parameter | ||
id: validate_input | ||
run: | | ||
if [[ -z "${{ github.event.inputs.tags }}" ]]; then | ||
echo "Invalid input: 'tags' is required but not provided." | ||
exit 1 | ||
fi | ||
if [[ -z "${{ github.event.inputs.baseurl }}" ]]; then | ||
echo "Invalid input: 'baseurl' is required but not provided." | ||
exit 1 | ||
fi | ||
if [[ -z "${{ github.event.inputs.browser }}" ]]; then | ||
echo "Invalid input: 'browser' is required but not provided." | ||
exit 1 | ||
fi | ||
if [[ -z "${{ github.event.inputs.os }}" ]]; then | ||
echo "Invalid input: 'os' is required but not provided." | ||
exit 1 | ||
fi | ||
if [[ "${{ inputs.os }}" == "window" && "${{ inputs.browser }}" == "safari" ]]; then | ||
echo "Invalid input: Safari is not supported on Windows OS." | ||
exit 1 | ||
fi | ||
- name: Setup Python | ||
id: setup_python | ||
if: steps.validate_input.outcome == 'success' | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.9" | ||
|
||
- name: Start Tunnel | ||
uses: LambdaTest/LambdaTest-tunnel-action@v2 | ||
id: tunnel | ||
with: | ||
user: ${{ secrets.LT_USERNAME }} | ||
access-key: ${{ secrets.LT_ACCESS_KEY }} | ||
tunnelName: "pytestTunnel" | ||
|
||
- name: Check out code | ||
id: co_code | ||
if: steps.bs_local_tunnel_setup.outcome == 'success' | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup dependencies | ||
id: setup_dependencies | ||
if: steps.co_code.outcome == 'success' | ||
run: | | ||
sh setup_install.sh | ||
- name: Run Manual Job Tests | ||
id: run_manual_job | ||
if: steps.setup_dependencies.outcome == 'success' | ||
run: | | ||
TAGS="${{ github.event.inputs.tags }}" | ||
if [[ "${{ github.event.inputs.baseurl }}" == "other" ]]; then | ||
BASE_URL="${{ github.event.inputs.inputurl }}" | ||
else | ||
BASE_URL="${{ github.event.inputs.baseurl }}" | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "chrome" && "${{ github.event.inputs.os }}" == "window" ]]; then | ||
BROWSER=./env_configs/win_chrome.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "firefox" && "${{ github.event.inputs.os }}" == "window" ]]; then | ||
BROWSER=./env_configs/win_firefox.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "edge" && "${{ github.event.inputs.os }}" == "window" ]]; then | ||
BROWSER=./env_configs/win_edge.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "chrome" && "${{ github.event.inputs.os }}" == "mac" ]]; then | ||
BROWSER=./env_configs/mac_chrome.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "firefox" && "${{ github.event.inputs.os }}" == "mac" ]]; then | ||
BROWSER=./env_configs/mac_firefox.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "safari" && "${{ github.event.inputs.os }}" == "mac" ]]; then | ||
BROWSER=./env_configs/mac_safari.json | ||
fi | ||
if [[ "${{ github.event.inputs.browser }}" == "edge" && "${{ github.event.inputs.os }}" == "mac" ]]; then | ||
BROWSER=./env_configs/mac_edge.json | ||
fi | ||
env | ||
source $HOME/.bp-venv/bin/activate | ||
sh ci_lt_run_web.sh ${{secrets.LT_USERNAME}} ${{secrets.LT_ACCESS_KEY}} "$BROWSER" "$TAGS" "$BASE_URL" "${{secrets.SLACK_WEBHOOK_URL}}" "${{secrets.TEAMS_WEBHOOK_URL}}" | ||
- name: Upload HTML run report in the Artifacts Folder | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: pytest-html-results | ||
path: | | ||
./*.html | ||
./output/ | ||
./assets/ | ||
./test_data/visualtesting/test/*.png | ||
if: ${{ always() }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#!/bin/sh | ||
|
||
# Run Web tests | ||
python -m pytest -vv -s --gherkin-terminal-reporter --driver=Remote --selenium-host "$1":"$2""@hub.lambdatest.com" --variables=$3 --html="./output/reports/" \ | ||
--tags="$4" --reruns 1 --reruns-delay 2 --self-contained-html --capability headless False --base-url=$5 --slack-webhook-url=$6 --slack-channel=pytest-test-automation \ | ||
--slack-results-url=https://tweag.github.io/pytest-automation-boilerplate --teams-webhook-url=$7 \ | ||
--teams-results-url=https://tweag.github.io/pytest-automation-boilerplate --slack-failure-only=true --teams-failure-only=true |