Appium自动化——day1
一个做测试的摄影师
- 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架构图
整体分为以下几个部分
- **客户端(Customer)C端:**可以看作为 测试脚本
- **服务端(Appium Server)S端:**测试脚本 主要是和Appium Server进行通信,对于手机控件元件的操作,将这些api转化成的指令发送给Appium Server,Appium Server再做进一步的处理来操作手机应用;
- **测试平台SDK:**Appium Server和手机应用间的交互以测试平台SDK为媒介;SDK种类很多,在电脑上下载对应平台的SDK才能控制手机应用;例如安卓平台有安卓平台的SDK,SDK可以理解为开发包,SDK包含了adb、元素定位工具等用于传达指令
- 手机端自动化驱动程序: SDK只能传达指令,手机端需要安装相应的驱动程序,有驱动程后,Appium Server直接和驱动进行通讯
手机端驱动程序介绍
- 苹果
iOS 9.3 and above: Apple’ s: XCUITest
iOS 9.3 and lower: Apple’ s :UIAutomation - 安卓
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 devices
和adb devices -l
2. 安装好被测应用
- 实际项目中app 是有开发团队发布测试包。将测试包放在一个合适的目录中,如放在
d:\apk\放好安装包
- 在cmd中 切换到指定的apk安装包路径
- 使用 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相关推荐
- Python+Appium自动化测试之toast定位
目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...
- python自动化是什么意思_python appium自动化是什么?
最开始有人咨询小编的时候,小编也差点把这个内容遗忘掉了,对于appium的自动化内容也不是特别的清晰,于是,照例到网上查看相关资料,渐渐地由不明朗,到逐渐清晰,越发发自己遗忘了个宝藏内容,还是按照惯例 ...
- 【appium】appium自动化入门之基本参数完整版(67个appium基本参数和关键字)
想想看appium入门已经做了半个多月了,不说掌握所有的文章,但掌握百分之八十,一定就能达到入门的程度了 入门篇也是完结的时候了,进阶篇什么时候做呢就看时间吧,下一个系列先预定为selenium的入门 ...
- appium自动化,appium元素定位
appium自动化,appium元素定位 Appium是一款综合性软件,可让您在本地.移动或混合应用程序上执行复杂的测试. 简而言之,appium自动化框架允许您在不需要 SDK 或在每次测试会话后重 ...
- appium自动化的工作原理
appium自动化的工作原理 1. Appium组件 Appium Server Appium是一个C/S结构,包括Server和Client.Appium Server是Appium的服务端,作为一 ...
- 【appium】appium自动化入门之ios软件如何测试
上篇文章写到appium在Mac上的环境搭建,这篇进入正文,如何在Mac端的appium上测试你的ios产品 app端的文章如下: 第一类:[appium]appium自动化入门之环境搭建(上) 第二 ...
- appium自动化脚本之自动安装apk包到手机
Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机 这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统 ...
- 【appium】appium自动化入门之环境搭建(中)
哎嘿,没想到我更新了吧 书接上文[appium]appium自动化入门之环境搭建(上) 下文指路[appium]appium自动化入门之环境搭建(下) 正文 前言 1.1.1 环境准备 1.jdk1. ...
- android 自动化web,如何在android上使用selenium或appium自动化Chrome浏览器?
我想在 Android设备上自动化 Android Chrome浏览器(不只是webview或其他浏览器,而是Chrome浏览器).我认为这可以通过这个链接 https://sites.google. ...
最新文章
- python之6-3嵌套函数
- telnet 测试端口连通性
- html表格数据循环展示,MVC在View中循环数据在table中显示
- 公共wifi做家用_如何在公共网络上获得免费的wifi
- 进程间的六种通信方式
- 现在资本进入社区团购,大搞补贴战,算不算涉嫌扰乱市场,垄断?
- C++算法之数据查找的代码
- Jacobian矩阵、Hessian矩阵
- 用c语言写图书管理系统设计,C语言图书管理系统设计及实现.doc
- 网络管理员考试试题分类精解电子书
- matlab 函数semilogy()
- flash player官网地址 建议不要下载flash.cn的
- 【数据安全案例】案例汇总
- ​在商还得言商 | 【常垒·常识】
- Robot Toolbox (一):Puma机器人仿真
- 博途plc连接电脑_S7-1200PLC以太网连接电脑
- 安利一个最适合数据分析师的小众高薪兼职!
- (一)Win10安装MindSpore平台
- 第二章 法的内容与形式
- Nginx的进程管理与重载原理