In our last post, we gave a quick introduction to Appium. We explained what Appium is and its philosophy. Here we will take a look at Appium architecture.
Appium uses the vendor-provided automation frameworks under the hood. Because of this, we don’t need to compile any Appium specific or third-party code or frameworks to the app under test. This is the base of the first philosophy of Appium, you're testing the same app you're shipping. The vendor-provided frameworks that Appium uses are
The full cycle will be something like
If you like the post, don’t forget to share and/or comment.
Appium uses the vendor-provided automation frameworks under the hood. Because of this, we don’t need to compile any Appium specific or third-party code or frameworks to the app under test. This is the base of the first philosophy of Appium, you're testing the same app you're shipping. The vendor-provided frameworks that Appium uses are
- iOS: Apple’s UIAutomation
- Android 4.2+: Google’s UIAutomator
- Android 2.3+: Google’s Instrumentation (Support for Instrumentation is provided by a separate project – Selendroid)
- Receives connections from a client and creates a session
- Listens to the commands
- Executes the commands (on real devices or emulators)
- Responds back with a HTTP response representing the results of the executed commands
The full cycle will be something like
- You write your tests using one of Appium client libraries (which supports Appium’s extensions to the Webdriver protocol)
- Your tests calls the Webdriver API
- The Webdriver sends the request in form of JSon via http request to the Appium server. (Your Webdriver scripts and Appium server can be on same machine or different machines, depending how you want it to be)
- The Appium server, under the hood invokes vendor specific mechanisms to execute the test commands
- The client (devices or emulators) responds back to Appium server
- Appium server logs the results in console.
If you like the post, don’t forget to share and/or comment.
Comments
Post a Comment