Appium-入门实例1

参考:(https://blog.csdn.net/zh175578809/article/details/76862590)

第一步:启动虚拟设备

   在运行App之前,首先需要创建一个Android模拟器,也可以使用真机来运行,效果更佳。

进到Android SDK的目录,双击运行AVD Manager.exe

  运行 :software/adt/SDK Manager.exe,点击Tools,选择Manager AVDS,点击Create创建一个安卓模拟器

遇到的问题:

  1. 当选择Android 4.4W.2-API20时,没有系统镜像文件,没有找到相应解决方案
  2. 替代方案:点击Packages,选择Reload ,切换到Tools,发现多了很多其他的版本或工具,选择其中,勾选之后点击install  --本次学习选用的是4.4.2(API19)
  3. 重启之后,点击Create,创建一个模拟器,点击ok

     

  4、点击OK之后,选中改虚拟设备,点击start

     

  5、首次启动,时间可能会比较慢。等待一段时间后的界面

     

第二步:需要获取应用的packageName 和activityName

  在编写测试脚本之前,需要知道被测apk的packageName和要启动的activityName,如果是第三方的apk,有现成的可以直接应用。这里是模拟器内置的应用,需要把apk从模拟器中导出来,一般模拟器中的预置的应用都放在手机的system/app目录中,使用adb shell 命令进入目录查看计算器应用的apk名称

》》adb shell

》》cd system/app

》》ls *.apk

》》db pull system/app/Calculator.apk d:/

使用ls *.apk命令列出所有的apk,查找到apk文件为Calculator.apk,然后使用adb pull system/app/Calculator.apk d:/命令将文件导出到电脑中。

遇到问题:5038端口被占用

  

处理方案1:

  1、  查看adb bind 的是哪个端口(图中标明端口被占用)

  

  2、  查看那些进程使用该端口 netstat -aon|findstr 5037

  

  3、  tasklist /fi "PID eq 12444"

  

 

  4、  强制退出进程 (taskkill /pid 5008 /f)

  

  5、  adb start-server 重启adb

方案2 :

  1、更改adb的端口,在环境配置中增加  ANDROID_ADB_SERVER_PORT

   

  2、  检查5038端口是否有被占用,杀掉进程

  3、  adb devices –检查设备是否连接上 (如果提示offline,重新启动虚拟器试一下,目前不知道具体方案)

处理完上面的事情,接着进行以下操作:

  设备能够连接之后,adb shell 进入终端

  检查apk的名字以及路径,su,修改文件为 chmod 777

  导出apk到电脑上

  退出终端模式

  》》db pull system/app/Calculator.apk .

 

  如果遇到Read-only file system 的报错信息

  adb remount(它的意思是将设备改为可读可写。)

  看到remount succeeded后,再db pull system/app/Calculator.apk .

 

然后

         将apk导出后,Android SDK中有一个aapt的工具可以用来查看应用的包名和要启动的activity名称,工具在SDK的build-tools目录下,命令格式为”aapt dump badging apk路径”

  

PackageName:

  

在输入快到结尾的时候,有一行包含应用启动时打开的activity名称:

  

 

第三步:编写测试脚本(参考了网上的例子:一个计算器的自动执行计算的例子来感受一下appium的工作)

from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'emulator-5554',
    'platformVersion': '4.2',

  'appPackage': 'com.android.calculator2',
  'appActivity': 'com.android.calculator2.Calculator'
    }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.find_element_by_name('7').click()
driver.find_element_by_name('+').click()
driver.find_element_by_name('8').click()
driver.find_element_by_name('=').click()

第四,运行脚本

遇到问题:因为Appium-Python-Client,没有完全处理好

  

处理方案:去\Python35\Lib\site-packages\selenium\common找到exceptions.py添加下面这个类就行了

  

Python exceptions.py –运行一下这个脚本

再次检查Appium-Python-Client安装成功

  

 

 

 

 

 

 

  

 

posted @ 2019-07-24 10:11  依米花开了  阅读(666)  评论(0编辑  收藏  举报