Robotium在AndroidStudio中搭建及参数化测试实践
2016-10-18 18:20
218 查看
目前网上的Robotium在AndroidStudio部署配置大部分已经过时,虽然可以运行但会引入很多问题,临时记录搭建及实践过程,后续再详细写下。
第一步:部署AndroidStudio环境
1、开发工具首先要使用AndroidStudio,在eclipse里ADT已经不再更新,eclipse中的junit依然停留在3.8版本,AndroidStudio的junit版本是4.12,可以支持参数化测试。
2、请使用androidTest包开发测试脚本,在AndroidStudio下重新划分了工程的结构,分为androidTest、main、test三个文件夹,其中androidTest为Instrmentation测试包,main为源码包,test为单元测试包,Robotium是在Instrmentation基础上二次开发的测试框架,所以我们在这个包内写测试脚本。
注:从eclipse导出的AndroidStudio工程虽然可以运行,新建的包也可以正确显示,但是导入junit包始终不识别,我这里没有解决,最后新建工程无问题。
第二步:开发配置部署
3、修改build.gradle
因为我这里直接使用Robotium源码,不引入jar,如果需要引用jar加入下面这句
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.0'
注:注意这里testInstrumentationRunner使用的是android.support.test.runner.AndroidJUnitRunner
而不是android.test.InstrumentationTestRunner,这个要特别注意,虽然一样可以运行
第三步:开发case代码
4、新的执行环境不需要继承ActivityInstrumentationTestCase2
详细可以参考官方的源码,链接如下:http://dl.bintray.com/robotium/generic/ExampleTestProject_Eclipse_v5.5.1.zip
注:一定要有@RunWith(AndroidJUnit4.class),否则无法找到testcase,参数化执行修改为@RunWith(Parameterized.class)
5、执行修改
第一步:部署AndroidStudio环境
1、开发工具首先要使用AndroidStudio,在eclipse里ADT已经不再更新,eclipse中的junit依然停留在3.8版本,AndroidStudio的junit版本是4.12,可以支持参数化测试。
2、请使用androidTest包开发测试脚本,在AndroidStudio下重新划分了工程的结构,分为androidTest、main、test三个文件夹,其中androidTest为Instrmentation测试包,main为源码包,test为单元测试包,Robotium是在Instrmentation基础上二次开发的测试框架,所以我们在这个包内写测试脚本。
注:从eclipse导出的AndroidStudio工程虽然可以运行,新建的包也可以正确显示,但是导入junit包始终不识别,我这里没有解决,最后新建工程无问题。
第二步:开发配置部署
3、修改build.gradle
defaultConfig {minSdkVersion 19 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' androidTestCompile 'junit:junit:4.12' androidTestCompile 'com.android.support.test:rules:0.4.1'
因为我这里直接使用Robotium源码,不引入jar,如果需要引用jar加入下面这句
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.0'
注:注意这里testInstrumentationRunner使用的是android.support.test.runner.AndroidJUnitRunner
而不是android.test.InstrumentationTestRunner,这个要特别注意,虽然一样可以运行
第三步:开发case代码
4、新的执行环境不需要继承ActivityInstrumentationTestCase2
详细可以参考官方的源码,链接如下:http://dl.bintray.com/robotium/generic/ExampleTestProject_Eclipse_v5.5.1.zip
注:一定要有@RunWith(AndroidJUnit4.class),否则无法找到testcase,参数化执行修改为@RunWith(Parameterized.class)
@RunWith(AndroidJUnit4.class) public class NotePadTest { private static final String NOTE_1 = "Note 1"; private static final String NOTE_2 = "Note 2"; @Rule public ActivityTestRule<NotesList> activityTestRule = new ActivityTestRule<>(NotesList.class); private Solo solo; @Before public void setUp() throws Exception { //setUp() is run before a test case is started. //This is where the solo object is created. solo = new Solo(InstrumentationRegistry.getInstrumentation(), activityTestRule.getActivity()); } @After public void tearDown() throws Exception { //tearDown() is run after a test case has finished. //finishOpenedActivities() will finish all the activities that have been opened during the test execution. solo.finishOpenedActivities(); } @Test public void testAddNote() throws Exception {
5、执行修改
Run-Edit Configurations-Android Tests-Test类-Specific instrument runner(optional)为android.support.test.runner.AndroidJUnitRunner,一般默认就是这个
6、参数化执行方案源码如下,执行通过:
@RunWith(Parameterized.class) public class TestCase { int direction ; boolean fresh; boolean forward; String url; public TestCase (int direction, boolean fresh, boolean forward, String url){ this.direction = direction; this.fresh = fresh; this.forward = forward; this.url = url; } @Parameterized.Parameters public static Collection data(){ return Arrays.asList(new Object[][]{ {1,false,false,"https://www.baidu.com/"}, {1,false,true,"https://www.baidu.com/"}, {1,true,false,"https://www.baidu.com/"}, {1,true,true,"https://www.baidu.com1111/"}}); } @Test public void test_AAA() throws Exception { }
相关文章推荐
- Robotium第一天:搭建环境测试微信
- Android Studio 里搭建自动化测试框架Robotium
- fltk在Ubuntu Linux里面的搭建和测试--<<C++程序设计原理与实践>>Chapter12:一个显示模型 环境构建篇
- vue组件测试用例实践一(搭建vue测试框架)
- 怎样从0开始搭建一个测试框架_3——参数化
- Android Studio 里搭建自动化测试框架Robotium
- Appium测试环境搭建实践
- robotium之测试APK环境搭建
- Web 渗透测试入门:环境搭建、流程与实践
- Docker学习总结(23)——Docker搭建大规模测试环境的实践
- dubbo实践(一)搭建测试
- 在Android Studio上搭建Robotium测试环境
- ELK实践系列-测试环境环境搭建
- 实践作业2:黑盒测试实践——搭建被测web系统Day 4
- android单元测试最佳实践一:android studio测试环境搭建
- Robotium实践之路基于APK创建测试项目
- Robotium__xp/win7搭建测试环境
- Robotium第一天:搭建环境测试微信
- 怎样从0开始搭建一个测试框架_3——参数化
- robotium从入门到放弃 一 测试开发环境搭建