Appium作为一款开源的移动端自动化测试工具,其主要功能是测试iOS和Android应用,支持原生、混合和移动端Web项目,跨平台支持osx、windows和linux桌面系统。其设计灵感来源于Selenium,特别是2.x版本的Webdriver,通过整合webdriver和原生API,提升了测试速度和稳定性。
Selenium起源于Thoughtworks员工Jason Huggins的JavaScriptTestRunner,随后发展为独立的测试框架,包括Selenium RC和Selenium-IDE,用于Web应用的自动化测试,它通过在浏览器中模拟用户操作来验证功能和用户需求。
Appium则是在WebDriver协议基础上扩展了对移动设备API的支持,避免了重复开发。其架构采用client-server模式,appium-client支持多种编程语言,如Python脚本,通过发送JSON命令给运行在服务器的appium-server,后者与UiAutomator(Android端)或WebDriverAgent(iOS端)交互,执行自动化测试。
安装Appium需要先安装Node.js,作为其运行的基础环境。然后是JDK8、Android SDK和appium-server(现在推荐使用appium-desktop替代)。确保设备处于开发者模式并开启USB调试,使用uiautomatorviewer工具定位元素并获取页面信息。对于Android 9.0以上版本,可能需要通过adb命令获取屏幕截图和元素属性。
使用Python脚本编写测试时,需注意避免与appium第三方库重名,并通过Desired Capabilities配置来指定测试环境和应用信息。脚本结构类似于unittest测试框架,包括setUp()(打开应用)、test方法(执行测试操作)和tearDown()(关闭应用)。