关于Android自动化测试工具AnTest的构思

本文深入探讨了构建Android自动化测试工具时,使用Python、Jython和JAVA的不同方法和优劣。从语法、功能、模块、平台兼容性和面向对象思想等方面对比分析,为开发者提供了一种综合考虑效率与资源消耗的解决方案。
摘要由CSDN通过智能技术生成

前言:Android自动化测试工具,测试脚本,在网上是很多的,如CTS、UiAutomator、py、shell、bat脚本,包括DDMS和腾讯的APT,以及安全测试工具mercury和Drozer,还有淘宝的太禅(这是一个关于app与web相结合的测试,也就是淘宝app了,其实这个app就是一个浏览器)。虽然可以用的工具很多,但是对于android系统的综合性测试,在测试行业,还没有一个大的集合,可以这么说,散乱的东西太多,我需要一个思路把它们集合起来。于是,这个时候,我思索着构建一个Android AutoTest工具出来。


主要思想:

通过ADB(Android Debug Bridge),利用android原生自带的调试工具和命令,结合手动测试用例,做一个黑盒的android系统的自动化测试工具。当然,为了简单,我得把之前一概的脚本全部都集合都一起去,这样,一个稍微具有完整性的工具就可以出来了。


实现方式:

1、Python:

这是我最喜欢的语言,简单、优雅、自带模块功能丰富,并且不用编译,试想,在计算机处理速度越来越快的大趋势下,运行一个解释器下的工具,能耗费多少资源呢?不过,python的方式还是有着相对应的缺陷。当然,一个东西永远都有着不够完善的一面。下面说说python的优劣势吧

(1)优势:

*语法简单,几乎跟英文相类似,这么简单的语法,加上各种基础模块,简直就是为了实现逻辑而生的高级语言

*功能模块丰富,模块的丰富性,几乎可以让我们随心所欲的做我们想做的事情,操控文件?那是很简单的操作,当然,如果不满足,我们还可以自己编写模块

*解释型语言,解释型,就是边解释边运行,在不用编译的情况下,python会将py文件转换成介于汇编和C之间的形式,再去解释运行,如果脚本更改了,那么它会自动刷新这个文件,这就给我们很多时间来实现我们的想法,不用为编译去浪费太多的时间。

*平台兼容性强,一般市面上所有的操作系统都可以运行python解释器,当然,在你的系统上设置python的环境变量之后,直接点击就可以运行了,多方便。

*面向对象,这个思想的强大,让你的代码几乎无限复用,放弃脚本,将脚本代码复用,不用为编写硬编码去做太多的运行帮助。

(2)劣势:

*运行速度不是很快,如果模块化后,启动时,还是稍许有些慢

*对JAVA的兼容性不是很好,不过也可以用JYTHON,但是那是我下面要说的内容了。

*相当于一个外挂,挂在android设备的外面,中间用ADB做为桥梁,但是ADB这个东西有bug,如果你长时间运行,或者进程过多时,就是崩溃。所以,想想你一千多条用例,跑不下去了怎么办,可以说见仁见智吧(比如CTS还是通过ADB的方式去跑的,那也是2w多条用例,还不是照样跑下来了)

*对于面向过程的人,可能体会不到这个好处,当然,你仅仅用python来编写一个脚本,而不是做一个工具的话,那确实感受不到它的美妙。


2、Jython

这是看了UiAutomator自带的包后,我决定后续再次维护开发的时候,使用它去运行,当然,如果要我去重写一个轮子,那是不最不愿意做的事情,我要做的事情太多,也没有这么多的时间给我去研究,是的,以程序员的角度来说,如果你什么都要会,什么都需要了解清楚再去做事情,效率上反而还不如拿来即用的同事,这正是协同工作和面向对象思想相结合的产物。不过,这个也是为了让我做这个工具下一步的延展,我要在手机上去运行我的工具,那么我想做与UiAutomator相同的操作,那当如何呢?最简单的方式是引用它的包,然后利用它自带的方法去实现了。所以。。。

(1)优势 :

*可以用JAR包,这个是我初步的认识,当然,如果使用过程中,还有新发现,那会继续补充的。

(2)劣势:

*基于jvm,启动速度太慢,monkeyrunner就是这样的,所以,看到了monkeyrunner复杂的方法名和引用,决定重写一个工具的


3、JAVA

基于APK的方式,摈除ADB的缺点,后台运行,服务器处理结果,可行?不过,现在还在学习JAVA语法当中,至于APK的编写。。。后续进行中


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值