当前位置:首页 > 自动化 > 正文

appium自动化测试原理

1、Appium自动化测试框架的原理、安装以及使用

Appium自动化测试框架详解

Appium作为一款开源的移动端自动化测试工具,其主要功能是测试iOS和Android应用,支原生、混合和移动端Web项目,跨平台支osx、windows和linux桌面系统。 其设计灵感来源于Selenium,特别是2.x版本的Webdriver,通过整合webdriver和原生API,提升了测试速度和稳定性。


Selenium起源于Thoughtworks员工JasonHuggins的JavaScriptTestRunner,随后发展为独立的测试框架,包括SeleniumRC和Selenium-IDE,用于Web应用的自动化测试,它通过在浏览器中模拟用户作来验证功能和用户需求。


Appium则是在WebDriver协议基础上扩展了对移动设备API的支,避免了重复开发。 其架构采用client-server模式,appium-client支多种程语言,如Python脚本,通过发送JSON命令给运行在服务器的appium-server,后者与UiAutomator(Android端)或WebDriverAgent(iOS端)交互,执行自动化测试。


安装Appium需要先安装Node.js,作为其运行的基础环境。 然后是JDK8、AndroidSDK和appium-server(现在推荐使用appium-desktop替代)。 确保设备处于开发者模式并开启USB调试,使用uiautomatorviewer工具定位元素并获取页面信息。 对于Android9.0以上版本,可能需要通过adb命令获取屏幕截图和元素属性。


使用Python脚本写测试时,需注意避免与appium第三方库重名,并通过DesiredCapabilities配置来指定测试环境和应用信息。 脚本结构类似于unittest测试框架,包括setUp()(开应用)、test方法(执行测试作)和tearDown()(关闭应用)。

2、怎样使用Appium进行Android自动化测试

1、Robotium——安卓测试工具Robotium是安卓系统最常用的自动化测试工具,并且是一款免费的安卓UI测试工具。 它适合于各种不同的安卓版本及其下行版本。 软件开发者经常把它称作安卓。 Robotium创建的测试使用Java写的。 事实上,Robotium是一个个体测试数据库。 但是Robotium需要花费很时间努力去创建测试,就像为了自动化程序创建的源代码。 它不适合互动的软件系统,不能锁住和解锁智能手机。 Robotium没有记录和播放功能,它不支截屏。 2、MonkeyRunner——安卓App测试工具MonkeyRunner是最流行的有自动化功能的安卓软件测试工具。 MonkeyRunner比起Robotium要低端一些。 它并不处理源代码。 测试创建是用Python写的,其中可能使用记录工具,为了创建测试。 MonkeyRunner可以在连接状态的PC或者模拟器上运行测试。 它有一个应用程序接口可以控智能手机或者模拟器。 但手机APP测试工具的最大缺陷是每个设备都要写脚本。 另一个缺陷就是,每次测试程序发生改变时都要调整。 3、Ranorex——安卓App测试工具Ranorex是一个不错的自动化测试工具,不仅最新版本,Android2.2.以上版本都是可以的。 Ranorex的好处在于它有详细的截屏报告。 他可以通过WiFi上网连接智能手机或者平板电脑。 通过这个Android工具,自动化的测试工程师可以详细描述数据驱动测试,但不包括XML数据格式。 Ranorex可以很轻松地创建测试,自动化测试工程师只需点击鼠标。 Ranorex允许附加的程序模块。 这个模块可以用于开发更为复杂的测试场景中。 Ranorex是一个商业化的移动应用程序的工具;其许可价格是1990欧元/年。 Ranorex搜索相当慢;它需要30秒的时间来执行作。 其中一个必须为Ranorex文书的APK文件。 否则它不能通过这个工具进行自动化测试,它只能在APK文件下工作。 4、Appium——安卓自动化测试工具Appium是为iOS和安卓系统创建的自动化测试框架,是一个免费工具。 它支2.3及更高版本的Android系统。 Appium利用WebDriver界面运行测试。 它支许多程语言,如Java、C#、Ruby和其他的WebDriver数据库。 它可以在移动设备上控Safari和Chrome。 但是,一些自动化的测试工程师抱怨它提供的报告不足。 它的缺点也减少了对于XPath在移动设备上的支。 5、UIAutomator——安卓自动化测试谷歌最近推出了这一工具。 它支从4.1开始的安卓版本。 我们应该选择另一个更早期的安卓应用程序进行自动化测试。 UIAutomator能够与各类安卓系统兼容,包括系统的应用程序。 这使得UIAutomator可以锁定和解锁智能手机或平板电脑。 通过该工具创建的脚本可以在许多不同的安卓平台上执行。 它允许复用户的作复杂的序列。 UIAutomator也可以利用外部按钮的装置调节,开和关闭设备的按钮。 UIAutomator可以与测试框架TestNG集成。 在这种情况下,用户界面自动可以生成丰富和详细的报告,类似于由Ranorex生成的报告。 此工具搜索速度还非常快。 在许多安卓平台上测试后,软件测试专家认为UIAutomator是质量最好的移动应用程序。 它是安卓做好的应用程序之一,它由谷歌推出。 通常大约80%的新软件的bug都会重现支的平台。 其余20%出现在其他平台上。 这意味着,在大多数情况下,事先测试软件产品比盲目使用更好。 目前,Android4.1版本安装了约66%作系统的设备。 这就是为什么许多自动化的测试工程师经常决定UIAutomator是最合适的解决方。