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 ...
随机推荐
- 一天一个类,一点也不累 之 Vector
一天一个类,一点也不累. 今天要说的是ArrayList的亲兄弟--Vector 亲兄弟?看看“族谱” Class Vector<E> java.lang.Object java.util ...
- 输入输出函数 I/O函数之perror()
perror()函数的函数原型 void perror(char const *message); 它会将message信息输出出来,后面再加上错误原因字符串. 下面是来自百度百科的实例: #incl ...
- 在Android开发中,定时器一般有以下3种实现方法
在Android开发中,定时器一般有以下3种实现方法: 原文地址http://www.360doc.com/content/12/0619/13/87000_219180978.shtml 一.采用H ...
- 【linux kernel】 中断处理-中断上半部
欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...
- encode_utf8 把字符编码成字节 微信例子
##µ¼Èë encode_json decode_json use JSON qw/encode_json decode_json/; print "1111111111111111-\$ ...
- Oracle的序列
Oracle的序列 序列介绍 序列是Oracle提供的用于产生一系列唯一数字的数据库对象. 使用序列能够实现自己主动产生主键值.序列也能够在很多用户并发环境中使用.为所实用户生成不反复的顺序数字,并且 ...
- JSP 的9个内置对象
JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对象.如request,session,response,out等. 下面就JSP2. ...
- jssdk微信图片上传功能
/*wx.config({ debug: false, appId: data.appid, timestamp: data.timestamp, nonceStr: data.nonceStr, s ...
- 九度OnlineJudge之1014:排名
题目描述: 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过分数线的考生,并将他 ...
- HOOK自绘原理 good
做“HOOK文件打开/保存对话框”的过程中,我首先研究了界面库的相关知识.界面库一般都是由C/C++这种中低级语言编码,这是因为在Windows下的界面库实现技术大都以直接操作控制Windows的消息 ...