Android自动化测试学习之robotium笔记

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介:

  今天突然对Android的自动化测试有点儿感兴趣,google了下,发现自动化测试的工具还真不少,有Monkey,MonkeyRunner,Robotium等太多了,前段时间也看到了 风泊海上 写的《Android自动化测试之Robotium学习》的博文,呵呵感觉也不错,但是我自己也喜欢自己总结,做下笔记哈。

    Robotium工具下载,目前的最新版本是3.4.1  可以到这里下载 http://code.google.com/p/robotium/  

    

 下载完成后,可以看到如下

 

 

将ExampleTestProject_v3.4.1.zip导入到eclipse中,可以看到有两个多了两个项目。NotepadTest是测试项目,测试Notepad的,我们可以直接运行Android JUnit Test 查看运行效果,即可以看到模拟器上面正在自动测试。

 

 

现在我们自己一步步的完整的写个程序进行自动化测试。

1、首先创建一个hellorobotium的project,里面内容简单,只需要一个输入框,和一个按钮即可。逻辑代码直接下载源码看。如下图

 

2、现在开始创建测试项目。右击新建,找到Android Test Project

6

然后选中下一步,填写Project name,自己随便取,然后在下一步选择要测试的项目即可。

 

3、创建完成后,添加robotium-solo-3.4.1.jar,如下图所示

 

4、开始编写测试类(Test)

 

 
 
  1. package com.xzw.test; 
  2.  
  3. import com.jayway.android.robotium.solo.Solo; 
  4. import com.xzw.example.EditorActivity; 
  5.  
  6. import android.test.ActivityInstrumentationTestCase2; 
  7.  
  8. public class Test extends ActivityInstrumentationTestCase2<EditorActivity>{ 
  9.     private Solo solo; 
  10.   
  11.     public Test(){  
  12.         super(EditorActivity.class); 
  13.     }  
  14.      
  15.     @Override 
  16.     protected void setUp() throws Exception { 
  17.         //setUp() is run before a test case is started.  
  18.         //This is where the solo object is created. 
  19.          solo = new Solo(getInstrumentation(), getActivity()); 
  20.     } 
  21.      
  22.     @Override 
  23.     protected void tearDown() throws Exception { 
  24.         //tearDown() is run after a test case has finished.  
  25.         //finishOpenedActivities() will finish all the activities that have been opened during the test execution. 
  26.          solo.finishOpenedActivities(); 
  27.     } 
  28.       
  29.     /** 
  30.      * 测试点击事件 
  31.      */ 
  32.     public void testClick(){  
  33.          
  34.         solo.assertCurrentActivity("进入EditorActivity""EditorActivity"); 
  35.         try { 
  36.             Thread.sleep(1000); //休息1秒 
  37.         } catch (InterruptedException e) {  
  38.             e.printStackTrace(); 
  39.         } 
  40.          
  41.         solo.clickOnEditText(0); //点击输入框 
  42.          
  43.         try { 
  44.             Thread.sleep(1000); //休息1秒 
  45.         } catch (InterruptedException e) { 
  46.             // TODO Auto-generated catch block 
  47.             e.printStackTrace(); 
  48.         } 
  49.          
  50.         solo.enterText(0"xzw");  //往第一个EditText,输入文本。第一个为0 
  51.          
  52.         solo.clickOnButton("Click");  //点击按钮 
  53.          
  54.         solo.takeScreenshot(); //屏幕截图,并保存到 "/sdcard/Robotium-Screenshots/". 
  55.         boolean expected = true
  56.         boolean actual = solo.searchText("xx"); //查找含有xx字符的text,如果没有则返回false 
  57.          //验证预期结果 
  58.         assertEquals("xx is not found", expected, actual);  
  59.     } 

5、运行android junit test查看运行结果。

 

    嘿嘿,搞定是不是很简单啊。 

    欢迎大家一起学习交流。



本文转自xuzw13 51CTO博客,原文链接:http://blog.51cto.com/xuzhiwei/1019911,如需转载请自行联系原作者

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
打赏
0
0
0
0
69
分享
相关文章
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
233 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
一个测试工程师的实战笔记:我是如何在Postman和Apipost之间做出选择的?
优秀的API测试工具应该具备: 分层设计:既有可视化操作,也开放代码层深度定制 场景感知:自动识别加密需求推荐处理方案 协议包容:不强迫开发者为了不同协议切换工具 数据主权:允许自主选择数据存储位置
68 7
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
62 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
1941 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
6月前
|
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
本文是关于自动化测试项目实战笔记,主要介绍了如何测试用户注册功能,包括验证码错误、注册成功以及弹框处理的测试步骤和代码实现。
228 2
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
134 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
296 1
|
6月前
|
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
189 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
自动化测试项目实战笔记(二):解决验证码识别问题
这篇文章介绍了三种自动化测试中验证码识别的方法:使用Python的pytesseract和PIL模块、利用第三方API如万维易源,以及使用开源的ddddocr库,还提到了一些注意事项,比如如何获取验证码区域的截图。
162 2
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
124 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)

热门文章

最新文章