从做手机系统软件件自动化 测试

手机自动化测试工具实现
手机自动化测试工具实现
一、PC 端监控工具实现
1、手机自动化可解决的问题
( 1 ) 压力测试:一些连续不断的操作,比如反复切换歌曲播放及联网操作等
极限临界测试:一些极限条件的构造(创建多个列表)及输入字符个数等
兼容及中断:比如在播放或下载歌曲的时候来电话或者信息(动态交互)
基本功能回归测试:这样大大的节约了时间和人力成本
( 5 ) 预测试(版本接收测试)
( 6 ) 专项测试
2、实现原理
(1) 手 机 自 动 化 测 试 的 原 理 为 PC 上 一 个 控 制 端 ( 测 试 工 具 ) 与 手 机 上 的 一 个agent 端,通过串口、USB 或者无线方式将 PC 与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给 agent 端解析,然后 agent 将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent 可以抓取这些信息,然后传回给 PC 端,这样就完成了一个完整的手机自动化测试。
关键点在于 agent,可以利用 MMI_Command(AT comand)的方式来控制手机终端,原理就是给手机提供一个响应的接口。
而对于 PC 控制端,这个测试脚本用各种编程语言都可以,看如何定义。
3、TMTS 的 PC 端框架架(agent)说明
为什么需要 PC 端框架
单单依靠 Instrumentation 无法满足跨应用测试的需求
一些功能,如在测试用例中修改服务器端数据库,很难在移动设备端实现
PC 端框架的原理
PC 端运行时,会不停尝试去连接 PC 本地指定端口,由于执行了 adb
forward 命令(所以要求运行测试的设备都是具有 root 权限的),PC 端实际会去连接移动设备端指定端口
移动设备端框架在运行时会启动一个 ServerSocket,监听来自 PC 端的
Socket 请求
移动设备端发送 athrun 自定义格式的命令至 PC 端,PC 端收到后收到后
会解析命令,然后执行具体的操作,将结果再通过 socket 发送至移动设备端
PC 端目前提供的功能
首先以下功能的 API 都在 framework 中提供,agent 只是负责实现这些功
通过 Android 系统中 monkey 去点击屏幕上一个点或是物理按键(目前建立与 monkey 的通信机制,暂提供这两项操作,可根据自身需求进行扩展)
修改服务器端(android 应用是客户端)的数据
在模拟器上模拟来电,模拟短信
二、关键技术实现
1、消息传送机制
利用手机 Modem 中提供的 AT Command 通过串口向手机端建立命令消息通讯,目前手机厂商提供了常用的 AT Command,基本满足普通的自动化测试需求。
2、图像识别
图像识别主要通过抓取 LCD 屏幕显示图像进行智能识别来模拟测试工程师的双眼辨识文字或图像信息,以此判断测试结果。主要涉及图像的获取和对比分析,智能识别是一个比较专业的研究领域,更进一步的研究需要进行调研,目前我们可以考虑是否能够通过第三方工具来实现,比如借助目前已经成熟的测试工具QTP 等。对于图像获取在手机平台上应该具备这样的接口,或者自行开发这个接口。
3、测试脚本
测试脚本的定义:
通常来说,测试脚本就是被测试工具执行的一系列指令,而不是在被测系统上执行的指令。测试脚本一般通过脚本开发人员编写或者录制脚本工具录制。拿我所用的手机自动化测试工具举例来说,被测试工具执行的是 python 脚本,而手机是用 C 开发的。最后发给手机执行的命令是通过手机 server 对测试工具发来的消息的解析。
测试脚本相关技术的目的
知道了什么是测试脚本之后,我觉得下一步应该去想一想为什么要去探讨这些技术,这些技术又给测试脚本带来了哪些好处。
关于上面的两个问题,我们首先得知道与测试脚本相关的两大活动。第一个是开发,另一个是维护。这两个活动都跟时间成正比,测试脚本的好,复杂,维护少,开发周期长;测试脚本简单,开发周期短,维护周期长。它们之间的关系可以用如下图来表示:
那么把开发
脚本作为一个工程来讲的话,我们就希望用最少的时间及最少的成本去做这两件事。使开发和维护达到一个最佳值。如此,我们探讨测试脚本技术的目的也就出来了,就是减少自动化测试脚本开发和维护的成本。
好的测试脚本的特性既然我们知道了运用测试脚本技术的目的,那么为了达到这个目标我们就要把其具体化。那下面我们就来罗列一下好的测试脚本应该具有的特性。
1. 可维护性
接下来我们要谈的关于测试脚本的关键技术就是为了使测试脚本具有以上这些
测试脚本关键技术
下面我会以所用到的手机自动化测试工具为例,讲解一个最原始的”脚本”
如何运用这些技术对脚本进行封装和设计使其演变成一个高级的好的测试脚本
首先我们来看看最原始的脚本使个什么样子,你可以这样理解,它是最后运
行在被测软件上的那段代码,严格上来说,它都不能被称为脚本,所以我给加上
引号。就那我所用的手机测试工具来说吧,最原始的脚本就是一个自定义的 xml
结构的消息。xml 结构通常如下,
上 面 的 xml 消 息 由 自 动 化 测 试 工 具 的 客 户 端 通 过 usb 数 据 线 发 给 手 机 的 test
server 端,test server 端对消息进行解析,然后再由 Server 端发给相关 Server
这些相关 Server 在这里通常是 keyboard server 和 window server. Keyboard
server 通 常对 接受 到的 按键序列 进行 响应,test server 会 从 Window server
获得手机的 UI 信息并和 expect 的值进行对比。
现在我们就要对这个最原始的脚本进行设计和封装。
1.线性脚本
线性脚本是我们对最原始的脚本的第一次封装,线性脚本就是简单的测试脚本,形象的来定义就是我们通常录制手工测试用例得到的脚本,这些脚本由低层次的一些函数组成,这些低层次的函数通常由测试框架来提供。他们通常提供按键,移动,输入数据,比较数据的功能。比如笔者的手机自动化测试工具所提供的相关函数有 pressKey(),expectText(),
expectAnimation(),expectBitmap()函数。通过线性脚本使我们远离了编写 xml消息的繁杂,我们只需根据测试用例录制脚本就能完成测试脚本的编写,这迈出了自动化测试脚本编写的第一步,我们来看看线性脚本的特点。
简单,开发周期短
没有逻辑判断,也就是说编程语言中的控制语句 if,else,while
可维护性差,脚本很差,只要 case 发生一点变化,就要进行重新录制
没有复用性
让我们用好的测试脚本所具备的特点来判断,基本都不符合。所以线性脚本不是我们最终所追求的脚本,我们还需继续努力。
2.结构化脚本
自动化脚本的价值体现在脚本的复用,复用的次数越多,价值也就越大。为了提高脚本的复用性,引用了结构化设计的脚本。结构化脚本就是在原有线性脚本的基础上增加了各种逻辑结构,包括选择性结构,分支结构,循环迭代结构,还具有函数调用功能。这样就可以使脚本模块化,使脚本具有复用性,维护性也得到了提高。但依然存在问题,比如,测试数据和测试逻辑混在一起,相当于测试数据硬编码在脚本中,于是我们引入了数据驱动这个技术。
3.数据驱动脚本
结构脚本健壮性已经很好了,但是缺点还是有的,通过研究测试用例一般分为测试数据和测试逻辑。就能发现结构化脚本没有把这两个分开,测试数据还是和测试逻辑黏在一起,这样就会给维护带来复杂性,比如,我们只想改改测试数据,我们不得不去动测试逻辑相关的脚本。这样就很可能会无意中破坏测试逻辑。如果把两者分开,则可以保证两者的修改无不影响。这样对 tester 来说修改测试数据就变的容易了,而不需要去懂脚本相关的知识。另外数据驱动脚本也进一步提高了脚本的复用性,尤其是对那些只需改动测试数据的测试用例,测试逻辑脚本得到了复用。而在原来的结构化脚本是不行的。其实数据驱动这项技术不仅在测试中用到,在开发中也在用,就比如 web 开发,html 语言,wpf 的 xaml,moziila
的 xul 等的一些 xml 方式的界面开发都应该是数据驱动的。笔者的自动化测试工具就是用的 xml 来定义测试数据,然后通过对 xml 的解析来导入所需的数据从而建立相关的测试模型。
4.关键字驱动脚本
关键字 驱动 就是 面向脚本 开发工程师和 tester.使 他们编写 脚本 和阅 读脚 本更加容易。就拿笔者使用的测试工具来说吧,比如要通过手机的 option 选项来选择 option 菜 单 中 的 某 一 项 , 如 果 不 用 关 键 字 驱 动 脚 本 , 我 们 就 会 写 一 大 堆pressKey()的按键序列,来让手机执行这些按键命令,这样对 tester 就很不友好,这些按键序列其实应该是面向机器的。如果用了关键字驱动脚本,我们会提供 select 关键字,然后提供 item 参数。加入关键字驱动技术后,同样实现这
个功能,只需调用函数 select(item)即可,这样既利于脚本编写,也利于维护。
因为,从维护的角度来看,你只需要维护 select(item)这个方法。
这些技术都不是各自独立存在的,是相互共存的。讲完了这些测试脚本技术,那么我们可以对测试脚本语言的选择有一些了解。为了实现这些测试脚本技术,我们的脚本语言一定要扩展性好,那么自己定制的测试脚本语言在扩展性方面就比较差,所以我们要选择标准的测试脚本语言,比如 python,vb,tcl,ruby.它们的扩展性好,功能强大,能良好的与开发人员进行沟通。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!MMI自动测试机 非标自动化测试 整机MMI测试机
产品分类:
深圳市斯姆迪电子科技有限公司属行业最具影响力的SMT设备集成商,专注销售自动化设备、智能化集成系统的高新技术企业,已经成功成为无线通讯模块和整机MMI自动测试机的优质供应商。
订购热线:400-001-9722
MMI自动测试机 非标自动化测试 整机MMI测试机
深圳市托普科实业有限公司属行业最具影响力的SMT设备集成商,专注销售自动化设备、智能化集成系统的高新技术企业,已经成功成为无线通讯模块和整机MMI自动测试机的优质供应商。
什么叫做MMI人机界面测试系统?
系统简介:本系统实现对平板或手机整机进行MMI测试,利用机械手、模拟按键和ADB等功能,通过实际操作模拟,可以确保进行完整的功能测试,并且采用自动抽屉,可方便与自动化产线进行对接。
MMI自动测试机,适用于整机测试,测试有互动功能的产品,例如手机,相机,MP4,学习机,车载设备,平板电脑等,替代人工做MMI全自动测试。完全替代人工,有极高的性价比,目前的合作厂商几乎包括全部国内知名手机生产企业,这都是因为以前靠人工测试的缺陷问题多多,一起跟着托普科小编来了解一下。
人工测试的缺陷:
v 在手机制造中,整机功能测试是出厂前必不可少的环节。
v 而目前工厂测试都是依靠人工作业,劳动强度高,效率低。
v 现有测试流程对人员极度依赖,人员流失对产品质量影响极大。
v 人工判定标准模糊,容易被批退,增加生产成本。
MMI自动测试机测试全部的项目,包括:
1)按键功能,对应显示
2)屏幕颜色,坏点
5)相机模组
6)FM,蓝牙,Wifi等
7)接近传感器等等
8)按键,电容屏,电阻屏测试
9)功能机,智能机测试
MMI自动测试机测试优势:
1.代替人手操作
测试系统可以实现:按钮、 触摸、模拟鼠标、 模拟键盘和插拨接口的操控。
2.代替人眼判断&& &
开机界面检测、软件版本、参数査看等功能,软件通过与预先保存的一副参考图片作比较、分析,预先保存的參考图在夹具接好测状系统后可以在测试软件的工程模式下截取。
3.测试过程自动控制 &&&
自动完成测试过程中的切换与接插件控制, 在夹具连接上测试系统后都由测试系统软硬件配合完成,中间无需人手干预。 &
4.测试功能灵活组合 &
软件提供了近百个高级和基本的模块以供选择,其中每个基本的模块还可以组合成新的功能模块。
MMI自动测试机技术规格:如图所示
* 表示必填采购:MMI自动测试机 非标自动化测试 整机MMI测试机
* 联系人:
请填写您的真实姓名
* 手机号码:
请填写您的联系电话
电子邮件:
联系地址:
* 采购意向描述:
请填写采购的产品数量和产品描述,方便我们进行统一备货。
斯姆迪推荐产品
联系斯姆迪
服务热线:2
咨询热线:400-001-9722
传真号码:1
公司邮箱:
公司地址:深圳市宝安区福永怀德翠岗工业园六区10栋
地址:深圳市宝安区福永怀德翠岗工业园六区10栋
电话:400-001-9722传真:2
备 案 号:  技术支持:
友情链接:    
技术支持:手机自动化测试
老师有没有手机自动化测试方面的课程进行分享呀,比如最近比较流行的的:monkeyrunner和monkey的学习和分享
浏览 1025回答 1
测试越来越重要,同求一些测试相关的技术分享
随时随地看视频5款常用Android手机自动化测试工具简介【软件测试吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:65,959贴子:
5款常用Android手机自动化测试工具简介收藏
1、Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出。实际上该工具只能做程序做一些压力测试,由于测试事件和数据都是随机的,不能自定义,所以有很大的局限性。2、MonkeyRunner也是Android SDK提供的测试工具。严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。缺点是脚本用Python来写,对测试人员来说要求较高,有比较大的学习成本。3、Instrumentation是早期Google提供的Android自动化测试工具类,虽然在那时候JUnit也可以对Android进行测试,但是Instrumentation允许你对应用程序做更为复杂的测试,甚至是框架层面的。通过Instrumentation你可以模拟按键按下、抬起、屏幕点击、滚动等事件。Instrumentation是通过将主程序和测试程序运行在同一个进程来实现这些功能,你可以把Instrumentation看成一个类似Activity或者Service并且不带界面的组件,在程序运行期间监控你的主程序。缺点是对测试人员来说编写代码能力要求较高,需要对Android相关知识有一定了解,还需要配置AndroidManifest.xml文件,不能跨多个App。4、UiAutomator也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,对比Instrumentation它不需要测试人员了解代码实现细节(可以用UiAutomatorviewer抓去App页面上的控件属性而不看源码)。基于Java,测试代码结构简单、编写容易、学习成本,一次编译,所有设备或模拟器都能运行测试,能跨App(比如:很多App有选择相册、打开相机拍照,这就是跨App测试)。缺点是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。5、TestWriter是上海博为峰结合多年为企业做测试服务的经验所研发的一款具有自主知识产权的自动化测试工具,跨Web、Android、iOS三大平台,为企业用户提供真正的低成本、高效率的自动化测试,引领软件测试自动化运用由技术层面向业务层面转变。用户可在TestWriter中通过统一图形化界面轻松创建测试计划,并驱动执行引擎完成自动化测试任务,有效降低了测试人员能力要求及脚本维护工作量,让自动化测试更简单,更专注于业务。1、完全零编码TestWriter引入对象库,支持对页面元素的智能分析,自动生成操作对象库,或通过简单的点击生成操作对象库;2、图形化界面通过图形化界面,对测试对象、测试步骤、用例等层层封装映射,清晰理清业务关系;业务变动、界面调整时仅需修改相应业务库内容;3、简单易操作支持分布式测试,通过拟定计划,自动匹配测试环境并分配执行机器,无需测试人员干预,轻松实现自动定期回归;4、结果更直观实时查看执行情况,自动记录测试结果,并对错误步骤进行问题分析及错误时UI截图。
登录百度帐号易测云(真机自动化云测试系统)
易测云是一个专业为移动App产品提供真机自动化云测试服务的系统,主要面向智能设备的 APP 产品开发者和测试者,为其提供优质 、高效的云测试服务,解决因为Android平台的碎片化带来的应用程序测试投入成本高、执行效率低等问题。
易测云秉承&解放测试者&的核心理念,采用SaaS模式开发出真机自动化云测试平台。这一平台的出现,为App开发及测试人员提供了全新的一站式测试解决方案,有效提升了个人及团队的生产效率,加快了产品推广速度,并将最终达成用户体验的提升。
未来,易测云将不断推广更多符合市场及用户需求的测试服务,如真机远程控制服务,即开发人员通过网页浏览器即可轻松访问任意一台真实设备,进行应用程序调试。随着产业持续升级,行业不断细分,易测云还将陆续开通IOS、WP等主流Mobile平台的自动化测试功能。同时,结合东软十余年软件测试行业经验并依托专业测试、咨询团队,向App开发者提供O2O的一站式测试整体解决方案服务。
目前,易测云为用户提供适配测试、功能测试、遍历测试和性能测试四种服务,全面为App品质保驾护航。易测云支持Robotium、Athrun、Guerrilla等开源测试框架,并使用基于控件识别、自主研发的测试工具Radar,最大程度满足App开发者以及企业级用户对自动化、自定义测试的需要,提高测试效率,从而有效减少成本投入。
适配测试:易测云目前提供数百真机设备,包括不同分辨率,版本的安卓手机和平板,为开发者提供更加全面的适配测试。同时,易测云可支持APP登录测试,即深度测试APP在登录之后的各项适配兼容指标。
功能测试: 易测云自主开发的开源测试框架Guerrilla,可以方便测试人员快速书写测试脚本,同时易测云也支持基于Robotium和Athrun的测试脚本。易测云支持手写脚本和录制脚本2种脚本生成模式, 且易测云可支持脚本自定义,用户可根据实际需要对脚本进行编辑、回放、截图、断言等任意操作,灵活便捷的脚本处理大大增加了功能测试的便捷性,更符合开发者和测试者的实际需求。
遍历测试:智能遍历应用程序所有界面,具备遍历度更高,覆盖面更广,运行更稳定,结果更清晰等优点。它基于&自愈&型的遍历模式,可以对每一个到达的页面进行结构分析,并对页面进行不间断的持续遍历,还可以根据其程序页面结构做相应的操作,其结构和操作路径都将被存档,保证遍历测试的稳定和路径可控。用户一键提交被测程序后,报告会将程序的遍历路径和动作清晰展现。使用易测云提供的遍历测试,可为app开发者测试时间减少60%-85%。
性能测试:详细记录APP的启动时间、CPU占用率、内存占用值、电池温度、上传网络流量、下载网络流量六项指标,让用户全面、准确了解APP性能情况。
针对不同的用户群体,易测云分别为其提供不同的测试服务。依托线上的自动化真机云测试平台以及线下的专业测试团队于一体的O2O模式,致力于为用户打造符合实际需要的各种测试需求。
针对普通终端用户需要:用户可通过官网体验多种常规云测试服务、数百真机、便捷高效的测试套件,以及全面详尽的测试报告。
针对企业级用户需求:易测云可提供企业定制化服务,可独立部署云服务系统,并可开放访问端口,无限满足用户的私有云或者混合云测试需要。
更多产品信息,请查看以下联络方式:
网站:: 微博:}

我要回帖

更多关于 手机应用自动化测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信