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 ...
随机推荐
- Wince下实现ImageButton
我们在winform中给按钮设置个背景图片超级简单,是不?可是在wince下面就没那么简单了,下面我来介绍一种方式来实现ImageButton. 实现思路是重新写一个usercontrol就ok.具体 ...
- Python 基础编程
Python 打印九九乘法表: for i in range(1,10): for j in range(1,i+1): print j,'*',i,'=',j*i,' ', print '\n' P ...
- 金额的计算BigDecimal类
金额的计算BigDecimal类 double d = 9.84; double d2 = 1.22; //注意需要使用BigDecimal(String val)构造方法 BigDecimal bi ...
- Linux Kbuild工作原理分析(以DVSDK生成PowerVR显卡内核模块为例)
一.引文 前篇博文<Makefile之Linux内核模块的Makefile写法分析>,介绍了Linux编译生成内核驱动模块的Makefile的写法,但最近在DVSDK下使用Linux2.6 ...
- 带dos调试窗口的win32程序
#pragma comment( linker, "/subsystem:\"console\" /entry:\"WinMainCRTStartup\&quo ...
- 零基础数据分析与挖掘R语言实战课程(R语言)
随着大数据在各行业的落地生根和蓬勃发展,能从数据中挖金子的数据分析人员越来越宝贝,于是很多的程序员都想转行到数据分析, 挖掘技术哪家强?当然是R语言了,R语言的火热程度,从TIOBE上编程语言排名情况 ...
- 使用boost io_service时,需要注意的东西
boost::asio 在创建io_service时,可以指定线程数,如果没有指定,默认是一个线程,也就是io_service run的那个线程,如果没有任务运行,该线程会退出. 如果在创建的时候指定 ...
- 编程算法 - 有序双循环链表的插入 代码(C)
有序双循环链表的插入 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 有序双循环链表的插入, 须要找到插入位置, 能够採用, 两个指针, 一个在前, 一 ...
- ASP.NET - TreeView 增删
效果: 前端代码: <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Si ...
- 【 .NET 面向对象程序设计进阶》】【 《.NET 面向对象编程基础》】【《正则表达式助手》】
<.NET 面向对象程序设计进阶> <.NET 面向对象程序设计进阶> <正则表达式助手>