android 自动化测试的傻瓜实践之旅(UI篇) -----小试身手

简介:
导言

  很早以前就开始折腾android的自动化测试,不过,本人毫无测试基础,只能,从google那里搜索到仅有的一些资源,和目前,唯一一本讲android测试的书(应该是吧,如果还有希望告之).

  从google那里搜来的资源大多都是介绍类的文章,比较少有实例操作,关于,android自动化测试,优酷上有个淘宝的框架叫做----TMS的视频演示,因为,那里说不让转载,所以,感兴趣的话就去google一下,就能看到.

  顺便说一下,这个专题不是一个专业,严格的android测试博文,所以,不要以专业的测试眼光去评论,这是,简单的运用一下测试,让我们的程序员编出更好的代码…

自动化的 UI 测试

  目前能免费进行android UI的自动化测试的方法有以下三种:

  Monkey&MonkeyRunner android 的Junit 测试框架 Robotium
入门难度 一般 困难 非常简单
功能方面 很一般 无所不能 基本满足

 

关于Monkey & MonkeyRunner可以参考本人写的另外两篇

android实用测试方法之Monkey与MonkeyRunner (评论部分有些常见问题及部分解决有兴趣的可以大概浏览一下)

增强型MonkeyRunner 脚本计划 (算是一个小小的实践吧)

说下,Monkey&MonkeyRunner

优点: 上手简单,只需要apk

缺点: 文档少,容易出错,编写脚本需要python基础.

android 的Junit

关于这个内容我曾经做个一个小小的视频,后来上传到了优酷

Android 测试入门教程之activity简单测试 (慎入,声音比较蛋疼,画面被优酷压缩得不像样..)

说下, android for Junit

优点: 无所不能…

缺点: 上手不容易,需要源码.

 

Robotium

  本文重点简介的方法….

说下,Robotium

优点: 足够简单,足够强大,支持apk测试

缺点: 还不能替代android for Junit

愉快的UI测试之旅 by Robotium

Robotium 是一个开源项目:

http://code.google.com/p/robotium/

目前最新版本:Robotium 3.1 is now released!

竟然,要做测试,我们要新建一个用于测试的项目:

直接下载项目吧….

http://vdisk.weibo.com/s/3feB5

然后,创建一个android的测试项目..

1,创建项目

image

2,选择要测试的项目

image

3,完成

image

4,把Robotium导入到测试项目里面,顺便说一下:ADT 17 预览版 4已经支持自动把libs下的jar包导入到依赖环境中…用之前版本的朋友手动添加吧…

image

编写第一个UI测试方法
public class FootTabClickTest extends ActivityInstrumentationTestCase2<TabViewActivity> { //1,创建一个自动化测试对象 private Solo tabSolo; public FootTabClickTest () { super("com.achai",TabViewActivity.class); } @Override protected void setUp() throws Exception { // TODO Auto-generated method stub super.setUp(); //2,初始化我们的测试对象 tabSolo = new Solo(getInstrumentation(), getActivity()); } @Smoke public void testClickEachTab(){ //3,获取我们view 中所有的单选按钮,没错就是这么简单… ArrayList<RadioButton> radioGroup = tabSolo.getCurrentRadioButtons(); //4,自动点击每个单选按钮 for(int i=0; i &lt; radioGroup.size(); i++){ tabSolo.clickOnRadioButton(i); //5,暂停1s 用来看效果的… tabSolo.sleep(1000); } //6,又一个强大的功能,直接识别点击当前view中匹配的文本,与控件无关!!!!!!! tabSolo.clickOnText("(?i).*?我的收藏.*"); tabSolo.sleep(1000); //7,这个是长按,注意留意动画 tabSolo.clickLongOnText("返回"); tabSolo.sleep(2000); // tabSolo.clickOnRadioButton(1); } @Override protected void tearDown() throws Exception { // TODO Auto-generated method stub super.tearDown(); } }

 

效果动画:

test2


本文转自 liam2199 博客,原文链接:

http://blog.51cto.com/youxilua/808310

   如需转载请自行联系原作者

相关文章
|
15天前
|
敏捷开发 人工智能 Devops
探索自动化测试的高效策略与实践###
当今软件开发生命周期中,自动化测试已成为提升效率、保障质量的关键工具。本文深入剖析了自动化测试的核心价值,探讨了一系列高效策略,包括选择合适的自动化框架、设计可维护的测试脚本、集成持续集成/持续部署(CI/CD)流程,以及有效管理和维护测试用例库。通过具体案例分析,揭示了这些策略在实际应用中的成效,为软件测试人员提供了宝贵的经验分享和实践指导。 ###
|
15天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
15天前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
15天前
|
Java 测试技术 持续交付
探索自动化测试在软件开发中的关键作用与实践
在现代软件开发流程中,自动化测试已成为提升产品质量、加速交付速度的不可或缺的一环。本文深入探讨了自动化测试的重要性,分析了其在不同阶段的应用价值,并结合实际案例阐述了如何有效实施自动化测试策略,以期为读者提供一套可操作的实践指南。
|
5天前
|
敏捷开发 前端开发 Java
软件测试中的自动化测试框架选择与实践
在当今软件开发生命周期中,自动化测试已成为提升软件质量和开发效率的关键手段。本文旨在探讨自动化测试框架的选择标准及其在实际项目中的应用实践。通过对主流自动化测试框架的分析比较,结合具体案例,本文将阐述如何根据项目需求和团队特点选择合适的自动化测试工具,并分享实施过程中的经验教训。
14 1
|
13天前
|
Devops jenkins 测试技术
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第41天】在软件开发的世界中,快速迭代和高效交付是企业竞争力的关键。本文将带你走进DevOps的核心实践——自动化部署与持续集成,揭示如何通过它们提升开发流程的效率与质量。我们将从DevOps的基本理念出发,逐步深入到具体的技术实现,最终展示一个实际的代码示例,让理论与实践相结合,为你的开发旅程提供清晰的指引。
25 4
|
15天前
|
Web App开发 敏捷开发 测试技术
探索自动化测试的奥秘:从理论到实践
【10月更文挑战第39天】在软件质量保障的战场上,自动化测试是提升效率和准确性的利器。本文将深入浅出地介绍自动化测试的基本概念、必要性以及如何实施自动化测试。我们将通过一个实际案例,展示如何利用流行的自动化测试工具Selenium进行网页测试,并分享一些实用的技巧和最佳实践。无论你是新手还是有经验的测试工程师,这篇文章都将为你提供宝贵的知识,帮助你在自动化测试的道路上更进一步。
|
15天前
|
敏捷开发 Java 测试技术
探索自动化测试:从理论到实践
【10月更文挑战第39天】在软件开发的海洋中,自动化测试是一艘能够带领团队高效航行的船只。本文将作为你的航海图,指引你理解自动化测试的核心概念,并分享一段实际的代码旅程,让你领略自动化测试的魅力和力量。准备好了吗?让我们启航!
|
16天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
17天前
|
数据采集 IDE 测试技术
Python实现自动化办公:从基础到实践###
【10月更文挑战第21天】 本文将探讨如何利用Python编程语言实现自动化办公,从基础概念到实际操作,涵盖常用库、脚本编写技巧及实战案例。通过本文,读者将掌握使用Python提升工作效率的方法,减少重复性劳动,提高工作质量。 ###
34 1