DroidPilot 测试脚本详解 (一)

DroidPilot Designer是Android 应用自动化测试的脚本设计器,也是逐渐趋向于专业化的脚本编缉器,采用的是关键字(KeyWord driven)驱动的的测试方法,通过方便的选取应用上Active对象,只要清楚知道该应用的业务逻辑,使用步骤的工程师都可以轻松方便的使用,通过双击选择对象,选择预先定义好的需要模拟的对对象的动作(Click, long touch. settext...),非常方便快速的完成大部分的测试脚本自动生成。对于自动化测试工程师来说,也充分考虑到了工程师能快速的学习一种脚本语言,沿用了简单易用的VB Script的脚本,在PC端使用过用此测试脚本的测试工具的均可以快速熟悉使用。以下对DroidPilot designer支持的测试脚本语法做一详细使用解释,熟悉的工程师仍然可以使用脚本编辑器的助写功能快速的编写自己的测试脚本,本贴内容后续将根据版本升级将持续更新,敬请关注。

1.        条件语句,用于判断以及分支操作
If ..Then..[ElseIf]..[Else]..End If
条件判断语句,用于判断对象的属性,可以通过在编辑器中点鼠标右键在下拉的菜单中选择插入“If ..Then ..[ElseIf]..[Else]..End If“
脚本样例:
If Window("MainActivity-3").TextView("list_content_title").GetROProperty("Text")="共[count]张名片" Then
Reporter.ReportEvent micPass,"The count is correct","This message is user defined"     //在测试报告里的提示,如果判断相同说明统计是正确的
Else
Reporter.ReportEvent micFail,"The count is incorrect","This message is user defined" //否则出统计是错误的提示
End If
2.     GetROProperty方法:获取当前对象的某一个属性值,一般用于条件语句内
 
3.      Reporter.ReportEventTest Report内打印正确和错误记录
    打印正确报告Reporter.ReportEventmicPass,String1,String2
打印错误报告Reporter.ReportEvent micFail,String1,String2
4.     标准检查点用于检查PlayBack过程中某个对象的属性值是否与预期的属性值一样,运行后会在Test Report中记录结果
Window().Button().checkPoint=<(PropertyName1,ExpectedValue); (PropertyName2, ExpectedValue)>
 
脚本样例:
Window("MultiGroup").Button("android.widget.Button@2b17e270").checkPoint=<(isEnabled,false)>
 
5.      数据库检查点通过连接数据库,利用SQL查询语句用来检查一些业务数据的正确性,一般将返回值用在条件语句内
database(dbPath="?",pkgName="?",dbName="?",sql="?",args="?",return="?")依次输入数据库在移动应用中的路径,包名,数据库名,sql语句,参数,返回的列名
 
ScriptExample:
database(dbPath="mnt/sdcard/AppFiles/com.ebensz.cardname/card.db",pkgName="com.ebensz.cardname",dbName="card.db",sql="Selectcount(*) as countname From cards",args="",return="countname")
//返回cards这个表的总数量。返回的值可以用[]括起来当成字符串用
If "总共[countname]张名片"
=Window("FamilyName2").TextView("android.widget.TextView@2b12b530").GetROProperty("Text")Then
Reporter.ReportEvent micPass,"SearchRecords","Search by'A' correctly"
Else
  Reporter.ReportEventmicFail,"SearchRecords","Search by 'A' Incorrectly"
End If
 
当数据库查询有多个参数时,格式如下:
database(dbPath="mnt/sdcard/AppFiles/com.ebensz.cardname/card.db",pkgName="com.ebensz.cardname",dbName="card.db",sql="Selectname as countname From cards Where head like '%%' or spell like '%Y%'",args="",return="countname")
或是:
database(dbPath="mnt/sdcard/AppFiles/com.ebensz.cardname/card.db",pkgName="com.ebensz.cardname",dbName="card.db",sql="Selectname as countname From cards Where head like ? or speel like?",args="%%/%Y%",return="countname")
 
6.        sleep(microsecond)方法
ScriptExample:
sleep(3000)//休眠3
 
7.     Exist 方法判断某个Object在操作到的当前页面是否存在,一般用于条件语句中

ScriptExample
IfWindow("FamilyNames").TextView("android.widget.TextView@2b129650").Exist=trueThen
  Reporter.ReportEvent micPass,"getresult","successfully"
Else
  Reporter.ReportEvent micFail,"getresult","Fail"
End If

posted on 2013-08-02 15:55  anthony.wang  阅读(448)  评论(0编辑  收藏  举报

导航