When considering which approach will work best for you it helps to know more about Appium, the goals of the WinAppDriver project, and some considerations when setting up your test workflow.
- Appium is the industry leading test automation framework for mobile applications
- Is open source
- Supports the WebDriver protocol used by Selenium
- Approaches testing with a focus on mobile apps
- Created to bring Windows app testing to Appium
- Can run standalone and does not require using Appium
- The exact same build of WinAppDriver is driving tests for Appium (The Appium installer installs WinAppDriver for you on Windows Desktop). This is not a special build of WinAppDriver - it is the same WinAppDriver you use without Appium.
- When Appium receives test commands for Windows, it passes the commands along to WinAppDriver
-
When using Appium in the mobile or web world:
Test Runner >> Appium Server >> mobile/web app -
When using Appium and testing on Windows:
Test Runner >> Appium Server >> WinAppDriver >> Windows application -
When testing Windows apps and not using Appium we just take out the Appium Server:
Test Runner >> WinAppDriver >> Windows application
Appium: http://127.0.0.1:4723/wd/hub
WinAppDriver: http://127.0.0.1:4723
For consistency you can tell WinAppDriver to listen to /wd/hub by passing startup arguments:
winappdriver.exe 127.0.0.1 4723/wd/hub
Appium provides the Selenium Grid
If you're looking for multi device management, take a look at the Selenium Grid and plan on using Appium to test your Windows devices. Appium supports the Selenium Grid with Windows devices.
If you're running tests for multiple devices, platforms, including browser tests, you should consider using Appium. Appium can make it easier to manage tests across multiple devices.
If you're just testing Windows Apps it's fine to not include Appium
Don't feel like this is a big decision you can't later change - you can experiment, try with and without Appium, and change later if your needs change. Switching between WinAppDriver standalone and using Appium can be near 0 cost, with the bulk of the work dealing with the "wd/hub" difference.
Scott Hanselman's blog post here