Appium有什么优点,一般在什么场景下应用

2021-04-13 19:14发布

6条回答
三岁奶猫
1楼 · 2021-04-14 13:26.采纳回答

Appium一款应用于移动端的自动化测试框架,支持跨平台应用,Native、Hybird、Mobile Web都支持。其特点概括一下:

跨平台只要一套代码

不需要设置签名,不污染源代码

不需要项目源代码就可以测试

多语言支持

可支持多种通用框架

完全开源,社区活跃  

appium应用场景:

1、原生app跳转到浏览器打开的页面不适用于appium自动化测试;

2、纯原生app或原生app中嵌套webview视图页面的混合app(非跳转浏览器页面)可以做appium自动化测试;

3、纯浏览器应用可以做appium自动化测试;

条件:混合app—>代码中打开webviewdebug功能—>谷歌浏览器中打开chrome://inspect定位web视图元素—>使用xpath或其他方式定位元素—>driver切换成webview视图的context。

注:当需要滑动页面的时候context需要切换到NATIVE_APP,因为webview不支持滑动appium版本为1.7.2的情况下)。


我是大脸猫
2楼 · 2021-04-16 09:23

1)解释什么是Appium?

Appium是一个免费分发的开源移动应用UI测试框架。


2)列出Appium的可以完成的事情

应用能力是


测试Web

为Native和Hybrid移动自动化提供跨平台

支持JSON线协议

它不需要重新编译App

支持物理设备以及类似或仿真器的自动化测试

它不依赖于移动设备


3)列出使用APPIUM的先决条件?


ANDROID SDK

JDK

Eclipse(Java编译器),Pycharm(Python编译器)

Selenium Webdriver

APPIUM for Windows

APK App信息在Google Play上

Node JS

也可参见appium通信分析一(appium的初始化准备工作)

4)列出使用Appium的局限性?

Appium不支持Android版本低于4.2的测试

有限的支持混合应用程序测试。 例如,不可能将应用程序从Web应用程序的切换动作测试为本机,反之亦然

不支持在Microsoft Windows上运行Appium Inspector(一般用SDK下面的uiautomatorviewer来替换)


5)解释移动应用程序中如何查找DOM元素或xPath

要找到DOM元素,使用“UIAutomateviewer”来查找Android应用程序的DOM元素。


6)解释Appium的设计理念?

Appium是使用Node.js平台编写的“HTTP Server”,并使用Webdriver JSON线协议驱动iOS和Android会话。 因此,在初始化Appium Server之前,必须在系统上预先安装Node.js 当Appium被下载并安装时,在我们的机器上设置一个暴露REST API的服务器

它从客户端接收连接和命令请求,并在移动设备(Android / iOS)上执行该命令,

它响应HTTP响应。 再次,为了执行此请求,它使用移动测试自动化框架来驱动应用程序的用户界面。 框架像Apple Instruments for iOS(仅适用于Xcode 3.0或更高版本的OS X v10.5及更高版本)适用于Android API的Google UIAutomator 16级或更高版本

Selendroid for Android API等级在15以下。


7)Appium支持哪种语言?

Appium支持任何支持HTTP请求的语言,如Java,JavaScript与Node.js,Python,Ruby,PHP,Perl等。


8)解释App的利弊?

优点:

对于程序员而言,无论平台如何,他都在自动化(Android或iOS),所有的复杂性都将保留在单一的Appium服务器上

它打开跨平台移动测试的大门,这意味着相同的测试可以在多个平台上工作

Appium在您的应用程序中不需要额外的组件,使其自动化友好

它可以自动化Hybrid,Web和Native移动应用程序

缺点:

使用Appium可以同时在多个iOS模拟器上运行脚本

它使用UIAutomator for Android Automation,它仅支持Android SDK平台,API 16或更高版本,对于较低版本的API,Appium并不支持,我们需要使用另一个名为Selendroid的开源库。


9)解释什么是APPIUM INSPECTOR?

与Selenium IDE记录和播放工具类似,Appium有一个“Inspector”来录制和播放。它通过检查DOM记录和播放本机应用程序行为,并以任何所需的语言生成测试脚本。但是,Appium Inspector不支持Windows,并在其选项中使用UIAutomator查看器。


10)提到编写Appium测试的基本要求是什么?

驱动程序客户端:Appium驱动移动应用程序,就像它是用户一样。 使用客户端库编写您的Appium测试,其中包含您的测试步骤,并通过HTTP发送到Appium服务器。

应用会话:您必须首先初始化一个会话,因为这样的测试会在会话中进行。 一旦自动化完成一个会话,它可以结束并等待另一个会话

所需功能:要初始化Appium会话,您需要定义名为“所需功能”的某些参数,如PlatformName,PlatformVersion,设备名称等。 它指定了从Appium服务器需要的自动化类型。

驱动程序命令:您可以使用大型和表达式的命令词汇编写测试步骤。


11)提到使用Appium可能遇到的错误是什么?

在Appium中可能出现的错误包括

错误1:需要以下所需的功能,但不提供:设备名称,platformName

错误2:找不到adb。请使用Android SDK根目录路径设置ANDROID_HOME环境变量

错误3:openqa.selenium.SessionNotCreatedException:无法创建新的会话

错误4:如何在移动应用程序中查找DOM元素或XPath?

可参见Appium Error总结


12)您需要一台服务器机器来运行Appium上的测试?

不,您不需要服务器机器在Appium上运行测试。 Appium促进了一个2层架构,其中测试机连接到运行Appium的测试服务器并自动化整个事情。您可以在运行测试的同一台机器上运行Appium。


13)当我使用Appium进行测试时,是否可以使用Javascript与我的应用进行交互?

是的,可以使用Javascript与App进行交互。当命令在Appium上运行时,服务器会将脚本发送到您的应用程序,并将其包装成一个要执行的匿名函数。


14)提到使用Appium测试最困难的场景是什么?

使用Appium测试最困难的情况是数据交换。


15)虽然使用Appium可以在多线程环境中运行我的测试?

是的,您可以在多线程环境中运行测试,但必须确保同一个Appium服务器同时运行不超过一个测试。


16)在Android中,您需要一个应用程序的.apk来自动化使用Appium,还需要在我的工作区中的应用程序?

在Android中,您只需要.apk文件即可自动使用Appium。


17)解释什么是Appium包主机?如何创建包?

Appium包主机是一套管理和创建应用程序包的工具。例如创建包可以使用代码

#使用es7 / babe1

Gulp create-package -n



SPOC的概念,是指使用在线的课程(类似于MOOC)对少数真实在校注册的学生实施的课程教育。和 MOOC 相比,主要的特点包括:人数少、在校注册(收费)、除了在线视频和习题等,还可以有其它辅助的线上或线下课堂、答疑。

单纯地说 SPOC 相对于 MOOC 的优点,还不如更全面地对比一下:
【优点】模式自由度:SPOC教学内容可以是MOOC的超集,换句话说,教师可以开着MOOC,同时对一小部分学生开SPOC —— 要求后者选了MOOC的同时,通过其他的渠道(线上的在线讨论,或者线下的混合式教学(含翻转课堂)实现SPOC,实现 SPOC = MOOC + 补充交流 的模式。
【缺点】教育效率:SPOC的教师需要投入比MOOC教师更多的时间和精力,但课程的学生生人数却往往只有后者的百分之一,甚至千分之一。这样算下来的”效率“自然是比较低的。
【优点】全程关照:但学生人数较少,才有可能实现老师完全介入学生的学习过程,包括由教师自己或助教完成作业的批改、与学生之间的充分交流答疑和讨论,甚至面对面的“补课”。相对而言,在MOOC中,一般说来学生还是基本独立自主的学习的——即使有讨论区,也是少数活跃学生的舞台,而且提问后获得解答的效率还是比不上直接询问教师。
【优点】出勤率:虽然优秀的老师是不必担心出勤率的,但不能否认,SPOC中可以明确或隐含地给学生形成出勤(不管是线上课堂还是教室课堂)的压力,这对于部分相对惰性的学生是有利的——当然,过度的而片面地追求出勤率往往会引起学生的反感(尤其是教师水平不太高时)。而MOOC对学生的约束就低得多 —— 连弃课率都居高不下,自然难以要求学生对每次课都在指定时间里完成。
【优点 > 缺点】一致进度:学生有一致的进度,其实是非常有利的 —— 即便是在课程讨论区中,也能形成集中的热点。而 SPOC 通过周期或非周期的线下交流,其实强制学生在参与线下交流的时间点上有基本一致的进度。当然,这里有一点小小的缺憾,就是学生在安排自己的时间时会损失了一些自由。
【优点 > 缺点】学生同构:MOOC的学生差异分布明显比SPOC高得多——后者可以通过入学考试、分班等方式来对学生进行筛选和细分。学生来自广泛的地区,具有不同的族群、宗教信仰、思维方式有些不同、观察问题注重不同的地方,这些在某些强调学生间交流的 MOOC 中是有可能产生一些火花的,甚至也能给老师一些启发。
但是学生差异过大,则达成良好的授课效果也就越难——因为课程无论如何是最适合于某一部分学生的(譬如学生水平差别呈正态分布时,教师一般选择中游的大多数学生为重点要照顾的对象,对于最优秀和最差的学生的照顾程度要小一些)。或者简单地说,针对性越强的教育,一般说来,效果可以更好——就像专用药物一般比广谱药物疗效更好一样。
【优点】因材施教:教师可以完全洞悉学生的各方面信息(前续课程成绩、以往表现、个性、优缺点等)。也正是如此,才有可能做到真正的因材施教——譬如在课堂上某些关键点,根据学生不同的基础,主动要求部分学生做一些特殊的思考。
【优点 + 缺点】责任感 vs 荣誉感:班级里的少数学生的学校效果,这是 SPOC 的教师必须非常明确地负责的;而 MOOC 教师需要面对公众(学生、同行教师)的眼神的洗礼,所以是靠荣誉感(以及间接的潜在名利)作为提升教学质量的主要动力的。当然,如果是第一点所说的情形(开SPOC的教师同时经营着MOOC),那么这两者倒是可以同时兼得。
【优点 + 缺点】课程选择权:学生在选择 SPOC 之后,基本也就丧失了课程的选择权,必须按照教师的规定来观看课程——即使部分学生可以同时博览其他同名网络课程,但这意味着支付更多学习时间和精力。从好的一方面来说,开明的 SPOC 教师是亲自优选过网络视频的,并不一定要让学生完全观看自己录制的课程视频。
【优点 vs 缺点】收费 与 可行性:SPOC 一般会以收费的形式存在,从教育的社会责任感上讲,这样只能惠及少数人,听起来不如 MOOC 高大上;但从“可持续发展”的角度来讲,SPOC会略高于 MOOC。
【优点】身份验证:这一点上,SPOC能做到保证学生本人听课,也能做到线下考试,而MOOC不太可能(貌似 Udacity 曾经找过 Pearson 做线下考试的尝试,不过后续好像没动静了,可能在营收等方面不容易平衡?),这也直接导致了 MOOC 课程证书的含金量低于 SPOC。
综上,虽然 SPOC 的优点的方面相对比较多一些,但是 MOOC 的 免费和普及 这两项实在太强了。我个人认为在今后相当长的时间里,这二者会相辅相成,共同构成高等教育的主体。

灰机带翅膀
4楼 · 2021-04-16 15:47

appium应用场景:
1、原生app跳转到浏览器打开的页面不适用于appium自动化测试;
2、纯原生app或原生app中嵌套webview视图页面的混合app(非跳转浏览器页面)可以做appium自动化测试;
3、纯浏览器应用可以做appium自动化测试;

嘿呦嘿呦拔萝卜
5楼 · 2021-04-16 17:01

Appium一款应用于移动端的自动化测试框架,支持跨平台应用,Native、Hybird、Mobile Web都支持。其特点概括一下:

跨平台只要一套代码

不需要设置签名,不污染源代码

不需要项目源代码就可以测试

多语言支持

可支持多种通用框架

完全开源,社区活跃 


靓猴一枚
6楼 · 2021-04-18 18:19

优缺点如下

image.png

相关问题推荐

  • 回答 12

    自动化测试主要分为三个层次:单元测试自动化、接口测试自动化和UI测试自动化。单元测试自动化调用测量的类或方法,根据类或方法的参数传递相应的参数并返回结果。最终断言判断返回的结果是否与预期结果相等。相等,测试通过,不相等,测试失败。因此,在单元...

  • 回答 13
    已采纳

    Fiddler可以干的东西太多了 ,例如:1.动态Web调试,可以抓取http&分析之,这个不说了,别的很多抓包软件也可以实现2.配合Proxifier可以抓取&代理原本不支持http代理但使用http协议通信的应用3.中间人攻击,因为fiddler本质是个http proxy自然可以给http包下...

  • 回答 19

    1、具备计算机操作基础2、软件测试基础理论知识。3、对于常用的数据库,简单的操作要具备。学习数据库可以自己安装一个数据库,常练习。4、具备一定的逻辑推理能力:这点主要偏向于写测试用例。测试用例是软件测试的核心。写测试用例,可以参考网络一些比较经...

  • 回答 9

    可以根据项目需要进行选择 1.模块化框架(test script modularity)。 2.函数库结构框架(test library architecture)。 3.关键字驱动测试框架(keyword-driven/table-driven testing)。 4.数据驱动测试框架(data-driven testing)。...

  • 回答 7
    已采纳

    自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入...

  • 软件测试都学什么呀2020-03-11 11:17
    回答 15

    嗯 ,软件测试入门容易,零基础也能学会,下面我给你讲一下学习的具体内容:先第一个阶段主要学习软件测试核心理论:软件测试方法和分类都有什么,白盒测试、黑盒测试、单元测试、集成测试、系统测试、负载测试、兼容性测试等等,还有当下的热门领域测试技巧...

  • 回答 10

    自动化测试工具有如下几种:1、WinRunnerMercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的...

  • APP自动化测试思路2021-01-28 11:12
    回答 12

    1、需求分析测试都是基于需求,所以首先我们需要先理清楚需求,划分之后找到实现的关键点。自动化测试就是实现机器完成测试需求的关键点的一系列操作,并且在脚本的实际运行中添加需要的业务逻辑判断,实现测试自动化。根据脚本的具体实现,整理出打开文件测...

  • 回答 6

    1.分析测试需求测试需求其实就是测试目标,也可以看作是自动化测试的功能点。自动化测试是做不到100%盖率的,只有尽可能提高测试覆盖率。条测试需求需要设计多个自动化测试用例,通过测试需求分析判定软件自动化测试要做到什么程度。一般情况下,自动化测试优...

  • 回答 7

    第一,需求稳定,不会频繁变更第二,研发和维护周期长,需要频繁执行回归测试第三,需要在多种平台上重复运行相同测试的场景。第四,某些测试项目通过手工测试无法实现,或者手工成本太高。第五,被测软件的开发较为规范,能够保证系统的可测试性。另外,某些...

  • 回答 14

    自动化测试对于软件测试工程师来说十分重要。是软件测试人员必备技能。自动化测试框架是为自动化测试脚本提供执行环境的脚手架。框架为用户提供了各种优势,帮助他们有效地开发、执行和报告自动化测试脚本。它更像是一个专门为自动化组织的测试而创建的系统。...

  • 回答 7

    自动化测试的成本高,效果差,是一个相对的,而针对某些具体项目,是必须要接入自动化测试的。首先说一些什么时候会需要自动化测试首先咱们讨论这个问题之前要带着一个疑问:决定要不要做自动化测试的因素有哪些?应该说时间才是一个衡量比重比较大的因素。假...

  • 回答 4
    已采纳

    第一步,先要安装JDK并配置好相应的环境变量;第二步,下载、部署Android SDK,并配置环境变量。MonkeyRunner位于Android SDK下的tools目录,所以需要把这个目录加入操作系统环境变量PATH中。第三步,编写MonkeyRunner脚本。脚本中需要用到三个类,分别为Monk...

  • 回答 4
    已采纳

    1.monkey应用场景> monkey测试是Android平台自动化测试的一种手段,通过monkey程序模拟用户触摸屏幕、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常======================================异常:崩溃:XX应用停止运行无响应:闪退...

  • 回答 4
    已采纳

    首先我使用了百度搜索adb(Android Debug Bridge)安装包,接下来,我想共享这个安装包:https://pan.baidu.com/s/14SysAIZQhzYKZzQMikE2jQ拿到安装包,首先我把它解压到我的Android文件包里,接着,打开cmd(使用Win+R键--->cmd)点击确定按钮出现输入adb以...

没有解决我的问题,去提问