android自动化脚本
⑴ android app自动化测试工具有哪些
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、Espresso是Google的开源自动化测试框架。相对于Robotium和UIAutomator,它的特点是规模更小、更简洁,API更加精确,编写测试代码简单,容易快速上手。因为是基于Instrumentation的,所以不能跨App。配合Android Studio来编写测试的简单例子
6、Selendroid:也是基于Instrumentation的测试框架,可以测试Native App、Hybird App、Web App,但是网上资料较少,社区活跃度也不大。
7、Robotium也是基于Instrumentation的测试框架,目前国内外用的比较多,资料比较多,社区也比较活跃。缺点是对测试人员来说要有一定的Java基础,了解Android基本组件,不能跨App。
8、Athrun是淘宝出的一个移动测试框架/平台,同时支持iOS和Android。Android部分也是基于Instrumentation,在Android原有的类基础上进行了扩展,提供一整套面向对象的API。这里有详细介绍。
9、Appium是最近比较热门的框架,社区也很活跃。这个框架应该是是功能最强大的,
它的优点:
开源;
支持Native App、Hybird App、Web App;
支持Android、iOS、Firefox OS;
Server也是跨平台的,你可以使用Mac OS X、Windows或者Linux;
它的哲理是:
用Appium自动化测试不需要重新编译App;
支持很多语言来编写测试脚本,Java、Javascript、php、Python、C#、Ruby等主流语言;
不需要为了自动化测试来重造轮子,因为扩展了WebDriver。(WebDriver是测试WebApps的一种简单、快速的自动化测试框架,所以有Web自动化测试经验的测试人员可以直接上手);
移动端自动化测试应该是开源的;
它的设计理念:
Client/Server架构,运行的时候Server端会监听Client端发过来的命令,翻译这些命令发送给移动设备或模拟器,然后移动设备或模拟器做出响应的反应。正是因为这种架构,所以Client可以使用Appium client libraries多种语言的测试脚本,而且Server端完全可以部署在服务器上,甚至云服务器。
Session,每个Client连接到Server以后都会有一个Session ID,而且Client发送命令到Server端都需要这个Session ID,因为这个seesion id代表了你所打开的浏览器或者是移动设备的模拟器。所以你甚至可以打开N个Session,同时测试不同的设备或模拟器。
Desired Capabilities,其实就是一个键值对,设置一些测试的相关信息来告诉Server端,我们需要测试iOS、还是Android,或者换是WebApp等信息。
Appium Server是Node.js写的,所以可以直接用NPM来进行安装。
Appium Clients,Mac OS和Win下提供GUI,不需要装Node.js,方便测试人员操作。
相关限制:
如果你在Windows使用Appium,你没法使用预编译专用于OS X的.app文件,因为Appium依赖OS X专用的库来支持iOS测试,所以在Windows平台你不能测试iOS Apps。这意味着你只能通过在Mac上来运行iOS测试。
总结:
在iOS部分是封装了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就说Appium同时封装了UiAutomator和Instrumentation。所以Appium拥有了以上几大框架的所有优点:跨App,支持Native App、Hybird App、Web App,还支持N种语言来编写你的测试脚本。
⑵ 如何利用jenkins来做android自动化
首先搭建起jenkins环境,android官方提供了使用ant编译打包的脚本,所以要在jenkins系统配置里面将ant配置好;然后在jenkins里面新建一个项目,这里列出比较重要的几项配置:
1、项目源代码位置,一般就是指定svn吧
2、构建过程添加shell,写入如下命令:
android update project -t ? -p ? -n ? (其中第一个问号处填写要使用的androidAPI版本,可在命令行中用android list target获得,第二个问号处填写项目目录,当前目录的话就用 . 表示,第三个问号是填写项目名称)
3、然后添加ant调用,最好要会ant的基础使用
这几个配置都是为了能将源代码打包成apk文件,打包完成后,可以再次调用shell,连接设备或者打开模拟器,安装应用,执行自动化脚本;
⑶ 创造 | 一个强大的 Android 自动化打包脚本
该脚本是我在独立开发过程中,为了提升 Android 应用打包和运营的效率而开发的脚本。项目地址是,
https://github.com/Shouheng88/autopackage
如项目中的语言构成展示的,该脚本完全使用 Python 语言开发完成。
使用起来非常简单,首先你要准备如下的环境,
然后,通过编辑配置文件 config.yml 对脚本进行配置。比如,
YAML 格式也不算新颖,早在几年之前的 SpringBoot 里面就已经采用了这种格式。相比于使用 json 或者 properties 等格式的配置文件,它更加简洁。
1、使用 gradle 指令自动打包,区分 32 位和 64 位 :因为现在有些应用市场明确要求区分 32 位和 64 位,所以,打包的时候要分开进行打包。
2、打包完成之后将 APK 拷贝到指定的目录 :主要用来做本地的 APK 文件备份,后面也会用这里拷贝的 APK 文件进行自动化加固。
3、使用 diffuse 输出相对于上一个版本的 APK 版本差异报告 :diffuse 是 JakeWharton 开发的 APK, AAB, AAR 和 JAR 的对比工具。这里我用它对比当前版本和上一个版本的 APK 的信息,以实现对 APK 质量的监控。diffuse 项目的地址是 https://github.com/JakeWharton/diffuse
3、拷贝多语言资源到指定的目录,并自动提交到 Github 仓库以便于协助翻译 :对做国际化的应用的开发者而言,我们可以通过应用内的协助翻译功能借助社区的力量实现应用的多语言。这里我尽量将这个过程做得更加自动化。即在应用打包完成之后将应用内的多语言资源按照版本信息拷贝到指定的目录下。然后使用 Git 工具将其推送到 Github 等。具体的效果可以参考 https://github.com/Shouheng88/LeafNote-Community .
4、自动打 tag 并提交到远程仓库 :该功能用来在打包完成之后使用为当前版本添加 Git tag,以便于后续根据版本回滚到指定的 Git 提交记录。
5、根据 Git 提交记录自动生成更新日志 :上面做了为项目自动添加 Git tag 的功能之后,我们可以根据当前版本到上一版本之间的 Git 提交记录的 comment 信息自动生成版本更新日志。虽然,这个这样生成的更新日志并不能直接用作发布时的更新记录,但在至少可以让我们直观得看到这个版本修改了什么。
6、使用 360 加固 对上述 APK 进行加固并输出到指定的目录 :加固操作其实非常简单,只需要一个 command 指令就可以完成了,
不过在使用上述命令之前需要先通过 GUI 的形式修改你在 360 加固中的渠道和签名信息(直接手动改文件也可以)。
7、上传打包 APK 到蓝奏云 :蓝奏云是现在很多开发者用来分享软件的一个云存储平台,100M 以下的文件可以免费存储,类似于网络云。上传蓝奏云之前需要先修改配置文件,
这里需要填入的 ylogin 和 phpdisk_info 可以在登录之后通过 Chrome 的开发工具查看 cookie 信息得到。目前能够做到自动化的一个方案就是使用上述两个信息。
8、通过 Telegram bot 将打包完成的渠道包和更新日志信息发送到 Telegram 群组 :对海外的用户我们可以通过 Telegram 作为一个交流的渠道。Telegram 是一个非常好用的聊天软件。它提供了 bot 功能,即一个可以推送消息的机器人。我们可以通过这个功能来在群组中推送消息、图片和文件。Telegram 的 bot 有非常强大的自定义性。其实我们完全可以基于爬虫和 bot 维护一个社区,然后通过在社区内推送广告来获得一些利益。这也不失为一个赚钱的渠道。使用 Telegram bot 之前需要在配置文件中填入如下信息,
这里的 token 是注册 bot 的时候得到的信息。chat_id 可以通过如下方式获取到:
即将 token 信息填入到上述 <YourBOTToken> 处。在返回的 json 结果中可以获取到 chat id 信息。
向群组推送信息的方式非常简单,一个 http 请求即可完成,
更多的协议可以参考这个文档: https://core.telegram.org/bots/api#senddocument
9、完成上述操作之后使用邮件通知打包结果 :最后就是在完成了最终的打包操作之后通过 Email 发送一封邮件,内部包含了本次打包的 diff 信息等给指定的用户。使用邮件功能需要在配置文件中填写,
这里我们使用的是 QQ 邮箱来发送邮件。这里需要填写的 user 和 password 字段分别是邮箱和开通 smtp 服务时系统提供的密码信息。QQ 邮箱开通 SMTP 服务器其 官方文档 即可。
上述是该打包脚本的主要功能。后续我会添加更多功能。因为时间有限,有些功能需要修改一下才能使用。不过,许多功能我都封装成了独立的 Python 脚本,如果需要的话可以自己做细微的修改。对于这个脚本,如果你有更好的建议和想法,可以跟我交流~
⑷ android自动化测试脚本 用elipse编译 如何编写代码执行对手机中的图片进行Zoom in 和zoom out
建议你到qun里问,这里有很多牛人。
⑸ 如何使用python做android的自动化测试
下面我们开始第一个简单的Android UI自动化测试
1.使用adb命令连接真机或模拟器
2.打开uiautomatorviewer工具
3.使用uiautomatorviewer工具获取应用的元素进行定位
4.简单介绍unittest框架的使用方法
5.使用Python编写猫宁考勤应用注册模块的自动化测试
1.使用adb命令连接真机或模拟器:
手机USB连接电脑,进入开发者模式;
cmd命令:adb devices ,查看手机是否连接
4.简单介绍unittest框架的使用方法
⑹ 如何使用python做android的自动化测试
一、首先说说手机自动化测试的原理 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、可以自己开发一个手机方面的自动化测试工具,原理上一样的 如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:[email protected]
⑺ android自动化测试脚本怎么写
先学一门语言,然后再谈写脚本的事情。因为写脚本不是写作文,告诉你怎么写,你就会写的。
⑻ android 怎么做自动化测试
测试手段1:CTS
CTS原来只对OHA联盟开放。最近Google把它Release出来了。似乎做过一些裁剪, 比如针对Java虚拟机的测试,似乎被删除了,但我们一般用不着这么高深的。
针对每个版本,比如 2.1,2.2,Goolge发布了一个兼容性规范,而CTS测试就是用来确保某手机或者模拟器符合该兼容性规范。
CTS测试基于Android instrumentation测试,其又基于JUnit测试。说白了,CTS就是一堆单元测试用例。这也是Java语言的擅长部分。
在2.1模拟器上试验了一下,有少数没有通过。
目前CTS主要包括功能方面的测试,有少数的性能方面的测试。性能测试未来会越来越多。
总的来说,CTS跟WM的LTK测试还是弱了一些,毕竟还年轻。它只包括自动化测试,目的主要是保证API的兼容性。由于基于单元测试,CTS 本身不能用于测试多应用交互的情况。
对我们的帮助:
1)应用程序的开发者可以开发出自己应用的单元测试,并将其加入CTS测试集。
2)设备制造商可以通过周期性运行CTS测试,确保没有对Android伤筋动骨。
测试手段2:Monkey
猴子测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等。看手机多长时间会出异常。
可以设置让Monkey只测试某个应用,从而辅助应用程序的开发。
对我们的帮助:
1)应用程序的开发者可以测试自己应用的鲁棒性。
2)设备制造商可以使用猴子对自己的测试施行压力测试。看设备能坚持多久。
测试手段3:ASE
ASE 意思为Android脚本环境,即我们可以通过脚本(比如 Python)调用Android的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。
个人觉得这对复现某些偶发故障非常有帮忙。
目前ASE还处于它的成长期,希望它不断成熟,为开发者提供更多便利。
测试手段4:其它
可以写一个Android应用程序,命令行脚本等,在其他方法不能实现时,就只能用这些方法了。
总结
一方面我们要充分利用Android提供的现成测试,密切关注其进展,另一方面,我们要学习好java/Python编程,必要时,自己开发自己的测试用例。
作为模块开发者,一定要写自己的单元测试,一方面可以保证自己的代码没有缺陷,另一方面,也为系统级测试提供素材。
当然,自动化测试关键还在于意识,创意比实现更重要。
⑼ Android自动化测试工具有哪些
1、 Robotium 安卓测试工具
Robotium是一款经常使用的自动化测试工具软件,支持Android。
Robotium是一个免费的Android UI测试工具。它适用于为不同的安卓版本和子版本测试自动化。软件开发人员经常把它描述为Android Selenium。Robotium测试是用java写的。事实上,Robotium是一个单元测试库。
但通过Robotium创建测试需要花费很多时间和努力,因为为了自动化测试还需要修改程序源代码。该工具也不适合与系统软件的交互,它不能锁定和解锁智能手机或平板电脑。Robotium也没有录制回放功能,也不提供截图。
2、MonkeyRunner 安卓应用测试
Monkeyrunner是一款流行的Android测试工具,用于自动化功能测试。
这个工具比Robotium更低一层次。这个不必处理源代码来做自动化测试。这个测试可以用Python写,并且可以使用录制工具来创建测试。
Monkeyrunner可以连接到电脑或模拟真实设备运行测试。该工具有一个接口,用它来控制智能手机,平板电脑或外部模拟器的Android代码。
这个测试工具的缺点是,它必须为每个设备编写脚本。另一个问题是,每次测试程序的用户界面变化都需要调整测试脚本。
3、Ronaorex 安卓测试应用工具
Ranrex 是一款不仅可以支持最新Android版本,也支持从Android2.2开始的早期版本和分支版本。
Ranorex的优势是它有详细的截屏报告。它能通过Wifi连接智能手机和平板电脑。
一个自动化测试工程师通过这个Android工具可以不用XML数据格式来详细编写数据驱动的测试。Ranorex工作室使自动化测试工程师只要点击鼠标就可容易地创建测试。它允许详细声明额外的程序模块,来用于在后期开发周期中测试更复杂的场景。
它是一个商业的移动应用工具,其许可价格为1990欧元。不过Ranorex搜索功能相当慢;它需要30秒来完成这样的操作。我们必须为Ranorex配备apk文件设备,否则无法通过这个工具实现自动化测试,因为它只能在APK文件设备上工作。
⑽ 想要学习编写android自动化脚本,跪求相关的资料和注意事项。
这个是学习线路图,我这还有资料,你如果感觉线路图可以的话,给我发邮件,我给你发资料。[email protected]