zoukankan      html  css  js  c++  java
  • appium 搭建及实例

    一、Appium环境搭建(Java版本)

    转载2016-04-26 09:24:55

    标签:appium移动端自动化测试

    市场需求与职业生涯的碰撞,阴差阳错我就跨进了移动App端自动化测试的大门,前生乃iOS程序猿一枚,好了,入正题~

    Appium环境的搭建,本文主要讲解一下Java环境配置、Android环境配置、Appium相关组件的安装。

    Java环境配置

    1、JDK安装 :首先度娘下载JDK,传送门http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html

    第一步,点击下载                                                                                                                                    

    第二步,接受用户协议,不点接受不能下载;                                                                                        第三步,根据自己系统下载对应的JDK,我的是Windows 64位,Windows 32位下载Windows X86那个

    下载下来后点击安装,一直下一步默认安装就行。。。。。。

    全部默认设置就行(PS:第二张图的JDK安装地址在下面会用到) 

    2、Java_Home与Path环境变量的配置

    按照以上步骤就能找到Windows7添加环境变量的入口了

    在新建里输入变量名:“JAVA_HOME”和变量值,变量值就是上面安装JDK的地址,我的是“C:Program Files (x86)Javajdk1.7.0_45”,然后点击确定。

    以上为我添加JAVA_HOME的截图

    然后,添加Path环境变量,因为我的系统变量里已经存在Path变量,所以不用新建了,直接找到Path点击编辑,直接把“%JAVA_HOME%in;”添加到变量值栏里就行了,注意分号隔开!

    点击确定,完成Path环境变量添加

    3、Java环境验证

    点击Windows键,输入cmd,点击第一个进入终端

    输入:”set“,回车查看JAVA_HOME配置成功,如上图看到所示信息即可

    输入:”java  -version“回车查看java版本信息,说明配置成功

    ​好了,Java环境配置就算基本完成了~

    Android环境配置

    1、adt-bundle-windows的下载​

    根据对应系统下载对应的adt,直接度娘adt-bundle-windows就能找到。给个64位windows7传送门http://125.39.35.131/files/3074000007BDAD4A/dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip

    adt解压后大概就是这样

    2、Android_Home的配置和Path的添加

    步骤与Java_Home的配置一样,新建->变量名:“Android_Home”,变量值:你的adt解压后,文件夹里sdk的地址,我的是“C:adt-bundle-windows-x86-20140702sdk”。然后在Path变量值里添加两个路径,步骤与上相同,分别是“%Android_Home% ools”、“%Android_Home%platform-tools”,注意添加到Path变量值里时用分号隔开。

    3、Android环境验证

    重新打开cmd,​输入set查看是否有上面添加的路径。然后输入"adb devices"回车,输入“emulator”查看上面两个环境配置是否成功。

    如果未出现“xxx不是内部或外部命令,也不是可运行xxxx”,如上所示则成功了

    现在Android环境搭建基本完成。

    Appium相关组件安装

    1、安装Node.js

    度娘下载Node.js,双击一直默认安装就行,传送门https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi,安装时把安装地址记录下来,到下面需要配置环境变量。

    2、添加Path

    Node.js的安装路径添加到环境变量Path的变量值里,注意分号隔开,我的是“C:Program Files odejs”。​

    3、安装.Net Framework4.5

    如果电脑已经安装​.Net Framework4.5或者高于4.5则不用再安装,基本大家都有安装,可以直接略过,如果没有安装,直接度娘下载安装一下就能解决。传送门:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653

    4、安装Appium​

    下载安装Appium,默认安装即可,传送门:https://bitbucket.org/appium/appium.app/downloads/。个人推荐通过传送门的图像化界面下载安装,方便简单。(PS:也可在命令行输入“npm install -g appium”,回车下载安装,输入“appium-doctor”验证通过命令行是否安装成功)

    启动Appium,双击Appium图标就可以打开了,里面有启动服务按钮。​

    Appium打开后的界面

     

    二、Appium测试demo(Java版)

    转载2016-05-31 09:15:51

    标签:appium移动端自动化测试

    上一节已经告诉大家Appium的环境搭建了,不知道大家都搭建的怎么样了,我且说一下我身边的小伙伴们遇到的问题吧。

    1、有因为环境变量填写有误导致不成功,这个,就自己检查尽量避免吧。

    2、有通过其他途径拷贝的Appium,安装完后部分系统文件缺失导致启动服务失败。

    这个的解决办法就是,卸载坏掉的Appium,从我给的地址去下载对应版本的Appium,然后重新安装。可能会遇到被墙的问题,再推荐一个靠谱的VPN,度娘Lantern,懒得找的直接传送门 http://www.mfbuluo.com/lantern,或者去我的网盘直接download一份Windows版的 http://pan.baidu.com/s/1i4Wshal​ 。

    言归正传,现在来说如何运行一个测试demo。首先,准备好一款模拟器、待测试的.apk包、测试会用到的相关jar包。

    下载夜神模拟器

    为了方便截屏和没有安卓设备的用户,先下载一个安卓模拟器,我这里下载的是夜神模拟器,度娘就能下到,楼楼家直通车 http://pan.baidu.com/s/1skLmEHB,当然,如果已经有真机或者更好的模拟器就不用下了。安装好了之后有一个多开器和一个模拟器,点击打开模拟器,如下图。修改设备名称,这个凭自己喜好,我取名是“VCan”,然后留意一下模拟器版本信息。

    更改模拟器名称

    查看模拟器安卓版本信息(我的模拟器安卓系统是4.4.2版)

    下载安装待测试软件

    百度下载一个待测试的安卓安装包​,比如度娘“新浪微博.apk”,懒癌晚期患者直接从我云盘下载 http://pan.baidu.com/s/1pLmvgb5 ,然后直接把新浪安卓安装包拖到模拟器里,模拟器就会自己安装新浪微博,其他.apk安装方法同理。在模拟器里手动点击打开微博,确定安装的没有问题,能正常打开。接下来,获取安装包里启动类名称。打开终端cmd,先cd进入到刚才下载的“新浪.apk”目录下,然后使用aapt dump badging xxx.apk命令获取包内信息。注意,启动类名称一个字母都不能错。

    cd进入到你安装包的目录下

    找到红框字段,记下启动类名称,我这里是“com.sina.weibo.SplashActivity”

    备注:如果提示aapt不是内部命令你在sdk uild-tools下的某个android版本中可以找到aapt.exe 文件,如: D:software est_toolsadt-bundle-windows-x86-20131030sdkuild-toolsandroid-4.4
    然后把该路径添加到你的path 变量中,确定后重启cmd, 输入aapt就可以正常使用了。

    下载相关jar

    ​​在一会儿的测试里会依赖相关测试jar包,我已经度娘过了,大家先从楼楼家直接download下来吧,传送门 http://pan.baidu.com/s/1eRZgrPC 。至此,准备工作基本完毕,我们可以开工了!

    正式测试Demo

    ​​打开在上篇博客搭建环境时下载的adt文件夹,具体地址 adt-bundle-windows-x86-20140702eclipse(PS:版本不同,地址里数字有出入),然后双击打开eclipse.exe 。

    打开eclipse

    左上角File->New->Java Project新建Java项目,项目名随便,我取的是“VTest”

    新建Java项目

    选中新建的项目,右键,新建文件夹apps(PS:用来放安装包apk文件),同理再新建一个lib文件夹(PS:用来放之前下的三个jar包

    新建文件夹

    然后复制、粘贴,分别把“微博.apk”、三个jar包拷贝到apps文件夹和libs文件夹下。接着把jar包添加到构建路径,方法是选中jar包,右键->Build Path->Add to Build Path,添加前与添加后的项目结构图如下。

    jar包添加到构建路径

    选中scr文件夹,右键New->Package新建包,名称自己随意取,我取的是“VTest”

    新建包VTest

    选中包,右键New->Class新建类,名称随意,我取的是VV,记得勾选添加main函数,途中已经标记,以后新建类时把添加mian函数的勾去掉即可。

    新建类VV

    双击打开VV类,将如下代码拷贝至main函数里,完整代码:

    ​String deviceName = "VCan";

    String platformVersion = "4.4.2";

    String apkName = "微博.apk";

    String appActivity = "com.sina.weibo.SplashActivity";

    String AppiumServerIP = "http://127.0.0.1:4723/wd/hub";

    AndroidDriver driver;

    File apk = new File(System.getProperty("user.dir")+File.separator+"apps"+File.separator+apkName);

    DesiredCapabilities capabilities = new DesiredCapabilities();

    capabilities.setCapability("deviceName", deviceName);

    capabilities.setCapability("platformVersion", platformVersion);

    capabilities.setCapability("app", apk);

    capabilities.setCapability("appActivity", appActivity);

    capabilities.setCapability("noSign", true);

    capabilities.setCapability("noReset", true);

    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);

    注意30行处会有一个小错误,按照图示方法,或者在第九行回车加上@throws MalformedURLException

    此时,打开捕捉模拟器屏幕工具,具体路径adt-bundle-windows-x86-20140702sdk ools,双击uiautomatorviewer.bat文件会弹出一个终端黑窗口,一直都不要关闭,然后双击zipalign.exe,然后会弹出模拟器截屏工具。

    截屏工具打开后的样子

    打开模拟器,运行微博app,等进入到微博首页后,点击截屏工具的截屏按钮进行截屏(PS:截屏工具菜单栏第二个按钮,下图有标注)。

    注意,是先左图模拟器运行出新浪新闻的画面,在右图点击截屏

    我们这次先做个简单的,跑起来就行,所以就做一下点击发布按钮,然后点击关闭收起发布界面这个简单的操作。先在截屏工具里点击发布按钮,图中箭头1所示,然后把图中箭头2圈起来的resource-id复制出来(PS:以后测试里,很多时候都会用到resource-id来标记一个控件)。

    获取发布按钮source-id

    接下来,在模拟器上点击一下发布按钮,此时模拟器会弹出一个发布文字、图片等的一个候选框,再次点击截屏按钮,获取此时的模拟器屏幕,与上同。

    获取关闭发布按钮source-id

    通过代码锁定控件,并执行点击操作。把如下代码添加到刚才代码片段后面,红框内代码如下:

    Thread.sleep(3000);

    System.out.println("App启动等待时间");

    Thread.sleep(4000);

    driver.findElementById("com.sina.weibo:id/plus_icon").click();

    driver.findElementById("com.sina.weibo:id/pop_control_bar_front_close_img").click();

    Thread.sleep(2000);

    driver.close();

    driver.quit();

    编码实现需要自动化测试的步骤

    打开Appium,点击箭头1所示按钮,确定服务器地址与端口。点击箭头2所示按钮,启动Appium服务器。

    确定端口信息与启动Appium 

    等待十秒左右,出现如图输出信息则说明启动服务成功。

    启动Appium成功 

    点击模拟器右下角查看后台进程按钮,左滑杀掉微博进程,以后每次编译运行时最好都提前杀掉后台待测app进程,不然有时会链接服务器异常,编译不能通过等问题。

    杀掉微博后台进程 

    打开eclipse,选中VV类,右键Run As->Java Application,弹窗点击OK就行,等待一会儿之后,模拟器里的新浪app会自动运行,然后自动点击发布按钮与关闭按钮。

    编译运行测试代码

    保存更改

    现在就等着自动编译运行就好了,好了,我们的小demo也就算成功了,整个过程实在太长,这里就不继续讲了。这里有个运行起来的效果视频,共享在楼楼家,大家可以下载下来看下,直通车 http://pan.baidu.com/s/1qXC1rfI 。然后,刚才写的这点源代码一并放上去,直通车地址 http://pan.baidu.com/s/1gfJf4oN

    根据电脑配置不同、模拟器或者真机的区别,运行起来的等待时间会有一定差别

    小结

    ​整个流程基本完毕,这次的demo测试并没有太多测试代码,主要是让大家能把demo跑起来。所以,先掌握测试流程。

    然后说一下在整个流程中可能遇到的问题:

    1、用截屏工具截屏失败。

    此时,把模拟器里该app后台进程杀掉,重新手动进入。截屏前,都请手动进入,然后点击截屏操作。​

    2、Appium启动失败,提示端口已经被占用。

    打开任务管理器,​查看进程。结束“node”进程,如果没有,就结束“adb.exe”进程,然后再次点击启动服务器即可成功。

    3、第一次编译运行能成功,第二次运行就一次报错不能编译运行。

    把模拟器里该app后台进程杀掉,然后eclipse重新点击编译运行。如果还不行,查看代码是否有语法错误。​

    4、获取source-id后不能点击,或者运行到点击时直接crash。

    source-id获取有误,或者在该页面有多个控件都是此source-id,此时需要用其他控件定位方式来定位控件。

    常用定位控件方法:

    driver.findElementById(“id”);​

    driver.findElementByName(“name”);​​

    driver.findElementByClassName(“ClassName”);​

    ​driver.findElements(By.id(“id”)).get(index);

    博文篇幅较长,请耐心实践。如有不足,恳请指正,谢谢。​楼楼最近正在写一个微信抢红包,等完成再与大家一同分享哈~

    鱼会口渴吗?奶牛为什么总有奶?浣熊为什么喜欢洗刷刷?
  • 相关阅读:
    看下资深架构师平时需要解决的问题,对比你离资深架构师还有多少距离——再论技术架构的升级之路
    要上进总会有时间的,要放松也总会有理由的——记录2年出版2本书带给我的改变,同时分享写书和写博客的技巧
    再论面试前准备简历上的项目描述和面试时介绍项目的要点
    在做技术面试官时,我是这样甄别大忽悠的——如果面试时你有这样的表现,估计悬
    分享些我见到的听到的各种创业经历(有成功也有失败)——分析下创业成功要做到哪些
    写技术文章能帮助大家理顺学习的思路,更能促进自己不断学习——分享下写技术文章的思路
    在博客园写了一年博客,收获的不仅仅是写作技能——我能一直保持积极的学习和工作态度
    Hystrix针对不可用服务的保护机制以及引入缓存
    当你收到面试通知后,通过如下的准备可以大大提升面试成功率
    工作5年左右的程序员如何在职业瓶颈期内快速提升自己的身价?提升后如何有效变现自己的高质量技能?
  • 原文地址:https://www.cnblogs.com/Susie-/p/9916311.html
Copyright © 2011-2022 走看看