Appium入门

爷,独闯天下 提交于 2021-01-20 09:19:55

一、appium的特点    

1、Appium主流的移动自动化工具,因为封装了XCUITest(IOS的自动化框架)和UIAutomator(安卓的自动化框架) ,所以支持android和ios的自动化

 

2、appium支持Web应用(Web app),支持原生应用(Native App)以及支持混合应用(Hybrid App)

3、appium支持多种语言:python,java,ruby等

4、总结借用一张图:

 

二、环境搭建

1. jdk(省略)

2.Android-sdk:http://www.androiddevtools.cn/,直接下载adt/Android studio完美集成,配置环境变量(省)

3.Python:

4.Node.js

  安装node.js时,选取5.0以上的版本,这样在安装appium的,npm会自动下载appium所需要的依赖包。版本过低会所以出现各种问题。

5.appium:

  官网 :  http://appium.io/

  A、npm安装

  npm install -g appium

  B、安装

  安装包安装:下载安装Appium-desktophttp://appium.io/ )客户端,双击dmg安装

  或者: 

  > npm install -g appium  #  get  appium
  > npm install wd         #  get  appium client
  > appium &               # start appium
  > node your-appium-test.js
  验证安装

  使用appium-doctor校验Appium的依赖环境是否正确配置,使用下面命令安装appium-doctor

  npm install -g appium-doctor

  检测命令:appium-doctor --ios校验ios环境,使用appium-doctor --android校验安卓环境

 

6.Appium-python-Client:pip install Appium-Python-Client

7.pycharm

三、测试:

1、连接手机成功

2、启动服务器:命令行:appium &  /或者直接启动appium桌面版

3、python测试代码

from appium import webdriver
import time

desired_caps = {
'platformName': 'Android',
'deviceName': '91QECPF5US7G',
'platformVersion': '5.1',
         #将要测试app的安装包放到自己电脑上执行安装或启动,
如果不是从安装开始,则不是必填项,可以由下面红色的两句直接启动
'app':'C:\\Users\\shuchengxiang\\Desktop\\shoujibaidu_25580288.apk',
'appPackage': 'com.baidu.searchbox', #红色部分如何获取下面讲解
'appActivity': 'MainActivity',
'unicodeKeyboard': True, #此两行是为了解决字符输入不正确的问题
'resetKeyboard': True #运行完成后重置软键盘的状态  
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").clear()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").send_keys('appium测试')

driver.find_element_by_id("float_search_or_cancel").click()
driver.find_element_by_id("floating_action_button").click()

driver.quit()

获取appPackage和appActivity:
1、在之前配置的android SDK文件中找到这个程序,并双击打开

在连好手机的情况下点击这个按钮,界面上就会显示出当前手机的页面(如果是锁屏状态则显示黑屏)

界面加载出来之后,加入我们想定位百度一下的文本框,那么吧光标移动到上面点击一下即可,下图框出的部分为我们需要的信息:

通过这个信息我们知道,对于这个包,上方desired_caps字典中appPackage的值应填写为 com.baidu.search

而代码中的定位部分的id为com.baidu.searchbox:id/baidu_searchbox,或填写baidu_searchbox

例:driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()

 

2、appActivity的获取:

先让百度在手机中运行起来,然后在cmd中输入:adb shell dumpsys activity activities (获取当前所有的活动),搜索结果如下:

 上方将所有进程显示出来,活动进程很多比较难找,这里知道package名称,可以在结果中进行查找,得到appActivity的值为MainActivity

关于这里的定位还有其他方法,详情参看大神的博客:http://blog.csdn.net/shyu1989/article/details/51730214

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!