[build-tools] Add Appium remote simulator sessions - #4189
Conversation
7b20d76 to
e0ed5bf
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4189 +/- ##
==========================================
+ Coverage 63.32% 63.34% +0.02%
==========================================
Files 1025 1028 +3
Lines 46786 47017 +231
Branches 9865 9853 -12
==========================================
+ Hits 29624 29778 +154
- Misses 15707 17137 +1430
+ Partials 1455 102 -1353 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
8c1e165 to
25c685b
Compare
25c685b to
70eed8a
Compare
|
⏩ The changelog entry check has been skipped since the "no changelog" label is present. |
| observedCommandKeys: Set<string>; | ||
| logger: bunyan; | ||
| }): Promise<void> { | ||
| const response = await turtleFetch(new URL('sessions', appiumUrl).toString(), 'GET', { |
There was a problem hiding this comment.
Appium 3 removed the GET /sessions endpoint. Session discovery now requires GET /appium/sessions, with the server launched using --allow-insecure=*:session_discovery.
As written, every event-collection poll will fail, so no Appium events are uploaded. When max_idle_time_minutes is configured, an actively used session may also be treated as idle and stopped.
Could we update both the endpoint and the Appium launch arguments, and add test assertions for them?
Why
Appium is one of the industry standards when it comes to interacting with local and remote mobile devices. I think it may be nice to add support for it to EAS Simulator.
How
Added a new EAS function that installs Appium v3, necessary plugin, starts it and exposes its endpoint through ngrok.
The event collection is a bit wonky since we're repeatedly calling Appium endpoint for events, but maybe it's ok. Alternatively we could extend session event collection mechanism to support
getEventsAsync, but decided not to do that (see diff).Test Plan
Tested manually locally. A remote test is going to be better!