test: create soak test workflow to run e2e tests on DeviceFarm#93
test: create soak test workflow to run e2e tests on DeviceFarm#93sasirekha3 wants to merge 15 commits into
Conversation
williazz
left a comment
There was a problem hiding this comment.
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.
| } | ||
| } | ||
|
|
||
| private func testUIJankFeature(app: XCUIApplication) { |
There was a problem hiding this comment.
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)"] |
There was a problem hiding this comment.
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 \ |
There was a problem hiding this comment.
can you add caching? this will help improve build times
e6c9c87 to
c8774c0
Compare
|
Code QL is failing even after I run |
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
mainand upload the archive to an S3 bucket. The e2e test workflow is designed to trigger a test cycle onGetObjectto theappfolder 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.