appium是一款开源的,跨平台的UI自动化测试工具,适用于测试原生的或者混合型的移动APP,支持IOS,Android,Firefox OS等平台,同时该框架支持JAVA,Python,PHP等语言编写的测试脚本。
client端也就是我们 test script,即selenium(webdriver)测试脚本。
中间是Appium服务,Appium启动一个Server(4723端口),它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。appium server会把请求转发给中间件Bootstrap.jar (它是用java写的,安装在手机上)Bootstrap监听4724端口并接收appium 的命令,最终通过调用UiAutomator的命令来实现。最后Bootstrap将执行的结果返回给appium server。appium server再将结果返回给客户端。直接下一步,直接到位
一.脚本开发基本步骤:(熟练掌握) DesiredCapabilities类:提供了一些key value的对象,它告诉appium server这样一些事情
*需要测试的平台是什么:“platformName”–android\ios\firefoxos*需要测试的设备名(序列号)是什么:“deviceName”–“Android Emulator”*需要测试的平台版是:“platformVersion”–“4.4.4”*需要测试的应用程序(包及首页activity)*设备上app是否需要重复安装“noReset”----true *appPackage—com.mini.calc–包名*appActivity—com.stub.stub01.Stub01–活动页 DesiredCapabilities des=new DesiredCapabilities(); des.setCapability("platformName":"android"); des.setCapability("deviceName":"Android Emulator");获取DesiredCapabilities参数方法:
平台就android\ios\firefoxos获取设备名:就填它,“Android Emulator”获取包名和首页: (1).使用aapt工具,查看针对有apk安装包的情况,aapt工具在 hrE:\ADT-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\sdk\build-tools\android-4.4.2 如:aapt dump badging d:\test.apk## (2).使用adb查看,要先打开app,然后输入以下命令:
adb shell dumpsys window w | findstr mCurrent注意:/wd/hub是规则的写法
设置等待
有些地方不设置没反应过来会定位不到元素就会报出错误
driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);定位控件 appium 通过 uiautomatorviewer.bat 工具来查看控件的属性。该工具位于 Android SDK 的 /tools/ 目录下。 如:E:\ADT-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\sdk\tools 注意:使用前要先打开模拟器,然后打开模拟器中的app,通过uiautomatorviewer.bat中的截图
package haha; import io.appium.java_client.AppiumDriver; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.DesiredCapabilities; public class Test01 { public static void main(String[] args)throws MalformedURLException, InterruptedException { // TODO 自动生成的方法存根 DesiredCapabilities des=new DesiredCapabilities(); des.setCapability("platformName","android");//平台 des.setCapability("deviceName","Android Emulator");//设备名称 des.setCapability("platformVersion","4.4.4");//版本号 des.setCapability("noReset","true");//不要重复安装 des.setCapability("appPackage","com.tencent.mobileqq");//包名 Thread.sleep(3000);//3秒 //活动页 des.setCapability("appActivity","com.tencent.mobileqq.activity.LoginActivity"); Thread.sleep(7000);//7秒 //创建连接appium的对象 AppiumDriver dr = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"),des); } }