Android JUnit Test——批量运行测试代码
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/
Android测试三要素
写Android测试用例有三要素,一是我们用的“安卓模拟器device”(用来显示UI),二是“uiautomatorviewer.bat”(用来定位UI上的元素),三是“Robotium”中提供的类(用来与UI元素进行交互)。
批量运行测试分四步
在写好Android的测试用例后,可通过Android JUnit Test批量运行测试代码。一共分四步——
第一步:写一个suite类
第一步:写一个suite类(suite中包含指定的测试用例,如下把SendInfoTest类作为一个测试用例添加进了suite中,LoginTest这个类由于被注释没有被加进suite中):
package com.renren.test.suites; import com.renren.test.SendInfoTest;
import junit.framework.TestSuite; public class SuiteForTest {
public static TestSuite getTestSuite() {
TestSuite suite = new TestSuite();
//suite.addTestSuite(LoginTest.class);
suite.addTestSuite(SendInfoTest.class);
return suite;
}
}
第二步:写一个runner类
第二步:写一个runner类,用来运行指定的suite,runner类继承了InstrumentationTestRunner类,并且重写了getAllTests方法:
package com.renren.test.runners; import com.renren.test.suites.SuiteForTest;
import android.test.InstrumentationTestRunner;
import junit.framework.TestSuite; public class Runner1 extends InstrumentationTestRunner { @Override
public TestSuite getAllTests() {
TestSuite suite = new TestSuite();
suite.addTest(SuiteForTest.getTestSuite());
return suite;
} }
第三步:修改配置文件
第三步:修改AndroidManifest.xml文件,添加一个instrumentation标签,如下图:
其中“android:name”的值填写“项目中的包名+runner类名”,“android:targetPackage”的值填写被测应用app的包名,这个包名不是runner类所在项目中的包名,而是被测app——即被测apk重签名后生成的Package name(随之一起生成的还有Main activity名):
第四步:批量运行测试
第四步:在项目上点击右键->Run As->Run Configurations->选中Android JUnit Test并点击上方的“新建按钮”新建一个叫“ForMyRenren”的Android JUnit Test,Instrumentation runner选择我们自己创建的runner类,点击Run->批量运行测试。
附:获取被测app的包名和活动名的方法
1、下载“apktool.jar”和“apktool.bat”文件->下载地址。
2、 在Android的build-tools路径(我的是C:\Users\Administration\AppData\Local\Android \android-sdk\build-tools\)下选择一个高版本的文件夹(我选择了23.0.2)打开,找到“aapt.exe”文件;
3、将“apktool.jar”、“apktool.bat”和“aapt.exe”这三个文件一起复制粘贴到“C:\Windows”目录下:
4、启动cmd命令行,输入“aapt dump badging apk在本地的路径名”(我用的是人人网re-sign后的apk),如下:
以上我们分别找到了apk的package name和activity name,即对应了apk重签名后生成的Package name和Main activity名。
Android JUnit Test——批量运行测试代码的更多相关文章
- Android Junit测试框架
对应用进行单元测试: 使用Junit测试框架,是正规Android开发的必用技术.在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 1.配置指令集和函数库: (1)配置指令集,指定 ...
- Android JUnit 入门指南
自动化单元测试可以做许多的事,并帮你节省时间.它也可以被用作快速检验新建工程或进行冒烟测试.始终,单元测试是作为一种有效的.系统的检验应用程序各功能执行的方式.Android SDK支持JUnit的自 ...
- 在Android Studio进行“简单配置”单元测试(Android Junit)
起因 在Android studio 刚出.本人就想弄单元测试,可惜当时Android studio不知道抽什么风(准确来说,应该是我不会弄而已).无法执行到相应的代码.后来今天突然自己又抽风.又想去 ...
- 1.Android JUnit Runner(使用AndroidStudio)
一.Android JUnit Runner介绍 1.Android JUnit Runner 1)是一个测试运行器,用于运行Junit3和Junit4的Android测试包 2)替换Instrume ...
- Android 命名规范 (提高代码可以读性)
android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...
- 艾伦 Visual Studio 批量自动化代码操作工具-VS插件发布
艾伦 Visual Studio 批量自动化代码操作工具 以下简称--艾伦工具箱. 艾伦工具箱是一个多文件批量处理插件,目的是为了广大开发者提高开发效率,减少项目代码规范化审计,缩短开发者的项目开发周 ...
- 向Android模拟器中批量导入通讯录联系人
使用adb命令向Android模拟器中批量导入通讯录联系人的方法: 使用adb提供的命令, 可以非常方便地从PC中将通讯录批量导入android模拟器中. 首先要先准备好固定格式的vcf文件, 该文件 ...
- Android Stduio统计项目的代码行数
android studio统计项目的代码行数的步骤如下: 1)按住Ctrl+Shift+A,在弹出的框输入‘find’,然后选择Find in Path.(或者使用快捷键Ctrl+Shift+F) ...
- Xamarin.Android提示aapt退出,代码为255
Xamarin.Android提示aapt退出,代码为255 错误信息:”aapt.exe”已退出,代码为255.出现这种问题,通常是由于该项目所使用Android SDK不完整.通过SDK Mana ...
随机推荐
- Codeforce Round #220 Div2
这场气场太大,居然一个题不会! 所以没交! 赛后发现 A:陷阱多- -!不要超过上下界,可以上去再下来! B:不会做! C:自己想太多- -!
- 20145207《Java程序设计》第9周学习总结
教材学习内容总结 第十六章 整合数据库 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性.厂商在操作JDBC驱 ...
- JSP数据交互习题错误总结
1:如果注册完页面有中文字符需要在提交后的页面显示注册信息,切记先把接受到的request的编码方式改为中文:request.setCharacterEncoding("utf-8" ...
- 关于DISTINCE的用法
SQL SELECT DISTINCT 语句 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值. 关键词 DISTINCT 用于返回唯一不同的值. 语法 ...
- -XX:+PrintGCTimeStamps 打印CG发生的时间戳
-XX:+PrintGCTimeStamps –打印CG发生的时间戳 –[GC[DefNew: 4416K->0K(4928K), 0.0001897 secs] 4790K->374 ...
- 转:V$SQL,V$SQLAREA,V$SQLTEXT
V$SQL*表用于查看Shared SQL Area中SQL情况 V$SQLTEXT V$SQLTEXT用途很简单,就是用来查看完整的SQL语句,V$SQL和V$SQLAREA只能显示1000 byt ...
- PAT乙级 1018. 锤子剪刀布 (20)
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You ...
- OpenStack 计算节点关机,虚拟机状态解决办法
检查服务正常化 1 nova-manage service list 发现很多nova服务没有启动. 全部启动,直到nova-manage service list所有服务都是:)而不是XXX. 虚拟 ...
- 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的
前日在cnblogs上看到一遍文章<每个程序员都必读的12篇文章>,其中大多数是E文的. 先译其中一篇web相关的”每个程序员必知之WEB开发”. 原文: http://programme ...