移动设备的自动化测试工具,如何选型?

news2024/11/17 21:54:14

一、问题的提出

最近二两年来,一直在从事移动设备的自动化测试工作,可以说小有心得。但最近由于种种原因,面临着对移动设备的自动化测试工具的更换工作。所以,一个问题呈现在面前。我们需要为我们的项目选出一款新的自动化测试工具,具体来说就是我们要选出可以支持iOS,android,windows phone甚至是黑莓等设备的自动化测试工具。当然在讲我的案例前,我希望针对我们对工具的选型工作能够对大家有参考作用,以便未来在您可能遇到类似的问题时,也能够有章可循。

日常我们目前公司的mobile app基本上实际上是web based 的app,所以在此之前我们的所有自动化测试脚本都是建立在基于对web自动化测试工作支持较好的sahi上。而我们的mobile automation则是使用chrome浏览器来模拟mobile client,使用sahi来进行自动化工作,整体来讲,mobile 应用的自动化工具是很成功的,自动化覆盖率比较好,而且运行的速度较快,也为公司节省了许多金钱。但实际上我们也面临一个问题,就是我最终发布的应用实际上是一个hybrid应用,而且在实际测试工程中,手工测试人员由于觉得大部分自动化测试跑在chrome上,他们对自动化的信任度也不能够达到较高的程度,所以他们觉得,有必要把自动化测试覆盖掉的用例也要手工跑一下,以免出现意外。当然我们非常认可同事的认真工作的态度,但我们确实也应该解决这一问题,让automation真正跑在设备上。基于以上,我们打算更换一款工具,能够让我们的自动化测试跑在真实设备上,而非模拟器上。

那么现在问题来了,我们选什么呢?所以我们得先分析一下需求。首先,我们的自动化必须能够跑在设备上。其次,工具必须能够支持iOS,android,windows phone,blackberry等。除这两项硬性规定外,我们的需要工作尽可能好用,能够支持企业级应用,当然如果能够免费最好。

二、 找到至少两组备选方案

首先我们得借助一下google,百度,查询一下有没有适合的工具。

首先映入眼帘的是它。

我们先来看一下 appium 能干什么?看简要说明它主要能够实现 iOS,Android 以及FireFox OS 设备的自动化测试,包括 native,hybrid 及手机 web 应用。最重要的是它还是开源的。Appium 是跨平台的,即你可以写一套测试脚本同时运行在 android 及 iOS 平台上。Appium 是基于客户端/服务器架构,它实际上是提供一套 Restful API.它从客户端接收连接,侦听命令,然后在移动设备上执行命令。在客户端我们可以使用任何语言来编写测试脚本。服务端可以运行在不同的机器上。

我们再来看看这个家伙,叫做 SeeTest automation:

SeeTest automation 支持 iOS,Android, Blackberry 及windowsphone 的自动化测试。它能够在真实设备上录制也可以在模拟器上录制,可同时在不同的设备运行测试,插件丰富,包括 HPUFT(QTP),WebDriver(selenium),JunIT,微软 visual studio 和 pathon。可以与ALM 连接,Jenkins 和其它持续集成工具。可以通过 usb 或是无线网线与设备进行联接。

这个 SeeTest automation 功能还是真奇全,但这个软件是商业软件,它还有配套的SeeTest Could 以及虚拟化软件。价格比较昂贵,功能强劲。

我们再在看一款,叫 KeyNote DeviceAnyWhere,这是一款和 SeeTest Automation 差不多的软件,支持支持 iOS,Android, Blackberry 及 windowsphone 的自动化测试。而且它也对设备提供云的支持。功能强,价格贵,是一款企业级的商业软件。

三、对比

通过对备选软件的对比,相信很容易能够得出您所需要的适合的移动设备自动化测试工具。可能也有看官在好奇我们最终选了什么软件。我可以负责任的告诉大家,做为一家有钱任性的大公司,我们毫不犹豫的选择了商业软件,而且那两款商用软件都有啊。

抛开钱的问题,做为一家企业,你有可能会有这样的潜在需求,即你希望你的设备是可以集中管理的,比如说,我在大连有一个移动设备中心,然后在北京也有一个,在上海也有一个,如果贵公司是全球企业,可能你在美国,英国等都有一个移动设备中心,如果需要设备是共享的,那么如果你选择的自动化测试工具提供云的支持,那么每个中心的设备大家都是共享可用的,你也可以最大化的利用到每一台设备。

当然,大多数互联网公司 我相信会更可能选择开源的appium,它免费,又可以自己动手定制,一般来讲中国大多数互联网公司对自动化测试云的要求不是那么强烈,如果真有要求,我们一般也会自己想办公,利用现有的开源软件及技术,自己来搭建。

讲到这里,实际上我们应该已经了解到,对于任何一种工具的选择,我们首要考虑其功能性,看能够满足我们的要求。其它,看价格。性价比高的优先考虑。最后我们一定将潜在的需求也列出来,是否有设备云的要求,是否有持续集成的要求,是否对我们所擅长的编程语言有支持,以及是否有利用扩展等。

除此外,如果您打算入手商业工具,这里还建议各们先试用,小范围使用评估并反馈结果。一般商业软件都有试用期,通常为一个月,如果试用一个月不够,通常情况下要求延长试用期也是可行的。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

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

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

相关文章

最长上升子序列

基于最长上升子序列 LIS 求最长上升子序列有两种做法求最长上升子序列有两种做法求最长上升子序列有两种做法 一种是n2复杂度的线性dp一种是n^2复杂度的线性dp一种是n2复杂度的线性dp 另一种是O(nlogn)复杂度的贪心二分另一种是O(nlogn)复杂度的贪心二分另一种是O(nlogn)复杂度…

看BP英文文献生词记录

看BP英文文献生词记录 总的来说,该论文是在讲CAT和SAR的后向后向投影之间的联系与区别 acoustic imaging 原声成像 polychromatic 美 [pɒlɪkroʊ’mtɪk] 英 [pɒlɪkrəʊ’mtɪk] adj.多色的 illumination 美 [ɪˌlumɪˈneɪʃ(ə)n] 英 [ɪˌluːmɪˈne…

我国牛血清行业现状:FBS是最常用血清添加剂 但目前市场亟需规范化

根据观研报告网发布的《中国牛血清行业现状深度研究与投资前景分析报告(2022-2029年)》显示,牛血清是血清的一种,是一种浅黄色澄清、无溶血、无异物稍粘稠液体,内含有各种血浆蛋白、多肽、脂肪、碳水化合物、生长因子、…

15. 使用stunnel加密tcp数据传输

主题:使用stunnel加密隧道对tcp数据进行加密传输。 开发环境: 客户端: stunnel5 Win10服务端: stunnel5 Ununtu18.04(虚拟机) Qt5.9.9对于stunnel,前面博客有所提及,有兴趣可以自行观看,…

javaSE(包、封装、static用法、代码块)

1.包 (文件夹) 为了更好的管理类,把多个类收集在一起成为一组,称为软件包。 在Java中也引入了包,包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式,比如:一…

【细读JS忍者秘籍】深入生成器函数的底层原理

深入生成器函数的底层原理 分析执行上下文 生成器函数本质上还是一个_函数_,所以它的执行离不开 执行上下文 function* generator() {console.log("status1");yield "hello";console.log("status2");yield "world";}let…

Web入门开发【七】- 运行原理

欢迎来到霍大侠的小院,我们来学习Web入门开发的系列课程。 首先我们来了解下这个课程能学到什么? 1、你将可以掌握Web网站的开发全过程。 2、了解基础的HTML,CSS,JavaScript语言。 3、开发自己的第一个网站。 4、认识很多对编…

学到羊之Kafka

1 kafka 是啥 Kafka 是一款开源的消息引擎系统,用来实现解耦的异步式数据传递。即系统 A 发消息给到 消息引擎系统,系统 B 通过消息引擎系统读取 A 发送的消息,在大数据场景下,能达到削峰填谷的效果。 2 Kafka 术语 Kafka 中的分…

性能测试要学习哪些知识?全在这里了

基础:   完整的性能测试流程     需求-计划-方案-环境搭建-用例设计-数据准备-场景设计-脚本开发-脚本执行-结果分析-问题反馈-性能调优-结果报告   性能指标     TPS,QPS,RPS,HPS,RT,VU&#…

【Pandas入门教程】在Pandas中如何创建plots

在Pandas中如何创建plots 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 文章目录在Pandas中如何创建plots导包数据集准备【小结】导包 import pandas as pd import matplotlib.pyplot as plt数据集准备…

力扣(LeetCode)200. 岛屿数量(C++)

深度优先遍历 求连通块数量。可以遍历所有格子,当格子是岛屿,对岛屿深度优先遍历,找到整个岛,并且将遍历的岛屿标记,以免重复遍历,或递归死循环。标记可以使用状态数组,也可以修改格子的值。本…

SQL注入渗透与攻防(十)之加解密注入和堆叠注入

目录 SQL注入之加解密注入 案列演示 SQL注入之堆叠注入 案列演示 SQL注入之加解密注入 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 案列演示 这里我们拿sql-libs的第二十一关来进行演…

学习TrustZone可以参考的资料

最近看到了一篇学习资料分享的,感觉可以转过来做个记录,除去前辈分享的资料以外,我还觉得ATF的源码里面的DOC目录下的资料也是很不错的,起码可以让你对BL31有个比较不错的认识。当然那个有点太细节了。 最近看PSA安全技术交流微信…

30多岁想转行,零基础学编程,来得及吗?

“30多岁想转行,零基础学编程,来得及吗?能找到好工作吗?”这类问题,总是反复出现。尤其是最近我受《自学是门手艺》鼓舞,也借着参与 xue.cn 的契机想要把 python 学的全面而完整,也总有朋友找我…

从工地打工,到狂揽10个大厂offer、副业赚100万:培训班出来的程序员是怎么做到的?

七年前我 985 毕业却沦落到工地打工,七年后我已经收到了 10 个大厂 offer 。 你好,我是吴师兄,一位曾经的学霸毕业只能去工地,而如今大厂 offer 拿到手软,Github 全球 TOP100 算法仓库创作者,公众号五分钟…

eclipse和sts安装lombok

eclipse和sts安装lombok 说明 sts 是 eclipse集成springboot的开发环境 所以 sts 和 eclipse 安装 lombok 步骤基本一样 参考网址: https://blog.csdn.net/qq_39826207/article/details/119007580?ops_request_misc%257B%2522request%255Fid%2522%253A%252216708973141680…

算法day57|647,516

目录 647. 回文子串 516.最长回文子序列 动态规划总结篇 647. 回文子串 dp数组的定义 dp[i][j]代表的是区间[i,j]的字串是否为回文字符,如果dp[i][j]为true,否则为false 递推公式 如果s[i]和s[j]相等的话 1.ij 为同一个字符,dp[i][j] True 2 i与j相差1…

Kafka大厂高频面试题:在保证高性能、高吞吐的同时保证高可用性

Kafka的消息传输保障机制非常直观。当producer向broker发送消息时,一旦这条消息被commit,由于副本机制(replication)的存在,它就不会丢失。但是如果producer发送数据给broker后,遇到的网络问题而造成通信中…

火山引擎 DataTester 上线“流程画布”功能,支持组合型 A/B 实验分析

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 在精细化运营的时代,运营活动同样需要有精细化的策略,例如在年末大促活动中,设计 APP 弹窗提醒、满减、会员领券时,我…

C#语言实例源码系列-实现批量更改文件名称大小写或扩展名

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…