SilkTest Q&A 5
Q41.VerifyBitmap的问题。
我正在使用函数VerifyBitmap比较位置,边,颜色等,例如:
Window.VerifyBitmap("Position.bmp",[Rect])
Window.VerifyBitmap("Border.bmp",[Rect])
Window.VerifyBitmap("Color.bmp",[Rect])
在运行该脚本的时候,如果有任意一步失败,脚本就在出错的地方终止了,而不会继续向下运行。有什么办法可以使脚本即使有某步失败的情况下也一直运行完么?我希望在结果窗口看到所有的失败信息。
A41.
答案1:把所有的验证语句都放入do…except…中去,你可以在except部分保持空白,或者显示错误信息。
答案2:这需要了解下面三个函数是如何工作的。
VerifyBitmap()
VerifyProperties ()
Verify ()
你应该尽量将这种verify的语句放在后面执行,这样只有前面的都通过后,才会执行到它。就像下面这样:
do
//
//你的语句
//
VerifyBitmap()
except
// 当测试失败时需要执行的其他语句
或者干脆用SYS_ComareBitmap()来代替VerifyBitmap()
Q42:如何在脚本文件中定位结果文件中的错误?
A42:
1.确保你的结果窗口打开了结果文件。
2.定位结果文件中的错误信息。
3.选择错误信息。
4.点击Results/Goto Source菜单,源文件将被打开并且显示错误产生的位置。
Q43:如何从结果文件生成报告。
A43:
1.确保结果窗口打开了结果文件。
2.点击Results/Pass/Fail Report。出现Pass/Fail Report对话框
3.选择你想要生成报告的属性,例如:Component
4.点击Generate按钮
5.SilkTest在Pass/Fail Report对话框中生成报告
6.你可以打印或者导出报告。
7.点击关闭按钮关闭Pass/Fail Report对话框。
Q44: DBTester是什么?
A44:DBTester是一个允许你直接通过ODBC驱动访问数据库的测试工具。如果你的应用是数据库驱动的,你可以通过应用UI进行测试,然后通过DBTester来验证数据的变化。
Q45:DBTester提供了哪些函数?
A45:DBTest提供一下六个常用函数,你可以在testcase中直接使用它们:
1. DB_Connect::通过指定ODBC DSN名,打开一个数据库链接。DB_Connect返回一个连接句柄,该句柄可以被其他DB_Tester函数使用。SQL语句可以被提交给数据库。例如:
con = DB_Connect("dsn=dsn_name")
2. DB_Disconnect:关闭指定的数据库连接。所有有关连接的资源都会被释放。例如:
DB_Disconnect(con)
3. DB_ExecuteSql:将指定的SQL语句发送到指定的数据库连接,并且执行。DB_ExecuteSql返回一个查询结果句柄,该句柄可以被DB_FetchNext函数使用,例如:
res = DB_ExecuteSql(con, "SELECT * FROM ...")
4. DB_FetchNext:从指定的查询结果句柄返回下一行数据。例如:
DB_FetchNext(res, col1, col2, col3, ...)
5. DB_FetchPrevious:从指定的查询结果句柄返回前一行数据。
6. DB_FinishSql:关闭指定的结果句柄。例如:DB_FinishSql(res)
Q46.当使用FileReadLine (hFile, sMailData)的时候,它并不从输入文件中读取每行内容。我该如何让程序将每行中的字符串都加在list中,并且将所有的行读入一个list of list结构中?
A46.请使用下面的代码:
[+] LIST OF LIST OF STRING ParseMailFile ()
[ ] STRING sElement, sLine, sMailData
[ ] HANDLE hFile
[ ] LIST OF STRING lsMailData = {}
[ ] LIST OF LIST OF STRING llsMailData = {}
[ ] rMail Mail
[ ]
[ ] hFile = FileOpen (csDataDir+"Mail.txt", FM_READ)
[-] while (FileReadLine (hFile, sMailData))
[ ] ListAppend(lsMailData, GetField(sMailData, ",", 1))
[ ] ListAppend(lsMailData, GetField(sMailData, ",", 2))
[ ] ListAppend(lsMailData, GetField(sMailData, ",", 3))
[ ] ListAppend(lsMailData, GetField(sMailData, ",", 4))
[ ] ListAppend(lsMailData, GetField(sMailData, ",", 5))
[ ] ListAppend(lsMailData, GetField(sMailData, ",", 6))
[ ] ListAppend(lsMailData, GetField(sMailData, ",", 7))
[ ]
[ ] ListAppend(llsMailData,lsMailData)
[ ]
[ ] FileClose (hFile)
[ ] return llsMailData
[ ]
只要强迫它在循环之前从第一行开始读取即可。
Q47.希望在建立web测试的frame work方面得到帮助。
1)我需要为每个页面都生成window declaration么?
2)我需要为window declaration使用multiple tag么?
3)我应该选择怎样的multitag?
1)声明每一个web页并不是必须的,但是在大多数情况下,你还是需要这样做的。其实,你不用为每一页的每个对象都声明。你可以使用继承,这样基类的对象声明可以被继承到子类中。
2)你可以使用multi tag来声明窗口。我说的multi是指你可以为窗口使用不同的caption。
3)以我的经验来说,multi tag可以使用window ID。让我来解释,如果你有同一个应用的两个实例在运行(显然,它们都会有相同的caption),会出现某些冲突。在这种情况下,silktest脚本会失败。为了避免这种情况发生,Window ID可以被使用,因为,即使同时运行两个实例,window ID仍然是唯一的。
Q48:如何在testplan里面建组和子组的描述?
A48:在一个testplan里面,每个文本行都是以0列开始,代表一个顶层的组描述。可以这样建立子组描述。
1.将光标移到顶层组描述的下一行。
2.点击Outline/Move Right
3.当前行会自动朝右缩进,成为子组描述。
Q49. silktest可以验证一个广告的位置么?
A49.你可以的,但是…
广告的位置可能在各个系统中都不相同,作为其中的一个解决方法,你可以使用GetRect()方法。或者你可以使用不同的属性(在录制testcase的时候按住ctrl-shift键)然后选择location作为其中的一个属性。
Q50.上传应用的图像,是MS项目应用。其中一部分,silktest识别为一个childwin。但是当使用ChildWin3.SetActive()的时候,silktest执行失败,报错说窗口无法激活。有什么解决办法么?
A50:尝试使用父窗口组合方式:Parent.ChildWin3.setActive()
SilkTest Q&A 5的更多相关文章
- SilkTest Q&A 9
Q81:我应该如何存取excel sheet里面的空字符串? A81:定制代码如下: 解决方案1: [-] if sText!=NULL [ ] Page.tfldName.SetText(sText ...
- SilkTest Q&A 2
Q11:SilkTest中有没有计算web页面上单词数量的函数? A11:你可以使用Clipboard函数.使用Ctrl+a和Ctrl+c,然后解析string的list. Q12:silktest的 ...
- SilkTest Q&A 12
111. 谁能告诉我,正在执行的SilkTest的log是存放在哪里? 答案1: 用下面的命令可以导出文本格式的log "c:/program files/segue/silktest/pa ...
- SilkTest Q&A 13
Q121 :我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误 我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误: " ...
- SilkTest Q&A 7
Q61.有一个用Dotnet开发的应用,有1000个为测它而录制的case,一直都运行的很正常,直到有一天… 有人改变了该应用命名空间,由于现在有一个新的window或是panel出现,所以测试脚本一 ...
- SilkTest Q&A 8
Q72.如何在一个testplan中运行所有的testcase? A72. 1.打开testplan 2.点击Run/Run All Tests菜单,SilkTest开始执行testplan中所有的t ...
- SilkTest Q&A 10
92. 如何把单个表达式分两行来写? 答案1: 使用Shift + Enter 答案2: 很容易在online help里面找到答案: 1) line break in code 2) ...
- SilkTest Q&A 11
101. 如何从其他的机器访问脚本? 答案:将包含脚本的文件夹共享出来…非常简单…你可以使用connect()在你本机运行脚本从而使得它们在其他的一些机器上执行…但是其他人无法访问这些脚本,除非你将它 ...
- SilkTest Q&A 3
Q21:如何给testcase的属性赋值? A21: 1.确定你的testplan处于打开状态. 2.点击你准备赋属性值的testcase 3.点击TestPlan/detail菜单,testplan ...
- SilkTest Q&A 4
Q31.如何在inc文件里面写函数? A31.在你在inc文件(例如demo.inc)里写好函数以后,你需要使用Use path/Use file来指定指定它们. 在SilkTest中->Opt ...
随机推荐
- RTSP调试代码
#ifdef _WIN32_WCE #include "stdafx.h" #endif #ifndef _WIN32_WCE #define WIN32_LEAN_AND_MEA ...
- 使用【百度云推送】第三方SDK实现推送功能具体解释
之前介绍过怎样使用shareSDK实现新浪微博分享功能,今天介绍怎样使用百度云推送SDK实现Android手机后台推送功能. 执行效果例如以下 第一步,假设使用百度的SDK,当然要先成为百度的开发人员 ...
- javascript笔记整理(回调、递归、内置顶层函数)
1.回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数) a.通过指针来调用 function aa(a,b,fun){ retur ...
- 基于visual Studio2013解决C语言竞赛题之1023判断排序
题目 解决代码及点评 /* 23. 有10个两位整数,把这些数作以下变化,如果它是素数, 则把它乘以2,若它是偶数则除以2,其余的数减1, 请将变化后的10个数按从小到大 ...
- CodeForces 446B DZY Loves Modification
题意: k次操作 每次选择一行或一列 得到所选数字的和 并将所选数字同一时候减去p 问最多得到多少 思路: 重点在消除行列间的相互影响 因为每选一行全部列所相应的和都会-p 那么假设选了i次 ...
- 基于visual Studio2013解决C语言竞赛题之1078打印日历
题目 解决代码及点评 /************************************************************************/ /* ...
- HDU 4070 Phage War
贪心,t 大的放到前面...因为感染所有cell需要的phage的总数是一定的,所以产生phage需要的时间是一定的,只需要考虑用来感染的时间,这样考虑的话,把 t 小的放后面的话,可以发现总时间的最 ...
- 简化ui文件转换写法
在命令行敲一串长的命令.枯燥麻烦. #coding:utf-8 import sys import os import subprocess if len(sys.argv) == 2: #节省输入, ...
- 使用高德地图API
http://lbs.amap.com/smart/map/developer/mode/ 简单的附上一张图,其实能做得比这个更强大.
- Servlet过滤器——仿盗链过滤器
1.概述 介绍如何使用过滤器技术,防止通过其他URL地址直接访问本站资源.运行本实例,当URL地址不是本站地址时,在网页中将显示错误提示信息. 2.技术要点 主要应用request对象的getHead ...