ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:479.03KB ,
资源ID:5444181      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5444181.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Appium+Eclipse+Genymotion模拟器安装部署.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Appium+Eclipse+Genymotion模拟器安装部署.docx

1、Appium+Eclipse+Genymotion模拟器安装部署Appium环境部署及实例展示一、 环境说明自己闲来无事整理一下Appium测试环境及几个实例,供初学者学习;环境说明:Appium + Genymotion + Eclipse + TestNG.注:Eclipse及JDK的安装及说明不再在此阐述,XX有很多资料自己阅读。二、 下载Appium下载AppiumForWindows,双击运行Appium.exe文件,打开主窗口,点击右上角“launch”按钮,启动Appium Server服务。三、 下载SDK下载SDK,并配置环境变量,详见XX。四、 下载ADT下载ADT包,打开

2、EclipsehelpInstall New SoftWare,打开“Install”窗口,点击“Add”按钮,打开新增窗口;在新增窗口“Name”中输入名称(如:ADT),点击“Location”后的“Archive”,打开文件选择窗口,选择下载的ATD包文件,点击“OK”。添加成功后在Eclipse主窗口快捷菜单中会出现Android的几个图标。五、 添加模拟器打开Eclipse后点击WindowAndroid Virtual Device Manager 打开AVD管理窗口,点击”Create”按钮,输入参数保存,新增成功;新增成功后选中该AVD,点击”Start”按钮,启动模拟器。注:

3、以上添加的模拟器在使用过程中会非常慢,因此使用了第三方的一种模拟器(Genymotion),该模拟器运行速度相对较快,运行稳定,以下是详细安装说明。六、 下载安装Genymotion模拟器到官网下载Genymotion安装文件后安装;注意:在官网下载时需要注册用户名密码,注册后切记要把用户名密码记住,因为安装完成后还需要登录。七、 配置Genymotion SDK路径安装成功后在本地打开运行,点击“Setting”打开设置窗口,点击”ADB”标签页,点击“Use custom Android SDK tools”单选框,点击“Browe”打开浏览窗口,选择本地SDK路径(选到tools路径的上

4、一级),点击OK。八、 在Eclipse配置Genymotion在GenyMotion官网中下载Eclipse Genymotion插件文件(com.genymobile.genymotion.lib_1.0.4.201503031034.jar、.com.genymobile.genymotion.ide.eclipse.plugin_1.0.4.201503031034.jar,注:下载两个jar时一定要确保版本及时间一致)下载后放到 Eclipse安装路径下的“plugins”路径中。重启Eclipse后可以看到快捷菜单中显示了Genymotion的图标。在Eclipse中点击Windo

5、wsPreferences菜单,打开Preferences窗口后,在左侧树中选择“GenymobileGenymotion”项,点击“Browser”,选择本地Genymobile安装路径下的“Genymotion”路径,点击确定。九、 下载、导入虚拟机由于我的环境没有网络因此需要下载离线Genymobile虚拟机包(XX云盘中有),如果有网络可以通过“Add”新建虚拟机;下载后使用“Oracle VM VirtualBox”将该虚拟机导入,导入后在Genymobile工具中即可看到该模拟器。一十、 Eclipse打开模拟器在Eclipse中点击快捷菜单中的Genymobile图标或按钮Ctr

6、l+6即可打开模拟器选择窗口,选中某一模拟器,点击Start即可启动该模拟器。一十一、 导入Appium支撑包(java-client-3.3.0.jar)使用Maven库导入appium支撑java-client包,在POM.xml文件中输入以下内容: io.appium java-client 3.3.0 注:如果是手动下载java-client-3.3.0.jar包,也可将其配置到Maven库中,方法如下:方法一、 Maven如何手动添加jar包到本地Maven仓库Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对

7、象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。曾是Jakarta项目的子项目,现为独立Apache项目。大家肯定遇到过想在pom文件中加入自己开发的依赖包,这些包肯定是不是在Maven仓库(http:/repo1.maven.org/maven2/)的。那我们怎么将那些不存在Maven仓库中的包加入到本地的Maven库中呢?很简单。这里以IKAnalyzer.jar包为例进行讲解。第一步:将IKAnalyzer.jar包存放在一个文件夹中,比如mylib文件夹第二步:建立一个IKAnalyzer.jar包相关的pom.xml文件,需要在pom

8、.xml文件中定义其maven坐标及其相应的依赖代码即可,同样将pom文件存放在上述jar文件同一文件夹下,IKAnalyzer.jar坐标及依赖代码如下: 4.0.0 org.wltea.ik-analyzer ik-analyzer 3.2.8 IK Analyzer 3 A dictionary and grammar-based Chinese segmenter org.apache.lucene lucene-core 3.0.3 true org.apache.solr solr-core 1.4.1 true junit junit 3.8.2 test org.apache.

9、lucene lucene-analyzers 3.0.3 test org.apache.lucene lucene-smartcn 3.0.3 test 第三步:打开CMD,进入到mylib文件夹,运行下面的命令:mvn install:install-file -Dfile=IKAnalyzer3.2.8.jar -DgroupId=org.wltea.ik-analyzer -DartifactId=ik-analyzer -Dversion=3.2.8 -Dpackaging=jar 方法二、这样你就可以将IKAnalyzer3.2.8.jar安装到您本地的Maven仓库中了,你可以

10、根据你的实际情况修改上面的参数即可。之后你可以在pom.xml文件中通过以下依赖在项目中引入自定义的jar包,如下: org.wltea.ik-analyzer ik-analyzer 3.2.8 当然你也可以不将IKAnalyzer3.2.8.jar发布到您本地的Maven库中,而是通过下面的配置引入,效果和上面的差不多: org.wltea IKAnalyzer 3.2.8 C:UsersyangpingDesktopaIKAnalyzer3.2.8.jar一十二、 获取android app的Activity有时候在appium的Desired Capabilities中需要指定被测ap

11、p的appActivity,下面的方法可能会对你有所帮助。方法一如有你有待测项目的源码,那么直接查看源码就好。如果没有,那么请联系有源码的同学,这是推荐方法。方法二如果你没有代码,那么可以反编译该app。这里将用到2个工具,分别是dex2jar和jd-gui。你可以在这里下载目前为止的最新版本以及示例apk。我们以工具包里的ContactManager.apk为例,简单介绍一下反编译的流程。 1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex; 2,解压dex2jar-0.0.9.15.zip,并从命令行进入该文件夹; 3,

12、运行命令d2j-dex2jar.bat path_toclasses.dex在当前文件夹下得到classes-dex2jar.jar; 4,解压jd-gui-0.3.6.windows.zip得到文件jd-gui.exe; 5,使用jd-gui.exe打开classes-dex2jar.jar;嗯,好了,可以尽情欣赏了。上图。上图所示的ContactManager就是待测app的main activity。方法三使用log查看大法(嗯,windows上没grep不幸福,好在有powershell的Select-String,可以拿来勉强一用),直接搬砖。 a、启动待测apk b、在DOS命令行

13、中开启日志输出:adb logcatD:/log.txt c、关闭日志输出:ctrl+c d、查看日志 找寻:Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859msappPackage = com.mm.android.hsyappActivity = .ui.LoginActivity一十三、 元素定位下面主要是针对自己的了解和学习,简单的总结下关于Appium native APP上的一些元素定位方法的使用以及通过UI Automator Viewer定位页面以后,如果从上面定位到你想使用的元素。元素定位工具:.adt-bundle

14、-windows-x86_64-20140321sdktoolsuiautomatorviewer.bat启动uiautomatorviewer.bat,我们能得到入下图所示的 点击红色图标,Device Screenshot with Compressed Hierarchy来获取当前模拟器或真机中当前的页面,从而能获取到对应的 对象元素值,它也是分为Classname、Id、xpath等等来进行元素定位的,如果你熟悉Selenium,那么这块就不会陌生了,因为Appium仅仅只是在Selenium2的基础上封装了一层Appium Server,方便来和移动端进行交互。 具体的元素定位,接下

15、来继续总结。 以淘宝为例,来进行元素的定位。打开UI Automator ViewerAppium和Webdriver有一点区别在元素定位的方法上,见下面代码:/有点需要注意的是,findElementByAccessibilityId在Selenium上是不带这个方法的,所以只能用Appium提供的封装方法driver.findElementByAccessibilityId(); /Selenium不带这个方法/下面的形式Appium都能使用 driver.findElementByClassName(calssName); driver.findElement(By.className(

16、className);FindElement By ID 针对taobao,购物车的定位。通过ID定位,打开UIAutomator Viewer, node detail下找到标签是“resource-id”com.taobao.taobao:id/tv_title”driver.findElementById(com.taobao.taobao:id/tv_title);FindElement By Classname针对taobao,购物车的定位:通过classname定位(一般情况下,最好不要通过classname来进行元素的定位,避免出现重复),打开UI Automator Viewe

17、r, node detail下找到标签是“class”“android.widget.TextView”driver.findElementByClassName(android.widget.TextView);FindElement By Name针对taobao,购物车的定位:通过name定位,打开UI Automator Viewer, node detail下找到标签是“text”“购物车”driver.findElementByName(购物车);FindElement By Accessibility Id针对谷歌浏览器打开的XX首页,搜索按钮的定位:通过Accessibilit

18、yId定位,打开UI Automator Viewer, node detail下找到标签是“content-desc”“XX一下”driver.findElementByAccessibilityId(XX一下);一十四、 实例(通讯录管理工具)以下是通讯录管理工具的实例(必须部署有TestNG):package AndroidTest;import io.appium.java_client.android.AndroidDriver;import .URL;import java.util.List;import junit.framework.Assert;import org.ope

19、nqa.selenium.By;import org.openqa.selenium.WebElement;import org.openqa.selenium.remote.CapabilityType;import org.openqa.selenium.remote.DesiredCapabilities;import org.testng.annotations.AfterTest;import org.testng.annotations.BeforeTest;import org.testng.annotations.Test;public class Contacts priva

20、te AndroidDriver driver; BeforeTest public void setUp() throws Exception / 设置apk的路径 /* * File classpathRoot = new File(System.getProperty(user.dir); File * appDir = new File(classpathRoot, apps); File app = new File(appDir, * ContactManager.apk); */ / 设置自动化相关参数 DesiredCapabilities capabilities = new

21、 DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ); capabilities.setCapability(platformName, Android); capabilities.setCapability(deviceName, Android Emulator); / 设置安卓系统版本 capabilities.setCapability(platformVersion, 4.4.2); / 设置apk路径 / capabilities.setCapability(app, a

22、pp.getAbsolutePath(); / 设置app的主包名和主类名 capabilities.setCapability(appPackage, com.android.contacts); capabilities.setCapability(appActivity, .activities.PeopleActivity); / 初始化 driver = new AndroidDriver(new URL(http:/127.0.0.1:4723/wd/hub), capabilities); / 新建联系人 Test public void createContact() /没有联

23、系人时 创建联系人 / driver.findElement(By.id(com.android.contacts:id/create_contact_button).click(); /已创建过联系人后点新增联系人 driver.findElement(By.id(com.android.contacts:id/menu_add_contact).click(); / 获取所有EditText元素 List textFieldsList = driver.findElementsByClassName(android.widget.EditText); /输入 姓名 textFieldsLi

24、st.get(0).sendKeys(dongkang); /输入电话 textFieldsList.get(1).sendKeys(11121252121); /输入邮箱 textFieldsList.get(2).sendKeys(Test); /输入地址 textFieldsList.get(3).sendKeys(ZhongGuanCunRuanJianYuan); /点击完成 driver.findElement(By.id(com.android.contacts:id/save_menu_item).click(); /验证是否新增成功 Assert.assertTrue(dri

25、ver.findElement(By.id(com.android.contacts:id/name).getText().equals(dongkang14); / 导出通讯录 Test public void daoChu() / 更多按钮 List imageButtonList = driver.findElementsByClassName(android.widget.ImageButton); imageButtonList.get(0).click(); / 点 导入/导出 driver.findElementsByClassName(android.widget.TextVi

26、ew).get(4).click(); / 点击 导出通讯录 List textViewList = driver.findElementsByClassName(android.widget.TextView); textViewList.get(2).click(); / 确定导出 driver.findElement(By.id(android:id/button1).click(); / 滑动状态栏,查看通知信息 driver.swipe(0, 0, 100, 100, 2); / 验证是否导出成功 Assert.assertTrue(driver.findElementsByClassName(android.widget.TextView).get(2).getText().contains(已顺利导出); AfterTest public void tearDown() throws Exception driver.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1