Robotium是一款Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,测试步骤:
- 下载Robotium官方例子以及最新的JAR包;
创建测试工程:选择Android Test Project,并点击下一步,输入工程名,并点击下一步:
选择被测工程IMaaS,并点击完成:
导入下载好的Robotium jar包;
新建junit test case,选择junit4,并输入类名,点击完成。
打开新建的测试类,修改继承ActivityInstrumentationTestCase2,创建构造方法,并编写测试代码:
(1)定义一个Solo实例,测试用例的进行,都依赖于这个实例:Solo mSolo = null;
(2)在setUp()方法中为mSolo实例赋值:
mSolo = new Solo(getInstrumentation(), getActivity());
(3)创建方法testLoginActivity,这里LoginActivity是被测工程IMaaS的LaunchActivity,在testLoginActivity方法中,实现所需测试的执行操作,例如:
a)将系统软键盘隐藏:mSolo.hideSoftKeyboard();
b)获取用户名的输入框对象:EditText input = (EditText)mSolo.getCurrentActivity().findViewById(mSolo.getCurrentActivity().getResources().getIdentifier("edittext1","id",mSolo.getCurrentActivity().getPackageName()));
c)清除输入框中的字符串:mSolo.clearEditText(input);
d)设置预设好的用户名:input.setText(“15000000000”);
e)点击登陆按钮:mSolo.clickOnText(“(?i).?登陆.“);
这里需要注意的是clickOnText方法是让系统执行点击操作,同样使用该方法,可以让系统输入预设的密码,并点击“确定”。
f)获取main_ui的View对象:View view = mSolo.getCurrentActivity().findViewById(mSolo.getCurrentActivity().getResources().getIdentifier("main_ui","id",mSolo.getCurrentActivity().getPackageName()));
g)获取main_ui中第一个ImageView子对象,即“个人资料”按钮:
ArrayList<ImageView> childView = mSolo.getCurrentViews(ImageView.class,view); ImageView imageview = childView.get(0);
h)点击“个人资料”按钮,同clickOnText方法一样,clickOnView方法也是让系统执行点击操作,只是点击的对象不同,前者是点击Text对象,后者是View对象:
mSolo.clickOnView(imageview);
(4)接下来的操作就不再赘述,均是执行点击操作,只是使用不同的方法操作不同的对象。
(5)最后在tearDown()方法中,将Activity结束,即执行finish()方法,则完成了整个测试所需的全部操作过程。编写完成后,打开模拟器或者连接上真机,右击测试类,选择Android Junit Test。Eclipse会切换到junit界面,此时模拟器(真机)会自动执行测试,通过左边界面可以看到运行结果,测试用例成功执行,没有错误或者失败:
JUnit是一个Java语言的单元测试框架。属于白盒测试的范畴。测试步骤:
- 创建测试工程,点击新建工程,选择Android Test Project:
- 输入测试工程名,建议将名字设为被测工程名加Test,例如IMaaSTest:
新建junit test case,选择junit4,并输入类名:
输入被测类名后,会让选择测试的函数,选择需要测试的函数点击完成即可。这里不输入被测类名也可以,在代码里同样可以指定。
如测试showNotice()这个函数,在测试函数里调用@Test public void testShowNotice() { Logger.d("testShowNotice"); JNITest.showNotice(notice_scene); }