手机操作的动作比较繁琐,作为一个程序猿,本着能自动化,就不会用手动的方式,基于目前的资源情况,手上没有多余的手机进行测试,安卓本身自带的虚拟机性能比较差,就想通过mumu模拟器进行手机的自动化操作。
1 基本环境安装
1.1 java
在控制台输入:java -version
出现下面的内容就安装成功
java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
1.2 安卓的sdk
1.2.1 设置ANDROID_HOME的环境变量
1.2.2 path添加两个变量,将以下箭头所指的两个文件路径添加到path
image.png1.2.3 在命令行里面输入:adb devices,显示如下,就表示成功:
List of devices attached
1.3 安装node
在控制台输入:node -v 显示如下,表示成功
v10.12.0
1.4 安装appium
直接安装后,打开显示如下,如果直接安装不了,在控制台里面输入进行安装,打开后显示如下,表示安装成
image.png1.5 python环境
安装后在控制输入python后,显示如下,表示成功:
C:\Users\dell>python
Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
1.6 Appium-Python-Client
直接用:pip install Appium-Python-Client 进行安装
1.7 mumu模拟器
直接下载安装就可以
2 在模拟器自动启动qq
启动的代码如下,下面会详细讲解每个参数是怎么来的
desired_caps = {
'platformName': 'Android',
'deviceName': '127.0.0.1:7555',
'platformVersion': '4.4.4',
# apk包名
'appPackage': 'com.tencent.mobileqq',
# apk的launcherActivity
'appActivity': 'com.tencent.mobileqq.activity.SplashActivity'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
2.1 platformName
由于我们是连接安卓的虚拟机,直接填写:Android
2.2 deviceName
2.2.1 连接mumu虚拟机
这个是设备名称,因为我们是通过安卓的adb连接虚拟机的,需要在控制台执行如下的命令,让adb连接上虚拟机:
adb connect 127.0.0.1:7555
7555 的端口是在mumu模拟器的安装目录:emulator\nemu\vms\myandrovm_vbox86 下面的myandrovm_vbox86.nemu文件里面配置的,具体的配置如下图
image.png
2.2.1 获取deviceName
执行了上面的连接模拟器的命令后,在cmd控制台输入:adb devices,查看目前连接的虚拟机,显示如下,图片里面的"127.0.0.1:7555" 就是设备的名称
List of devices attached
127.0.0.1:7555 device
2.3 platformVersion
直接在mumu虚拟机里面的“设置”-->"关于平板电脑" 里面有显示安卓的版本
image.png
2.4 appPackage,appActivity
这两个表示我们需求启动的app的信息,由于我已经在mumu模拟器里面安装了qq程序,所以是通过这种方式进行启动程序,如果是没有安装的可以通过"app"属性指定要安装的程序的位置。
可以通过安卓的sdk目录下:android-sdk\build-tools\28.0.3\ 的aapt.exe这个可以获取我们要的数据。截取部分的内容如下,其中的package里面对应的name属性的指就是appPackage要填写的指
D:\test_apk>aapt dump badging mobileqq_android.apk
package: name='com.tencent.mobileqq' versionCode='936' versionName='7.8.5'
install-location:'auto'
sdkVersion:'15'
targetSdkVersion:'25'
往下面点继续看,有如下的信息,launchable-activity对应的name属性的值就是appActivity需要填写的指
uses-library-not-required:'com.sec.android.app.multiwindow'
launchable-activity: name='com.tencent.mobileqq.activity.SplashActivity' label='QQ' icon=''
uses-library-not-required:'com.google.android.media.effects'
uses-library-not-required:'com.motorola.hardware.frontcamera'
2.5 连接appium 127.0.0.1:4723
对应的地址,端口是appium启动的时候,填写的地址,端口,如下图
image.png
3. 启动
根据前面的环境配置,操作后,运行脚本,在虚拟机里面可以启动qq,并且看到虚拟机里面多了如下两个图标,就表示成功。
image.png关注公众号
网友评论