appium基础

appium介绍

概念:
  • Appium是一个开源的测试自动化框架,可以与原生的、混合的和移动的web应用
    程序一起使用。
支持平台
  • ios
    • xcuitest iOS9.3以上
  • android
    • uiautomator2/uiautomator
    • Espresso
    • 命令:adb shell uiautomator --help
  • windows
    • WinAppDriver
  • Mac
    • Mac Driver
  • Web端
    • 移动web页面
3种App
  • 原生,手机系统原生的组件和原生的开发语言实现的app
    • android,java/kotlin
    • ios,oc/swift
  • web
    • HTML,CSS,JS
  • 混合应用
    • 原生应用兼容性差,响应快,表现流畅,web应用兼容性差,响应慢
    • 原生的负责核心内容,简单的模块用web做
    • Hybrid App
    • Native 和web整合到一起
设计哲学
  • 你没有必要为了自动化而重新编译你的应用或者以任何方式修改他
    • Android/IOS系统自带框架
  • 你不应该被限制在特定的语言或框架上来编写运行测试
    • API调用
  • 移动自动化框架在自动化接口方面不应该重新造轮子
    • WebDriver
  • 移动端自动化框架应该开源,不但在名义上而且在精神和实践上都要实至名归
协议
  • webdriver 的json Wire Protocol
  • WebDriver已经成为自动化Web浏览器的事实上的标准,并且是W3C工作草案
  • Appium在webdriver上提出了mobile json wire Protocol
原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lF6Ga2ot-1611241601623)(8b7b260e7b8d064aa27a60c1645340a.png "重点")]

相关资料
  • APPium:http://appium.io/docs
  • Appium Pro:htttps://appiumpro.com/editions
  • Appium python Docs:https://appium.github.io/python-client-sphinx
  • Appium Caps:http://appium.io/docs/en/writing-running-appium/caps/
常用caps
  • platformName 必选

  • deviceName 必选

  • app 安装路径

  • appActivity 页面title

    • aapt dump badging apk 路径
      • launchable-activity:
  • appPackage 包名

    • aapt dump badging apk 路径
    • adb shell am monitor
    • adb logcat | findStr -i displayed
  • platformVersion 可选,版本不匹配会报错

  • noReset 不重置,一般是ture

  • automationName 框架名称

  • browserName 浏览器名称

  • autoWebview 开机进入webview模式(混合应用)

  • chromedriverExecutable Chromedriver版本

  • chromedriverExecutableDir

  • unicodeKeyboard 切换中文键盘,输入中文需要设为ture

  • resetKeyboard 重启键盘,输入中文需要设为ture

  • autoGrantPermissions 自动授权(各种权限)

  • adb shell pm list package 获取所有已安装的应用包名

  • adb shell cmd package

  • adb shell dumpsys activity | find “mFocusedActivity” 查看前台页面的名称

  • adb shell “dumpsys window | grep mCurrentFocus” 查看Windows当前的包名和activity

appuim运行原理
  • 1.python向selenium服务器端发送一条请求,创建一个会话对象。
    • 接收caps中的信息
  • 2.selenium server 接收到数据,对数据进行解析和验证
  • 查找adb,如果你的adb找不到(没有添加到环境变量),就会报错
  • 通过adb获取设备
  • 确认手机sdk api版本是否兼容
  • adb操作启动app
  • uiautomator 操作
  • 返回操作结果响应
版本匹配

appium1.3默认是uiautomato1
appium1.4以上是uiautomato2

selenium和appium的关系
  • chrom()类和Remote()类都是同一个父类webdriver
  • chrom()首先初始化一个服务,然后启动一个客户端去访问接口
  • appium()除了继承selenium方法,还自己封装了移动端特有的方法
  • appium()中BY是MoblieBy
常见问题
  • uiautomator无法启动
    • 解决方案
      • adb shell pm list package/instrumentation | grep uiautomator
      • adb uninstall io.appium.uiautomator2.server
      • adb uninstall io.appium.uiautomator2.server.test
      • 重新运行
      • 再不行就重新启动appium或模拟器或电脑
  • 脚本运行结束后一定要加driver.quit()
    • 不加会造成上次会话未推出,下次会话打开,出现冲突
  • adb 端口占用adb启动不了
    • netstat -ano | findstr “5037”
    • taskkill -f -pid 进程号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值