python-手机自动化
摘取:https://www.byhy.net/tut/auto/appium/01/
用途和特点
Appium 是一个移动 App (手机应用)自动化工具。
手机APP 自动化有什么用?
自动化完成一些重复性的任务
比如微信客服机器人
爬虫
就是通过手机自动化爬取信息。
为什么不通过网页、HTTP 爬取呢?有的系统没有网页,也不方便通过HTTP爬取
自动化测试
很多企业里面有这样的需求
Appium 自动化方案的特点:
开源免费
支持多个平台
iOS (苹果)、安卓 App 的自动化都支持。
支持多种类型的自动化
支持 苹果、安卓 应用 原生界面 的自动化
支持 应用 内嵌 WebView 的自动化
支持 手机浏览器 中的 web网站自动化
支持 flutter 应用的自动化
支持多种编程语言
像 Selenium 一样, 可以用多种编程语言 调用它 开发自动化程序。
自动化原理
我们先来看一下Appium自动化的原理图

和Selenium 原理图很像。因为 Appium自动化架构就是借鉴的Selenium。
包含了 3个主体部分 : 自动化程序、Appium Server、移动设备
自动化程序
自动化程序是由我们来开发的,实现具体的 手机自动化 功能。
要发出具体的指令控制手机,也需要使用 客户端库。
和Selenium一样,Appium 组织 也提供了多种编程语言的客户端库,包括 java,python,js, ruby等,方便不同编程语言的开发者使用。
我们需要安装好客户端库,调用这些库,就可以发出自动化指令给手机。
Appium Server
Appium Server 是 Appium 组织开发的程序,它负责管理手机自动化环境,并且转发 自动化程序的控制指令 给 手机,并且转发 手机给 自动化程序的响应消息。
手机设备
我们这里说的手机设备,其实不仅仅是手机,包括所有 苹果、安卓的移动设备,比如:手机、平板、智能手表等。
为了直观方便的讲解,这里我们简称: 手机
当然手机上也包含了 我们要自动化控制的 手机应用APP。
手机设备为什么能 接收并且处理自动化指令呢?
因为,Appium Server 会在手机上 安装一个 自动化代理程序, 代理程序会等待自动化指令,并且执行自动化指令
比如:要模拟用户点击界面按钮,Appium 自动化系统的流程是这样的:
自动化程序 调用客户端库相应的函数, 发送
点击元素的指令(封装在HTTP消息里)给 Appium ServerAppium Server 再转发这个指令给 手机上的自动化代理
手机上的自动化代理 接收到 指令后,调用手机平台的自动化库,执行点击操作,返回点击成功的结果给 Appium Server
Appium Server 转发给 自动化程序
自动化程序了解到本操作成功后,继续后面的自动化流程
其中,自动化代理控制,使用的什么库来实现自动化的呢?
如果测试的是苹果手机, 用的是苹果的 XCUITest 框架 (IOS9.3版本以后)
如果测试的是安卓手机,用的是安卓的 UIAutomator 框架 (Android4.2以后)
这些自动化框架提供了在手机设备上运行的库,可以让程序调用这些库,像人一样自动化操控设备和APP,比如:点击、滑动,模拟各种按键消息等。
python-手机自动化的更多相关文章
- 手机自动化培训:Appium介绍
		
手机自动化培训:Appium介绍 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088214 ...
 - appium手机自动化环境搭建
		
在robotframework环境安装完成的基础上进行如下安装,如果没有安装rfs环境,请先参考robotframework安装文章:Robot Framework的环境搭建 文件下载地址:链接:ht ...
 - Appium + Python App自动化第一个脚本
		
今天跟大家讲解一个Appium和Python App自动化的脚本.[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面[4]拖动你 ...
 - Python:Excel自动化实践入门篇 甲【留言点赞领图书门票】
		
*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s?__biz=MzUxMTgxMzExNQ==&mid=22 ...
 - Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要
		
1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种: 第一种是传参,不需要再创建啥, 第二种就是ns0类型的 ...
 - Python+reuqests自动化接口测试
		
1.最近自己在摸索Python+reuqests自动化接口测试,要实现某个功能,首先自己得有清晰的逻辑思路!这样效率才会很快! 思路--1.通过python读取Excel中的接口用例,2.通过pyth ...
 - python接口自动化(十)--post请求四种传送正文方式(详解)
		
简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...
 - python接口自动化-Cookie_绕过验证码登录
		
前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...
 - python接口自动化28-requests-html爬虫框架
		
前言 requests库的好,只有用过的人才知道,最近这个库的作者又出了一个好用的爬虫框架requests-html.之前解析html页面用过了lxml和bs4, requests-html集成了一些 ...
 - python selenium自动化点击页面链接测试
		
python selenium自动化点击页面链接测试 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回 ...
 
随机推荐
- Linux系统运维之MYSQL数据库集群部署(主主互备)
			
一.介绍 既然是部署MYSQL高可用集群环境,就要介绍下MYSQL Replication,MYSQL Replication是MYSQL自带的一个主从复制功能,也就是一台MYSQL服务器向另外一台M ...
 - MySQL 存储引擎 InnoDB 内存结构之更改缓冲区
			
更改缓冲区(Change Buffer)是一种特殊的数据结构,用于缓存不在缓冲池中的二级索引(secondary index)页的更改.可能来自于INSERT.UPDATE或DELETE操作(数据操作 ...
 - 使用Python接口自动化测试post请求和get请求,获取请求返回值
			
引言我们在做python接口自动化测试时,接口的请求方法有get,post等:get和post请求传参,和获取接口响应数据的方法: 请求接口为Post时,传参方法我们在使用python中request ...
 - 2023年icpc大学生程序设计竞赛-nhr
			
icpc的省赛是在洛阳举办,第一次出省,还是两天,第一次离开郑州去别的城市比赛,心情更多的是激动,非常感谢老师给了这次机会,第一天20号,打完热身赛之后回寝室,和队友一起看了一下去年省赛的题,感觉还是 ...
 - linux cp command
			
参考:http://c.biancheng.net/view/746.html [root@localhost ~]# cp [选项] 源文件 目标文件 -a:相当于 -d.-p.-r 选项的集合,这 ...
 - 我学到的一下vue使用技巧
			
这两天学到的vue使用技巧 v-if , 当封装组件的时候,用到的props,最外层最好加个v-if,防止出现cannot read property of undefined 这样的错误,如果pro ...
 - DevOps|研发效能治理:进化史、规模化与治理复杂性
			
麻广广@码猿外 研发效能这个词近几年火遍全网,各大企业都加入了研发效能治理的行列,开始梳理企业内部各个团队的研发流程,以期望找到企业降本增效的方向. 抛开政治因素,研发效能治理我们到底是在谈什么呢?从 ...
 - jQuery事件冒泡和默行为
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - asp.net core之异常处理
			
在开发过程中,处理错误是一个重要的方面.ASP.NET Core提供了多种方式来处理错误,以确保应用程序的稳定性和可靠性. TryCatch TryCatch是最常见也是最基础的一种异常处理方式,只需 ...
 - 小议ml.NET机器学习与人机责任划分
			
最近,特斯拉宣布召回110万辆车,名义上是纠正单踏板不良习惯,背后原因可能是这些车辆的电子控制单元存在缺陷,可能导致刹车失灵(潮州等交通事故至今没有定论).这个事件引起了人们对于机器学习技术和人机责任 ...