Skip to content

test: create soak test workflow to run e2e tests on DeviceFarm#93

Open
sasirekha3 wants to merge 15 commits into
mainfrom
test/e2e-v2
Open

test: create soak test workflow to run e2e tests on DeviceFarm#93
sasirekha3 wants to merge 15 commits into
mainfrom
test/e2e-v2

Conversation

@sasirekha3

@sasirekha3 sasirekha3 commented Dec 4, 2025

Copy link
Copy Markdown
Contributor

End-to-end Soak Tests

This change creates a new SoakTest workflow to package the PetClinic app with the latest version of the Swift SDK in main and upload the archive to an S3 bucket. The e2e test workflow is designed to trigger a test cycle on GetObject to the app folder of this bucket. This change is a:

This change also includes the PetClinic iOS app (a simple instrumented app created to run UI tests) that will be used to generate telemetry on DeviceFarm to monitor the quality of our code using workflows on this repo.

Additionally, we now have deviceFarmTestSpec.yaml - a file that allows us to dynamically pass appMonitorId, appMonitorRegion, and deviceFarmJobId as arguments to the target app. These fields are essential to be able to query ingested logs and validate that there is no missing telemetry.

Testing

Successful run: https://github.com/aws-observability/aws-otel-swift/actions/runs/22504971952/job/65201256046


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@sasirekha3 sasirekha3 requested a review from a team as a code owner December 4, 2025 19:12
@sasirekha3 sasirekha3 added the Skip Changelog If this PR does not need a CHANGELOG entry, you can add the 'Skip Changelog' label to this PR. label Dec 4, 2025
@sasirekha3 sasirekha3 requested review from Doohl and williazz December 4, 2025 19:24
Comment thread .github/workflows/SoakTest.yml Outdated
Comment thread .github/workflows/SoakTest.yml
Comment thread release_notes.md Outdated

@williazz williazz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but I think we need to review and merge in the backend stuff first, since the purpose of this CR is to upload the e2e test artifacts, not to run e2e tests.

I would also like to better understand what tests from your original design have been implemented, and how operators will know if something is wrong. Ideally, the success/failure of the e2e test should be viewable from github but understandably that might be difficult.

Comment thread release_notes.md Outdated
}
}

private func testUIJankFeature(app: XCUIApplication) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which events are you testing for? We currently do not support jitter

}

// Test ANR (blocks for 10s)
let anrButton = app.buttons["⏰ Trigger ANR (10s block)"]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ANRs are typically considered fatal hangs, but this is just a regular hang. We should probably update the text


- name: Build iOS App
run: |
xcodebuild -project Examples/PetClinic/PetClinic.xcodeproj \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add caching? this will help improve build times

@sasirekha3

Copy link
Copy Markdown
Contributor Author

Code QL is failing even after I run make format and make lint locally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Skip Changelog If this PR does not need a CHANGELOG entry, you can add the 'Skip Changelog' label to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants