一个做测试的摄影师

  • Appium 简介
    • 什么是appium?
    • Appium可以测试的app类型
    • 使用Appium的被测APP运行平台
      • 测试对象App运行环境:
      • 测试程序语言:
      • 测试程序运行平台:
  • Appium自动化原理
    • Appium架构图
    • 手机端驱动程序介绍
    • 安卓底层自动化架构
  • 自动化环境搭建
    • 环境安装-win/ android
    • Appium相关环境安装
    • 1. 安装1-客户端.
    • 2. 安装2-服务端
    • 3. 安装3-电脑端环境
    • 4. 安装4-电脑端环境
    • 5安装5-手机端设置
    • 环境搭建小结
  • 代码实例(验证环境搭建)
    • 快速开始
      • 1. 保证手机连接正常 cmd命令 `adb devices` 和`adb devices -l`
      • 2. 安装好被测应用
      • 3. 启动Appium
      • 4. 打开指定代码,更改手机版本号
    • Appium 脚本配置信息
    • webdriver.Remote()的作用,脚本首次运行手机自动新增两个APP
      • 配置文件及调用app完整代码
    • 无线连接步骤
  • 在网课上学习 自动化测试,分享一下学习笔记,大家一起学习,大家督促督促我哦,有点懒……
  • 第一次在CSDN上写文章,希望和大家一起进步,有啥事评论留言哦

Appium 简介

espresso 是白盒测试框架, 通常是给开发人员用的,

monkey 是任意的在应用界面乱点乱划,适合压力测试

monkeyrunner 有点类似UIAutomator,但是 通常是固定的根据坐标点击

什么是appium?

➢appium是开源、跨平台、多语言支持的 移动应用(客户端)自动化工具.
➢通俗来说是手机app自动化工具

Appium可以测试的app类型

  • 原生app(Android/ios):指从技术角度,所有控件由平台自身代码开发而成,例如ios由Objective-C开发,安卓由java、Kotlin(初探)开发,如手机自带的计算器
  • 混合(Hybri)app(H5):混合app主要是指 它的一部分是原生界面和代码,而另一部分是内嵌web app,可以打开网页浏览的app都是 混合app。外壳是原生应用,内容是由网页组成,如支付宝、淘宝、美团
    • 比如微信的sms界面是原生,原生代码实现的。
    • 而打开某个朋友圈,或者别人发来的的链接部分则是 web部分,内嵌了一个浏览器内核,由浏览器内核实现的。
  • 移动web app:即手机网页,如淘宝商家活动发短信带的链接,这种应用的客户端在手机上浏览器上展示,是B/S的。web app 只能运行在浏览器里,靠浏览器解释执行。资源一般都在网络上,它其实就是一个触屏版的网站。
    3的架构是B/S,1、2是C/S
    自带:是系统自带,可以是不同类型

使用Appium的被测APP运行平台

  • iOS (就是苹果手机、平板、甚至iWatch等移动设备上运行的app)
  • Android(就是安卓手机、平板、等移动设备上运行的app)
  • Windows (就是Widnows手机、平板等移动设备上运行的app,但是这种平台使用人数目前太少,少到基本可以忽略不计了,)
  • FirefoxOS (更少,更加可以忽略不计了)
    Tips:IS0应用自动化,需要在mac系统上运行app iumserver,没有mac不能进行ios自动化,苹果是闭环的

测试对象App运行环境:

真实设备:苹果安卓的手机、平板等移动设备
模拟器:则是通过在PC或者Mac电脑上的软件虚拟的 苹果安卓的手机、平板等移动设备。 主要是方便我们测试用的。

测试程序语言:

appium支持多种程序语言开发测试程序,基本上Selenium支持的开发语言,appium都支持。
如:Python、java、Ruby、js、php、c#

测试程序运行平台:

appium支持测试程序运行在多种平台上:Windows、Linux、Mac OS

Appium自动化原理

Appium架构图


整体分为以下几个部分

  1. **客户端(Customer)C端:**可以看作为 测试脚本
  2. **服务端(Appium Server)S端:**测试脚本 主要是和Appium Server进行通信,对于手机控件元件的操作,将这些api转化成的指令发送给Appium Server,Appium Server再做进一步的处理来操作手机应用;
  3. **测试平台SDK:**Appium Server和手机应用间的交互以测试平台SDK为媒介;SDK种类很多,在电脑上下载对应平台的SDK才能控制手机应用;例如安卓平台有安卓平台的SDK,SDK可以理解为开发包,SDK包含了adb、元素定位工具等用于传达指令
  4. 手机端自动化驱动程序: SDK只能传达指令,手机端需要安装相应的驱动程序,有驱动程后,Appium Server直接和驱动进行通讯

手机端驱动程序介绍

  1. 苹果
    iOS 9.3 and above: Apple’ s: XCUITest
    iOS 9.3 and lower: Apple’ s :UIAutomation
  2. 安卓
    Android 4.2+: Google’ s:UiAutomator/UiAutomator2驱动只针对于安卓4.2以上
    Windows:Microsoft’ s WinAppDriver

**UiAutomator:**安卓系统自带,若手机厂商自主定制化不深那么会存在,不需安装
**UiAutomator2:**是Appium将UiAutomator优化之后的一个版本,使用时需在手机上安装,使用较多,但有的手机不匹配
遇到问题时,可以切换驱动来解决问题

安卓底层自动化架构

自动化环境搭建

环境安装-win/ android

◆安卓手机(4.2+,6.0+) 一台(真机演示
◆计算机配置(wi ndows为例)
➢Win7以上,建议Win10
➢内存最小4G推荐8G
➢硬盘可用空间: 4G以上
➢分辨率: 1280* 800以上

Appium相关环境安装

1. 安装1-客户端.

◆安装Appium Python Client包
pip install Appium-Python-Client
要确保安装匹配版本的selenium和appium
pip install selenium -U

2. 安装2-服务端

◆Appium 是一个服务,Appium由nodejs编写,nodejs安装复杂官网推荐直接安装 Appium Desktop即可,**安装Appium Desktop(windows版本)推荐1.13.0版本或1.17.0版本**,其内部集成nodejs的环境并且内含插件工具(元素定位工具等)
[Appium官网最新版1.17.0](http://github.com/applum/appium-desktop/releases/tag/v1.17.1-1)

3. 安装3-电脑端环境

安装JDK1.8(必须1.8)
➢下载:云盘路径,1.8版本
➢安装:自行安装即可
◆配置JAVA HOME环境变量
➢JDK根目录设置为JAVA HOME

4. 安装4-电脑端环境

**◆安装AndroidSDK:**下载:云盘路径➢安装:解压缩到本地即可
◆配置ANDROID HOME环境变量: 设置为sdk根目录的路径,
◆配置Path: 可以不配置, sdk\platform-tools\路径 加入到环境变量Path中(方便使用adb命令 ),
Appium 使用的adb工具通过ANDROID HOME配置的路径找的,不是通过Path,想要在命令行或其他地方使用adb咋要配置Path,也就是系统命令都在Payh找

验证SDK是否配置成功,重新打开Appium,在首页选择 Edit Configurations选项,查看SDK路径是都正确展示

5安装5-手机端设置

◆电脑端的手机驱动, 确保电脑能识别出手机(win10默认不需要)
➢可以通过手机助手(驱动安装完成请卸载,否则会造成adb冲突)或
者对应品牌的官网去下载

环境搭建小结

◆确保电脑上没有其他的adb程序软件,如杀毒软件-安全管家手机助手
◆确保手机端开发者选项中对应的adb权限全部打开
◆(可选)确保手机端appium相关的app对应权限打开
◆设置》应用管理》权限设置》找到对应的app,查看权限

代码实例(验证环境搭建)

快速开始

1. 保证手机连接正常 cmd命令 adb devicesadb devices -l

2. 安装好被测应用

  • 实际项目中app 是有开发团队发布测试包。将测试包放在一个合适的目录中,如放在 d:\apk\放好安装包
  1. 在cmd中 切换到指定的apk安装包路径
  2. 使用 adb命令 读取放在电脑中的apk安装包,并安装到手机 如 安装 今日头条 adb install -r toutiao.apk

3. 启动Appium

4. 打开指定代码,更改手机版本号

代码下载地址:
链接:代码链接
提取码:nabu

  • 执行代码报错及解决方案

Appium 脚本配置信息

配置信息 是由Appium官网提供的,Appium官网配置信息详情,配置信息 前五项为必填项 后面为附加项,填根据需要添加。

 #提供被测app的信息-包名,入口信息:#使用该命令时,1.打开被测app,2.命令行输入以下信息  展示的第一行(cmp***)即可以获取包名和入口信息,以/分割对应数据#adb shell dumpsys activity recents | findstr intent={'appPackage':'com.hpbr.bosszhipin',#包名 即被测应用的地址'appActivity':'.module.launcher.WelcomeActivity',#被测应用的入口信息

webdriver.Remote()的作用,脚本首次运行手机自动新增两个APP

#初始化driver对象-用于控制手机-启动被测应用
#IP-appium-server所在机器(接口地址)的网络ip,port-监听的端口号(Appium 默认4723),path固定/wd/hub
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

  • appium-settings
    作用是接收代码往手机发的指令,首次电脑和手机的通信是通过adb adb效率慢,安装appium-settings后就直接和它通信不需要adb,appium-settings是无界面的
  • UiAutomator2
    驱动选择UiAutomator2时,会在手机上安装应用,但不在手机桌面展示

配置文件及调用app完整代码

调用app boss直聘,完成软件测试职位搜索 并且输出搜索到的第一屏数据

#导包
from appium import webdriver#准备自动化配置信息 键值对的形式
desired_caps={#移动设备平台 不是随意写的 是键 对应的固定的值'platformName':'Android',#平台OS版本号,写整数位即可'plathformVersion':'10',#设备的名称--值可以随便写'deviceName':'test0106',# 通过 adb devices获取#提供被测app的信息-包名,入口信息:#使用该命令时,1.打开被测app,2.命令行输入以下信息  展示的第一行(cmp***)即可以获取包名和入口信息#adb shell dumpsys activity recents | findstr intent={'appPackage':'com.hpbr.bosszhipin',#包名 即被测应用的地址'appActivity':'.module.launcher.WelcomeActivity',#被测应用的入口信息#确保自动化之后不重置app'noReset':True,#执行前已登录系统含有用户信息,Ture保证执行完脚本后用户信息不被删除#设置session的超时时间,单位秒,默认60s'newCommandTimeout':6000,#设置底层测试驱动-1.15默认使用的底层驱动就是UiAutomator2'automationName':'UiAutomator2',#或者UiAutomator1#'skipServerInstallation':True#跳过UI2的安装,如果第一次运行程序,不要打开该配置
}#初始化driver对象-用于控制手机-启动被测应用
#IP-appium-server所在机器(接口地址)的网络ip,port-监听的端口号(Appium 默认4723),path固定/wd/hub
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)#加入隐式等待 如果当页面没有出现 就一直等待 直到设置等待的时间结束
driver.implicitly_wait(15)#稳定元素 隐式等待 停留一段时间# input('......')#退出app
driver.quit()

代码下载地址:

链接:https://pan.baidu.com/s/1stRrUFmJe6QKaExjRvJD7Q

提取码:nabu

无线连接步骤


Appium自动化——day1相关推荐

  1. Python+Appium自动化测试之toast定位

    目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...

  2. python自动化是什么意思_python appium自动化是什么?

    最开始有人咨询小编的时候,小编也差点把这个内容遗忘掉了,对于appium的自动化内容也不是特别的清晰,于是,照例到网上查看相关资料,渐渐地由不明朗,到逐渐清晰,越发发自己遗忘了个宝藏内容,还是按照惯例 ...

  3. 【appium】appium自动化入门之基本参数完整版(67个appium基本参数和关键字)

    想想看appium入门已经做了半个多月了,不说掌握所有的文章,但掌握百分之八十,一定就能达到入门的程度了 入门篇也是完结的时候了,进阶篇什么时候做呢就看时间吧,下一个系列先预定为selenium的入门 ...

  4. appium自动化,appium元素定位

    appium自动化,appium元素定位 Appium是一款综合性软件,可让您在本地.移动或混合应用程序上执行复杂的测试. 简而言之,appium自动化框架允许您在不需要 SDK 或在每次测试会话后重 ...

  5. appium自动化的工作原理

    appium自动化的工作原理 1. Appium组件 Appium Server Appium是一个C/S结构,包括Server和Client.Appium Server是Appium的服务端,作为一 ...

  6. 【appium】appium自动化入门之ios软件如何测试

    上篇文章写到appium在Mac上的环境搭建,这篇进入正文,如何在Mac端的appium上测试你的ios产品 app端的文章如下: 第一类:[appium]appium自动化入门之环境搭建(上) 第二 ...

  7. appium自动化脚本之自动安装apk包到手机

    Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机 这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统 ...

  8. 【appium】appium自动化入门之环境搭建(中)

    哎嘿,没想到我更新了吧 书接上文[appium]appium自动化入门之环境搭建(上) 下文指路[appium]appium自动化入门之环境搭建(下) 正文 前言 1.1.1 环境准备 1.jdk1. ...

  9. android 自动化web,如何在android上使用selenium或appium自动化Chrome浏览器?

    我想在 Android设备上自动化 Android Chrome浏览器(不只是webview或其他浏览器,而是Chrome浏览器).我认为这可以通过这个链接 https://sites.google. ...

最新文章

  1. python之6-3嵌套函数
  2. telnet 测试端口连通性
  3. html表格数据循环展示,MVC在View中循环数据在table中显示
  4. 公共wifi做家用_如何在公共网络上获得免费的wifi
  5. 进程间的六种通信方式
  6. 现在资本进入社区团购,大搞补贴战,算不算涉嫌扰乱市场,垄断?
  7. C++算法之数据查找的代码
  8. Jacobian矩阵、Hessian矩阵
  9. 用c语言写图书管理系统设计,C语言图书管理系统设计及实现.doc
  10. 网络管理员考试试题分类精解电子书
  11. matlab 函数semilogy()
  12. flash player官网地址 建议不要下载flash.cn的
  13. 【数据安全案例】案例汇总
  14. ​在商还得言商 | 【常垒·常识】
  15. Robot Toolbox (一):Puma机器人仿真
  16. 博途plc连接电脑_S7-1200PLC以太网连接电脑
  17. 安利一个最适合数据分析师的小众高薪兼职!
  18. (一)Win10安装MindSpore平台
  19. 第二章 法的内容与形式
  20. Nginx的进程管理与重载原理

热门文章

  1. 遍地喧嚣的智能音箱战场,究竟谁能做出中国的 Echo?
  2. 怀揣感恩之心,学会感恩
  3. 详细的SQL注入相关的命令
  4. 使用CMD更改IP地址
  5. Centos开机后ens33网卡失效连不上网
  6. 有趣的数据结构算法12——利用递归解决八皇后问题
  7. 数据库SQL优化大总结
  8. 编译DPC++ Compiler(支持Nvidia显卡)
  9. 计算机主机接电视机,电脑连接电视,详细教您电脑连接电视当显示器的方法
  10. 微型 Python Web 框架 Bottle - Heroin blog