用Robotium Recorder录制脚本—精通移动App测试实战(6)

发表于:2016-4-08 09:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:于涌 王磊 曹向志    来源:51Testing软件测试网原创

  (51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  在弹出的图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软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关文章:
MonkeyRunner演示示例—精通移动App测试实战(5)
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号