appium自动化测试_Appium自动化测试入门教程No.1—— Appium介绍

a2785af3e90eab01950d6922cd03f5b1.png

(1)特点

appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。

>>“移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。

>>“移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。

>>“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。

(2)Appium与Selenium

Appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。

Appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。

Appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium 客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以用来运行通用的Selenium会话。

(3)支持多平台、多语言

Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

Appium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及Selenium(WebDriver)如何做到支持多语言的原因;

Appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量;

b88f81c4314e0226a576fe42633fb0e3.png

(4)Appium工作原理

在安装和介绍appium之前,非常有必要介绍一下appium是如何工作的。

c708c484c2ae43d4d3a4761a6e5d28d3.png

通过上面一张图简单展示了appium的工具原理。

首先,appium支持多语言,因为它针对流的几种语言分别开发的相应的appium库。好处就是我们可以选择自己熟悉的语言编写appium脚本。

其次,appium支持多平台,包括MAC和Windows。它针对这两大平台开发了appium-Server。

最后,appium又同时支持Android 和 iOS两个操作系统。

这就使得appium变得非常灵活。

当我在MAC平台上,通过Python(python-client )编写了一个appium自动化脚本并执行,请求会首先到 appium.dum (MAC下的appium-Server),appium-Server通过解析,驱动iOS设备来执行appium自动化脚本。

或者,我在Windows平台上,通过Java( java-client )编写了一个appium自动化脚本并执行,请求会首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通过解析,驱动Android虚拟机或真机来执行appium脚本。

所以,你会看到appium的强大之处就在于此。

(5)你都需要安装什么?

这才是你最关心的问题,使用appium都需要安装些什么?其实,从appium工作原理你就应该知道需要装什么了。

编程语言:

Python , Java ......

appium client:

参考 3、支持多平台、多语言 的列表,根据你选择的语言来选择对应的 appium-client。

appium Server:

参考 4、appium工作原理 的介绍,根据你的系统平台选择 对应的 appium-server。

测试运行环境

你需要一个Android模拟器,或 一个 Android 手机,或 一台 iPhone 手机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 命令行看图片,骚操作:用终端打开图片

导读Linux 上有许多 GUI 图片浏览器。但我尚未听说或使用过任何在终端中显示图片的应用程序。幸运的是,我刚刚发现了一个可用于在终端中显示图像的名叫 FIM 的图像查看器。FIM 引起了我的注意,是因为与大多数 GUI 图片浏览器相比,它非常轻巧。…

python中使用什么命令进入帮助系统-python中os模块中文帮助

python中os模块中文帮助文档 文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8,个人博客:http://butlandblog.appspot.com/ 注此模块中关于unix中的函数大部分都被略过,翻译主要针对WI…

linux 登入用户记录,linux记录所有用户登陆及执行过的命令脚本

第一个窗口[roothdss7-4 ~]# echo "historyUSERwhoamiUSER_IPwho -u am i 2>/dev/null| awk {print $NF}|sed -e s/[()]//gif [ "$USER_IP" "" ]; thenUSER_IPhostname ## 获取ip 并且存到变量中fiif [ ! -d /var/log/history ]; thenmkdir /var/…

线程被中断跟被阻塞有什么区别_宠物加盟店跟自营店有什么区别

宠物加盟店跟自营店有什么区别开宠物店是一个很有发展、很有市场前景的项目,特别是在这几年,已经迅猛发展。如果想加入宠物行业,利润、赚钱、前景都不用担心,只要有愿意做成的心,市场大环境不用担心。关于大家提出的宠…

linux装nvidia驱动没有图形界面,[转]Fedora 13下安装Nvidia显卡驱动的方法/Linux无法进入X Windows 图形界面的解决方法...

再试一试这个方法:[转自]http://www.myexception.cn/image/505352.htmlVirtualBox3.1.2安装Fedora12后无法启动图形界面问题VirtualBox真是个好东东,无缝模式集成进windows,一边能玩windows下的游戏啊,QQ啊,又可以不耽…

不超过20位的小数正则_意甲身价最贵的20位球星,国米多达7人超过尤文,夺冠成硬任务...

根据《德转网》的最新统计,在本赛季意甲身价排名前20位的球星当中,国际米兰俱乐部拥有多达7人,比起意甲霸主尤文图斯还要多出2人。这7位国米球星分别是卢卡库(意甲球员身价第一,8000万欧元)、马丁内斯(意甲球员身价第四、4000万欧…

mcp证书有什么用_建造师的行情怎么样呢?建造师证书有什么用?

近年来,一二级建造师报名人数的逐年递增。从2004年至今,从当初几万人报考到现在的几百万人报考,这些都说明了大家都意识到了建造师证书的重要性。因为要用到证书的地方太多了,建筑企业升级资质要求建造师证书、企业年检要求建造师…

linux环境变量命名规范,Linux就该这么学 -- 重要的环境变量

变量是计算机系统用于保存可变值的数据类型。在Linux中,变量名一般都是大写,这是一种约定俗成的规范,我们可以直接通过变量名称来提取到对应的变量值。用户执行一条命令,Linux系统一般分为4个步骤第一步:判断用户是否以…

realtek audio console无法连接rpc服务_RPC服务在游戏中的简单运用

作者:二周目赤出处:https://www.cnblogs.com/cr1719/p/13866841.html我们最开始做的游戏框架,多数都是client—>server—>db的模式,但是随着玩家数量的增加,一个server进程就会扛不住,需要多个进程服务于多个玩家。但是给定…

linux查询.gz日志,linux2-查日志

1.tail 显示文件内容的最后几行tail catalina.out查最后10行tail -f filename输出最后10行内容,同时监视文件的改变,只要文件有一变化就显示出来。tail -n 5 filename 或者 tail -5 filename输出文件最后5行的内容tail -nf catalina.out输出文件最后n行的…

linux qt yuv,c – 如何使用Qt中的RGBA32数据将带有YUV数据...

我找到了一个内置于Qt5的解决方案,但是不受Qt的支持.以下是如何进行的:>将QT multimedia-private放入qmake .pro文件中>将#include“private / qvideoframe_p.h”放入代码中以使该功能可用.>您现在可以访问具有以下签名的函数:QImage qt_image…

union all会影响性能吗_哪些因素会影响悬臂式掘进机的性能?

悬臂式掘进机性能的好坏是决定快速掘进的关键,已有成果的基础上,对影响悬臂式掘进机性能的主要因素进行了综合分析。下面小编就具体说明一下:1.截割头、截齿的影响因素截齿是掘进机的关键部件,其材料和制造技术对悬臂式掘进机的性…

自制简单的小型Linux,自制小型Linux系统

<div id”content” contentScore”949″>自制小型Linux系统【详细步骤】1&#xff1a;找一个新的SCSI接口的Hard Disk 装载到Linux虚拟机上(/dev/sdb),加电。fdisk /dev/sdb 进行分区&#xff0c;格式化。2&#xff1a;建立2个挂载点,并分别挂载。3&#xff1a;构建MBR引…

numpy序列预处理dna序列_合成生物学快讯2019年第12期:基于DNA的分子数字数据存储...

本文由中国科学院上海生命科学信息中心 战略情报团队供稿基于DNA的分子数字数据存储:现状与挑战编者按&#xff1a;美国华盛顿大学和微软研究院的研究人员2019年8月在Nature杂志发文&#xff0c;对基于DNA的分子数字数据存储进行总结&#xff0c;梳理了该领域的研究发展历史、D…

c语言编程游戏开代码错误,[蓝桥杯][历届试题]数字游戏 (C语言代码)(兄弟们帮我看一下为什么运行错误86%)...

解题思路:注意事项:参考代码:#include #include #define N 1000int main(){unsigned int n,k,T;int i,j;int num[N];int m1;int sum0;scanf("%d%d%d",&n,&k,&T);while(n<1||k<1||T<1||n>1000000||k>1000000||T>1000000){scanf("%…

方正高影仪安装方法_铝合金门窗是怎么安装的?

铝合金门窗安装主要材料有铝合金门窗型材、钢钉、膨胀螺栓、滑移合页、防水密封胶、压条等。铝合金门窗的规格、型材应符合设计要求&#xff0c;五金配件配套齐全、并具有出厂合格证。防腐材料、填缝材料、密封材料、防锈漆、水泥、砂、连接铁脚、连接板等应符合设计要求和有关…

怎样用c语言统计字符个数字,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#includemain(){int acount0,bcount0,ccount0,dcount0;char a;printf("请输入一行字符:\n");a getchar();while (a !\n){switch (a){caseq:casew:casee:caser:caset:casey:caseu:casei:caseo:casep:casea:cases:cased:c…

无法从“cstring”转换为“lpcstr”_U盘重装系统后,无法使用?

U盘重装系统&#xff0c;误GPT分区转换到mbr分区后&#xff0c;无法读取&#xff0c;储存&#xff0c;格式化失败&#xff0c;解决方法如下&#xff1a;无法读取无法格式化1.按住“WINR”&#xff0c;呼出“cmd”命令符WINR2.输入&#xff1a;diskpart&#xff0c;回车进入disk…

达内培训c语言,【达内C  培训教程】C语言实例 分数之和

求这样的四个自然数p,q,r,s(p<q<r<s)&#xff0c;使得以下等式成立&#xff1a;1/p 1/q 1/r 1/s1*问题分析与算法设计若规定p<q<r<s&#xff0c;将原式通分、化简并整理后得到&#xff1a;2<p<5p<q<7 q<p"">采用最简单的穷举方法…

dijkstra算法_最短路径问题——迪杰斯特拉算法(Dijkstra)

假期过长&#xff0c;导致停更了好长时间&#xff0c;复习一道算法题找找感觉。前段时间看到一篇文章&#xff0c;里面提到了统治世界的十大算法&#xff0c;其中之一就是迪杰斯特拉算法(Dijkstra)&#xff0c;该算法主要解决的”最短路径“这一类问题。说法虽然夸张了点&#…