from http://appium.io/ Appium philosophy has four tenets -
- Application under test should not have to be modified to be able to run automated tests
- Automated tests should not be tied to one framework or programming language
- A mobile automation framework shouldn't reinvent the wheel when it comes to automation APIs.
- A mobile automation framework should be open source, in spirit and practice as well as in name!
Appium meets its philosophy in following ways -
- Appium satisfies its first Philosophy by using vendor-provided automation frameworks to control device. Hence Appium-specific or third-party code or frameworks do not have to be compiled with app under test. Appium describes it as - you're testing the same app you're shipping. The vendor-provided frameworks Appium uses are:
- Appium satisfies its second philosophy by wrapping the vendor-provided frameworks in one API, the WebDriver API. WebDriver specifies JSON Wire Protocol which is a client-server protocol. Hence a client written in any language can be used to send the appropriate HTTP requests to the server. Webdriver supports clients written in many popular programming languages. Hence you are free to use whichever test framework you want. for example JUnit or Testng with java, NUnit with C#, PHP unit with PHP etc; The client libraries are HTTP clients and can be mixed into your code any way you want. Hence like, WebDriver, Appium is also not a “test frameworks" but rather an "automation libraries". And it is left to you how you want to write tests.
- Appium satisfies its fourth philosophy by being open source :-)