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 ...
随机推荐
- ZOJ 3609 求逆元
Modular Inverse Time Limit: 2 Seconds Memory Limit: 65536 KB The modular modular multiplicative ...
- 转:携程App的网络性能优化实践
http://kb.cnblogs.com/page/519824/ 携程App的网络性能优化实践 受益匪浅的一篇文章,让我知道网络交互并不是简单的传输和接受数据.真正的难点在于后面的性能优化 下面对 ...
- [poj 1265]Area[Pick定理][三角剖分]
题意: 给出机器人移动的向量, 计算包围区域的内部整点, 边上整点, 面积. 思路: 面积是用三角剖分, 边上整点与GCD有关, 内部整点套用Pick定理. S = I + E / 2 - 1 I 为 ...
- springMVC 使用jstl
jsp页面获取数据,感觉最方便的就是使用jstl+EL了,各种封装好的函数非常简单易用,接下来写如何使用jstl: 1.下载jstl-1.2_1.jar 2.由于项目是: xmlns="ht ...
- oracle数据库中insert与select
前几天遇到了一个问题,insert语句中,不仅要insert页面传过来的值,还要insert select的值. 语句应该这样写: insert into 表1(字段a,字段b,...) select ...
- 关于wxFileSystemWatcher输出文件名的解决方法
本文针对的wxWidgets版本: 2.9.4, 2.9.5,其他版本未作测试. 如果要使用 wxFileSystemWatcher 并且让其产生的wxFileSystemWatcherEvent 事 ...
- HDU 1593 find a way to escape
数学题. 题意是问你能不能逃脱. 当V1的 角速度大于 V2的时候,能够一直保持 V1,O(圆心),V2 三点一线. 跑到一定距离.角速度小于的时候,就以三点一线为初始状态直接跑直线. #includ ...
- PHP把数字ID转字母ID
PHP把数字ID转字母ID ID是网站中经常出现的,它一般是数字,但是我们发现现在的网站很多ID都是字母了,比如YouTube的视频播放页它的URL类似/watch?v=yzNjIBEdyww. 下面 ...
- QUrl不同版本之间的坑
在项目中使用了native application + html的方式构建界面. 之前在4.8.4用QUrl直接加载相对路径一点问题都没有.但是切换到5.1编译之后却发现本地的html文件全部没有加载 ...
- HTML+CSS+JS - 5秒钟之后跳转页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.c ...