关于appium+模拟器+idea的细谈
之前转载的虫师的appium移动端自动化的文章,前边appium环境的搭建,这里就不过多介绍了,不明白的小伙伴可以返回去看,后边有不会的步骤,
也都去看,总之,两篇文章结合看!
那么, 有言在先,我是推荐用真机来做测试的,不会出太多问题。
关于移动端自动化测试-Appium的搭建
这篇文章。
前边我就简化了,重点在后边,因为我发现写文章的人都喜欢写一半,后边连接模拟器的步骤根本没人放在一起写,不负责啊!
SDK安装及环境变量的配置:

打不开国外的网站?没关系,我就是这么负责,来~国内的:
http://www.androiddevtools.cn/
这里有你需要的几乎所有Android自动化用的东西,请用ctrl+F查找你要的东西
比如:
再比如:
然后是环境变量:
ANDROID_HOME : D:\Tools\android\android-sdk-windows (你的sdk根目录)
$ANDROID_AVD_HOME : 同上(如果你用avd的模拟器,这个一定要配置)
Path : %ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools; (注意前后分号)
接着,我们安装Appium(步骤看另一篇文章),环境变量的配置如下:
Path : D:\Tools\Appium\node_modules\.bin; (你的Appium安装目录下的node_modules\.bin目录)
再来,模拟器的安装,这里我选择了夜神模拟器,当然,你也可以使用 Genymotion(也是国外的网站,需要注册使用-不要去看国内中文网,毛用没有,都是外链)
模拟器的安装我就不说了,这个都不会,回去种地都费劲吧?
安装好模拟器以后,依然要配置环境变量:
Path中添加: C:\Programfile\Nox\bin; (模拟器的bin目录)
然后进入这个目录下,启动cmd,输入 anox_adb.exe connect 127.0.0.1:62001(为了adb连接模拟器)
C:\Users\leon>adb version
Android Debug Bridge version 1.0.
Revision 0e9850346394-android C:\Users\leon>nox_adb version
Android Debug Bridge version 1.0.
可能会出现以上或者以下的情况,那就是因为你的adb版本和模拟器中的adb版本不同,而且环境变量配置有问题,所以保证环境变量按照上边写的配置好以后,看下边

来,将你的sdk\platform-tools目录下的adb.exe复制出来,改名为anox_adb.exe,然后替换掉模拟器的bin目录下的同名文件!
再次进入这个目录下,启动cmd,输入 anox_adb.exe connect 127.0.0.1:62001
如何?连接成功了吧!
那么,再继续,输入adb devices,看看是不是连接成功了?

记下这个,这就是你的udid,等下编写脚本的时候会用到。
继续,命令行里开启Appium,给大家一条有用的开启命令,防止后期出现各种连接和脚本执行问题!
appium -a 127.0.0.1 -p 4723 --no-reset --session-override
至此,我们的环境搭建彻底完成!
接下来,福利时间:
编写脚本的时候,如何获取你的app信息?我来介绍几个你需要的东西,先看图

(就打码~)
介绍一下,标记的信息,如何填写和查找!
deviceName:这个是设备名称,可以选择模拟器设置的属性中的IMEI填入,或者手机名称
udid:这里填写上边让你记住的东西,如果使用其他模拟器或者真机等连接,同样的位置,记下就行
appPackage和appActivity,教大家一个相对简单的方法来获取,当然也可以采取反编译(app压缩成rar或者zip,然后打开看xml文件)的手段,总之,方法很多!
进入sdk\build-tools\版本号 的目录下,cmd命令:
apt dump badging C:\apps\xxxxx.apk (路径\app包名)

看下,上边标记的就是我们要的两个值!
至于下边的URL是固定格式,不要研究为什么(王八的屁股——龟腚)!
完成,以上你可以开始自己的移动端自动化之旅了~~
关于appium+模拟器+idea的细谈的更多相关文章
- Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解
在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...
- Spark RDD概念学习系列之细谈RDD的弹性(十六)
细谈RDD的弹性 所谓,弹性,是指在内存不够时可以与磁盘进行交换. 弹性之一:自动的进行内存和磁盘数据存储的切换 弹性之二:基于Lineage(血缘)的高效容错 弹性之三:Task如果失败会 ...
- 细谈getRequestDispatcher()与sendRedirect()的区别
问题?细谈getRequestDispatcher()与sendRedirect()的区别 首先我们要知道: (1)request.getRequestDispatcher()是请求转发,前后页面共享 ...
- JAVA基础细谈
JAVA基础细谈 一. 源文件和编译后的类文件 源文件的本质就是程序文件,是程序员编写,是人看的.而编译后的类文件是给电脑看的文件.一个类就是一个文件,无论这个类写在哪里,编译以后都是一个文件 ...
- Css的使用细谈
Css的使用细谈 Css可以通过简单的更改CSS文件,改变网页的整体表现形式,可以减少我们的工作量,所以她是每一个网页设计人员的必修课. Css简介 (1) CSS是用于布局 ...
- 细谈HTML解析模块
细谈HTML解析模块 Html在网页中所占的位置,用一个简单直观的图给展示一下:
- 细谈unity资源管理的设计
一.概要 本文主要说说Unity是如何管理的,基于何种方式,基于这种管理方式,又该如何规划资源管理,以及构建bundle,是后面需要详细讨论的. 二.Unity的资源管理方式 2.1 资源分类 uni ...
- 细谈unity资源加载和卸载
转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 在了解unity的资源管理方式之后,接下来细谈一下Unity的资源是如何从磁盘中加载到运行时的内存中,以及又是如 ...
- 【细谈Java并发】谈谈LinkedBlockingQueue(转)
最近在看concurrent包的知识,看到LinkedBlockingQueue,发现一篇好文推荐给大家.原文地址:[细谈Java并发]谈谈LinkedBlockingQueue 1.简介 上篇我们介 ...
随机推荐
- c++ 库函数返回的字符串指针是否需要手动释放
#include <stdio.h> char * tmpnam(char *s); tmpnam函数返回一个不与任何已存在文件同名的有效文件名,如果字符串s不为空,文件名也会写入它.对t ...
- 用户权限模块之oauth2.0
主要是在springsecurity上面扩展即可,所以内容也是基于上一个, sql: CREATE TABLE `auth_access_token` ( `id` int(11) NOT NULL ...
- asp.net mvc中html helper的一大优势
刚上手这个框架,发现其中的html helper用起来很方便,让我们这些从web form 过渡来的coder有一种使用控件的快感,嘻嘻! 言归正传,我要说的是在使用它时,系统会自动执行表单的现场恢复 ...
- Asp.net MVC 如何对所有用户输入的字符串字段做Trim处理
经常需要对用户输入的数据在插入数据库或者判断之前做Trim处理,针对每个ViewModel的字段各自做处理是我们一般的想法.最近调查发现其实也可以一次性实现的. MVC4.6中实现方式 1,实现IMo ...
- js数组及数组应用(冒泡和二分,遍历输出)
一.定义:1)var arr=new Array(); 加数据:arr[0]=1; 2)定义同时赋值:var arr=new Array(1,2,3,4,5); 3)调用:var arr=new Ar ...
- .Net中关于等于的故事(一)
在.Net框架中,如果您查看所有类型的的基类:System.Object类,将找到如下4个与相等判断的方法: static Equals() virtual Equals() static Refer ...
- 【转载】Static 关键字的作用
原始日期:2016-07-16 17:53 一 普通的static关键字 1. 静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变 ...
- ASP.NET MVC Bundling and RequireJS
关于ASP.NET MVC Bundling and RequireJS的取舍问题,最近比较困惑,我希望有一种方式可以结合两者的优点.作为.NET程序员,难道你没有过这方面的困惑吗? 因为我感觉各自都 ...
- CSS样式之选择器
一.CSS选择器构成 CSS选择器是你想要改变样式的html元素,通俗的说,选择器可以改变html文件中标签的属性,这些属性可以是颜色,背景图,字体等.每个选择器有一条或多条声明,可以同时改变某个标签 ...
- Python 文件对象
Python 文件对象 1) 内置函数 open() 用于打开和创建文件对象 open(name,[,mode[,bufsize]]) 文件名.模式.缓冲区参数 mode: r 只读 w 写入 a 附 ...