在弹出的图6-71所示对话框中,选中"New Robotium Test"选项,单击"Next"按钮。
这里我们从项目列表里边,选择一个有源代码的项目,也是我们前面讲过的"NotePad"项目,工具会自动的为我们的测试项目起名并填写到标识为"2"下方的文本编辑框内,这里我们对工具起的名字不满意,所以将名字改成了"NotePadTestabc",如图6-72所示。单击"Next"按钮,在弹出的图6-73对话框中,单击"New Robotium Test"按钮,需要说明的是,如果此时大家还没有连接手机设备或者手机模拟器,则需要启动对应的设备或者模拟器,这里我仍然以我的手机设备为例。
此时,"New Robotium Test"的按钮信息变成了"Stop Recording",如图6-74所示。此后,Robotium Recorder将启动"Android Device Chooser"对话框,如图6-75所示。选中我的手机设备,单击"OK"按钮。
Robotium Recorder将开始向我们的手机设备安装"NotePad"应用,并且启动该应用的MainActivity。接下来,我们就可以针对该应用进行操作了,这里我们添加一个便笺,便笺的主题就是"我不能忘记的十件事情",大家会发现我们的操作过程全都会被Robotium Recorder记录下来,如图6-76所示,这里我们想输入完便笺以后,是否成功输入到了文本编辑框中,所以我们添加了一个截屏操作(即单击了"Take screenshot"按钮),然后,单击返回键,对便笺进行保存,操作完成后界面的显示信息如图6-77所示。
产生脚本以后,我们可以单击图6-76所示的"Save"按钮对脚本进行保存。在弹出的图6-78所示的对话框中,我们以工具自动给出的"NotesListTest"作为用例名称,进行保存,单击"OK"按钮,对用例进行保存,保存完成后,我们可以在Eclipse的"Package Explorer"看到形成了一个名称为"NotePadTestabc"的项目,打开该项目,如图6-79所示。
我们打开"src",在"com.example.android.note"包下有一个前面我们保存的测试用例所对应的"NotesListTest.java"文件,其内容如下。
package com.example.android.notepad.test; import com.example.android.notepad.NotesList; import com.robotium.solo.*; import android.test.ActivityInstrumentationTestCase2; public class NotesListTest extends ActivityInstrumentationTestCase2<NotesList> { private Solo solo; public NotesListTest() { super(NotesList.class); } public void setUp() throws Exception { super.setUp(); solo = new Solo(getInstrumentation()); getActivity(); } @Override public void tearDown() throws Exception { solo.finishOpenedActivities(); super.tearDown(); } public void testRun() { // Wait for activity: 'com.example.android.notepad.NotesList' solo.waitForActivity(com.example.android.notepad.NotesList.class, 2000); // Set default small timeout to 19098 milliseconds Timeout.setSmallTimeout(19098); // Click on action bar item solo.clickOnActionBarItem(com.example.android.notepad.R.id.menu_add); // Wait for activity: 'com.example.android.notepad.NoteEditor' assertTrue("com.example.android.notepad.NoteEditor is not found!", solo.waitForActivity(com.example.android.notepad.NoteEditor.class)); // Set default small timeout to 31889 milliseconds Timeout.setSmallTimeout(31889); // Enter the text: '我不能忘记的十件事情' solo.clearEditText((android.widget.EditText) solo.getView(com.example.android.notepad.R.id.note)); solo.enterText((android.widget.EditText) solo.getView(com.example.android.notepad.R.id.note), "我不能忘记的十件事情"); // Take screenshot solo.takeScreenshot(); // Press menu back key solo.goBack(); } } |
针对上面的脚本内容,我们不难发现Robotium Recorder自动帮我们生成了一个"testRun()"函数,这里边包含了我们前面操作的所有过程细节,不仅给出了与之相对应的脚本,同时给出了比较详细的注释内容,包括我们在业务操作过程中的等待时间,都被Robotium Recorder给记录了下来,是不是非常方便呢?
"AndroidManifest.xml"内容如下。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.notepad.test" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-sdk android:minSdkVersion="10" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.android.notepad" /> <application android:label="com.example.android.notepad.test" > <uses-library android:name="android.test.runner" /> </application> </manifest> |
如果我们的试用版本试用到期,将弹出图6-80所示的对话框,此时就需要联系厂家获取相应许可后,才能够正常使用。
本文选自《精通移动App测试实战:技术、工具和案例》第六章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关文章: