Learning Appium Design
Let us begin by learning Appium Design and how the structure of the Appium project live out the philosophy described in the previous section.
At first, you will be required to meet requirement by using vendor-provided automation frameworks under the hood. Consequently, you will not be required to compile in any Appium-specific or third-party code or frameworks for the app. This means, you are testing the same app you’re shipping.
Secondly, it is also needed to meet the requirement by wrapping the vendor-provided frameworks in one API, the WebDriver API. As a matter of fact, WebDriver specifies a client-server protocol (also referred as the JSON Wire Protocol). Given the client-server architecture, a client written in any language can be used to send the appropriate HTTP requests to the server. This also means that you’re free to use whatever test runner and test framework you want. Such that the client libraries are simply HTTP clients and can be mixed into your code any way you please. In other words, Appium & WebDriver clients are not technically “test frameworks” — they are “automation libraries”. You can manage your test environment any way you like!
We are needed to meet the third requirement in the same way. In short, WebDriver has become the de facto standard for automating web browsers, and is a W3C Working Draft. Instead the protocol are extended with extra API methods useful for mobile automation.
Moreover, it is obvious that the fourth requirement is obvious because Appium is an open source.