新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、确定jdk安装完毕,且检查环境变量
在网站建设、成都网站制作过程中,需要针对客户的行业特点、产品特性、目标受众和市场情况进行定位分析,以确定网站的风格、色彩、版式、交互等方面的设计方向。成都创新互联公司还需要根据客户的需求进行功能模块的开发和设计,包括内容管理、前台展示、用户权限管理、数据统计和安全保护等功能。
2、确定android SDK安装完毕,且检查环境变量
3、确定你的appium和nodejs均安装完毕,且环境变量设置完毕,可以通过cmd命令行:appium-doctor中确定
4、真机开启了usb调试模式,通过命令行执行:appium -a 127.0.0.1 -p 4723 -U N2F4C15A30001571 --no-reset ,其中-u后面的部分是手机的devices。来建立手机端和appium服务器的连接
5、在初始化程序设置一些运行时的状态,如appium版本,手机版本,型号,系统类型。设置待测试的app packagename和activityname
6、test类中写入操作,进行自动化测试
一、首先说说手机自动化测试的原理 1、手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。 2、关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。 3、而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义 4、而又的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制) 5、自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。 二、Android自动化测试方向: 1、CTS,CTS 测试基于Android instrumentation 测试, 其又基于JUnit 测试。说白了, CTS 就是一堆单元测试用例。这也是Java 语言的擅长部分。 2、 Monkey工具,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。 3、ASE,ASE 意思为Android 脚本环境, 即我们可以通过脚本(比如Python)调用Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。我们可以扩充它的API(Java 部分), 并用python 脚本调用这些API, 从而实现丰富的测试功能。用于API 部分可以访问到Android 全部API, python 又能灵活部署测试,所以ASE 的扩展性非常好。 4、Robotium,该工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用 进行测试。Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text 等等。(推举你可以研究一下这个工具,开源的,我有资料) 5、可以自己开发一个手机方面的自动化测试工具,原理上一样的 如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:test_sunny@hotmail.com
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提
既然说到andoird测试工具的分类,我就以分类的角度来回答吧。
1)纯白盒方式的测试,Monkey。楼上已经有哥们提到了,使用moneky更多的是开发team,而不是纯粹的测试team,毕竟要求对android开发比较了解才用得了monkey。
2)偏白盒的robotium,这家伙号称是黑盒,但是本人不太认同~ 因为使用robotium需要知道package和acitivity这样的细节,即便不是开发人员来做,也得从开发人员那里获得不少开发文档才能做。
3)纯黑盒的方式,这个分类比较有意思,我分得细点
3-1)sikuli,原来只针对桌面应用,后来自然延伸到了android app,让人眼前一亮的测试方式。框个图,写个简单的python测试脚本(其实java脚本也可以),测试就做好了,简单又形象,还有逻辑。因为验证点是依赖于图片比对,所以瓶颈也在此。屏幕大小和分辨率的不同是这种测试的硬伤,如果测试团队觉得每个手机上抠下来的图要重新截,那...也就没啥了。
3-2)testin,deviceanywhere等
楼上那个哥们应该是testin的人,介绍已经很全面了,我只概括一下。这类测试本身没有神马特别的,无非是放在了云端,将规模化的测试做到了极致,与其说是测试工具,不如说是测试平台。说缺点嘛也有,由于只是简单的基于坐标的脚本录制(并没有灵活的功能性验证点),这种测试往往比较简单,只是做做简单的适配性和性能测试,毕竟卖点不在测试类型上。
3-3)clicktest(我们家的工具,算是广告吧,呵呵)
论原理,也是基于图片对比技术,只是做了些优化,比对的智能一些,跨手机的效果更好罢了。也支持录制回放,自定义了一些测试命令,易上手,可读性强,不再需要使用者(手工测试人员)编程了。另外,支持工作流式的逻辑集成,可以灵活得组合测试步骤,增强复用性。clicktest是工具,不是平台,欢迎各位咨询和探讨。
对了,还有一种
4)硬件辅助的测试方式,我就不举例了
先说原理,硬件辅助视频输出(摄像头or视频线),控制方式是软硬件结合。这种方式的特点,跨平台杠杠的,但是成本高,包括硬件成本以及硬件工程师的成本。
android自动化测试步骤:
1.标准的monkey 命令
[adb shell] monkey [options] eventcount , 例如:
adb shell monkey -v 500 产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。
上面只是一个简单的例子,实际情况中通常会有很多的options 选项。
2:常用选项
--help:打印帮助信息
-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。
3.事件选项
-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200
--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100
--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:
--pct-motion percent (滑动事件)、 --pct-trackball percent (轨迹球事件) 、 --pct-nav percent (导航事件 up/down/left/right)、 --pct-majornav percent (主要导航事件 back key 、 menu key)、 --pct-syskeys percent (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、 --pct-appswitch percent (activity之间的切换)、 --pct-anyevent percent(任意事件)。
4.约束选项
-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.ckt.asura;
-c:activity必须至少包含一个指定的category,才能被启动,否则启动不了。
5.调试选项
--dbg-no-events:初始化启动的activity,但是不产生任何事件。
--hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。
6.一个简单的monkey命令:
adb shell monkey -p com.xy.android.junit -s 500 -v 10000
表示产生时间序列的种子值:500, 产生 10000个事件 。