-
-
Notifications
You must be signed in to change notification settings - Fork 443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: performance impact measurements #2171
Merged
Merged
Changes from 27 commits
Commits
Show all changes
70 commits
Select commit
Hold shift + click to select a range
466d695
test: appium-based android startup test (WIP)
vaind be814f5
chore: update appium test dependencies
vaind 5de4fcc
test: add performance test apps
vaind 3fe51dc
chore: perf test apps - add signing configs
vaind cca02ea
test: use appId
vaind 3693a71
Format code
getsentry-bot 93eaf86
refactor: switch appium tests to TS
vaind dcc86bf
chore: appium TS package cleanup
vaind 08839af
chore: finish migration to nodejs appium
vaind 7413898
chore: use simple-statistics in the appium test
vaind d7cb38a
chore: lints
vaind 1f2973f
chore: update appium test to multi-app
vaind d1f36f7
chore: update appium test scripts
vaind 31259c1
wip: upload apps to saucelabs
vaind 99650f9
make gradlew executable in test apps
vaind b2f337f
fixup: saucelabs app upload
vaind d935121
refactor: use `appium:otherApps` instead of installApp
vaind 4954245
ci: run appium perf test in CI
vaind f4850c6
test: add sentry to the startup test app
vaind 891f3ee
Format code
getsentry-bot b4639f5
app-startup tests: run more iterations and filter outliers
vaind 8b3a72d
test: compare startup times
vaind facd582
chore: docs
vaind 98915c9
chore: include test-app-plain in the root gradle project
vaind 88c8e74
test: tune logs and saucelabs info
vaind 5a19276
test: print app size, add simple assertions, log formatting
vaind 8c296ef
chore: move the new performance tests under sentry-android-integratio…
vaind a6ee6c0
move appium to appium-node
vaind 732174d
refactor: move appium tests to kotlin (WIP)
vaind fdd1386
refactor: move appium tests to kotlin (WIP 2/*)
vaind 6a814a7
refactor: move appium tests to kotlin (WIP 3/*)
vaind f557687
fix: SauceLabsClient - switch to ktor where file upload actually works
vaind b69b9ac
fix: SauceLabs otherApps format
vaind 39d3ad0
refactor: remove node-based appium tests
vaind e49d9ca
Merge branch 'main' into ci/perf-tests
vaind e782e80
fix: make sure SauceLabsOnly is always true on CI
vaind 0163d1c
avoid wildcard import to satisfy ktlintCheck
vaind a10f433
Format code
getsentry-bot 973b876
ci: add saucelabs env vars
vaind fdfe700
chore: change test-app-* build.gradle to kotlin
vaind 5793888
Merge remote-tracking branch 'origin/ci/perf-tests' into ci/perf-tests
vaind 01ab854
chore: appium test - print test output logs
vaind bd43723
chore: appium test docs & minor cleanup
vaind 47faa49
refactor: change android time collection to logcat-based
vaind acea7c9
chore: set measured app info as CI job outputs
vaind 95d5c39
chore: add performance metrics to the PR comment
vaind 7a62adf
Merge branch 'main' into ci/perf-tests
vaind 86aa314
chore: remove wildcard import
vaind add51e8
fix: startup tests using logcat on SauceLabs
vaind 6875b2d
chore: format GHA output StartTime
vaind 6a3e607
chore: stick to Android 12 for the startup test
vaind 7fc951f
fixup: number of runs for StartupTests on SauceLabs
vaind 639a9e8
appium tests - ios support
vaind 634cdb2
switch app integration test to use a github action
vaind 316b5f3
chore: use comment-update logic in the metrics action
vaind 153e2f2
fix ci yaml
vaind 8d31406
update metrics GHA
vaind bbeb60d
Merge branch 'main' into ci/perf-tests
vaind 5e9c63a
chore: update metrics GHA
vaind 935e208
update perf test config
vaind 9e63c21
ci: cache benchmark plain app
vaind f6723f6
switch metrics action to internal repo
vaind 3f8cf60
Merge branch 'main' into ci/perf-tests
vaind a43974f
Merge branch 'main' into ci/perf-tests
vaind ffeb2a5
Merge branch 'main' into ci/perf-tests
marandaneto 0e00c1a
chore: build only arm64 metrics test apps
vaind da971d2
chore: use Config.Android version constants in the metrics test apps
vaind 059f3ea
fix: metrics test apps compat with old android
vaind f40bb1a
test: metrics binary size test range
vaind fde4c27
fix: metrics test apps old android compat
vaind File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
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
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 @@ | ||
# Android performance-impact and integration tests | ||
|
||
* [Sample app without sentry](./test-app-plain) created with Android Studio -> New Project -> Basic Activity | ||
* [Same app, but with Sentry included](./test-app-sentry) - made part of the root project | ||
* [Appium based tests](./appium/) | ||
* [Espresso-based benchmarks](./sentry-uitest-android-benchmark) - run within SauceLabs (see /.sauce/*.yml) | ||
* [Espresso-based UI tests](./sentry-uitest-android) - run within SauceLabs (see /.sauce/*.yml) |
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,22 @@ | ||
# Log files | ||
logs | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
*.log | ||
|
||
# DS_Store | ||
*.DS_Store | ||
|
||
# virtual machine crash logs | ||
hs_err_pid* | ||
|
||
# node_modules | ||
**/node_modules | ||
|
||
# Optional npm cache directory | ||
**/.npm | ||
|
||
# files | ||
**/.DS_Store | ||
**/.idea |
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,22 @@ | ||
MIT License | ||
|
||
Copyright (c) 2022 Sentry | ||
Copyright (c) 2019 saucelabs-training | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
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,35 @@ | ||
# Appium-based test | ||
|
||
Originally based on [SauceLabs's demo scripts](https://github.com/saucelabs-training/demo-js/tree/8c936c7a6865823e3251362ed5cb8ed2327c59be/webdriverio/appium-app/examples/simple-example). | ||
|
||
## Install dependencies | ||
|
||
```shell | ||
npm install | ||
``` | ||
|
||
## Compile test apps | ||
|
||
```shell | ||
npm run build:apps | ||
``` | ||
|
||
## Run tests | ||
|
||
You can run your tests on Sauce Labs: | ||
|
||
```shell | ||
# Run Android Tests | ||
npm run saucelabs:android | ||
# Run iOS Tests | ||
npm run saucelabs:ios | ||
``` | ||
|
||
Or you can run the tests on your local Appium installation (head over to [appium.io](https://appium.io/) to get started): | ||
|
||
```shell | ||
# Run Android Tests | ||
npm run local:android | ||
# Run iOS Tests | ||
npm run local:ios | ||
``` |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd avoid using
'**/sentry-android-integration-tests/**'
, since we don't want to run benchmarks if we only add a ui tests (the modulesentry-android-integration-tests/sentry-uitest-android
)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess changes in
uitest
alone are so infrequent (to provide any benefit) that it doesn't make that much sense, considering we would need to explicitly white list the other 4 subdirectories instead?