Q81:我应该如何存取excel sheet里面的空字符串?
A81:定制代码如下:
解决方案1:
[-] if sText!=NULL
[ ] Page.tfldName.SetText(sText) // do the operation
[-] else
[ ] Page.tfldName.CleartText()
永久解决方案:将下面的winclass加入你的代码中,如果你的是web应用就直接拷贝粘贴,否则将htmlTextField改成TextField,这样Text field将不会因为空值而产生异常。
[-] winclass HtmlTextField: HtmlTextField
[ ]
[-] void SetText(String sText optional)
[+] if sText==NULL
[ ] this.ClearText()
[+] else
[ ] derived::SetText(sText)

Q82:如何用负向测试方法测试一个webpage?我需要捕捉所有的错误页么?
A82:捕捉所有的错误信息会增加你的脚本长度…捕捉一个页面并且使用”*”从而试着使identifier能够对所有的页面通用。
如果错误页以text message的方式出现,得到该text的索引(一般它是固定的)并且得到测试中的值从而与期望值进行比较,例如:
if BrowserPage.HtmlText ("#1").GetText () == "Invalid date"
Print ("Pass")
else
Print ("Fail")
假设第一次,你输入一个无效的mail ID,结果错误页的tag是” Error Page - Invalid mail ID”,第2次你输入一个无效的日期,结果错误页的tag是"Error Page - Invalid date"。为了泛化错误页,将tag改成"Error Page - Invalid*"或者"Error Page*",来表示这里出现了错误页。

Q83.如何用cmd命令行运行.bat文件,从而执行test plan?
A83:可以使用如下方法设置。
- Enter Plan File Path - e.q - c:/test
- Plan File Name - e.q - sample.pln
语法为"C:/Program Files/Segue/SilkTest/partner.exe" -r "/.pln"
例如:"C:/Program Files/Segue/SilkTest/partner.exe" -r "c:/test/sample.pln"
将上面一行拷贝成.bat文件,然后用cmd命令行运行它。

Q84:从开发者的角度来看,SilkTest内部实际上是如何工作的?
A84:
答案1:
Silktest和GUI交互,将操作自动提交给应用程序。也就是,silktest驱动应用。
它由不同的两部分软件组成:
(i)silktest host软件
(ii)4Test Agent软件
host软件是你用来开发,编辑,编译,运行,调试你的4Test脚本和test plan的程序。
4Test Agnet是将你的4Test脚本翻译成GUI相关命令的软件。一个Agent可以运行在本地的host机器上,在网络环境中,任何数量的Agent可以运行在远程的机器上。
答案2:
Silktest和其他GUI自动工具通过以下方式工作:
1.你需要录制应用程序的GUI。这相当与告诉silktest它将运行在什么上面。
2.使用录制的应用程序的GUI来编写testcase的脚本。
3.在一个新构建的版本上,再次执行你的testcase。
任何失败可能由以下情况导致:
1.应用程序错误
2.脚本错误
假设是脚本的错误,可能的原因如下:
1.逻辑错误
2.产品行为的改变导致脚本错误(因此,脚本需要被更新)
3.或者,应用程序的GUI发生了变化,这意味着你需要更新GUI的记录。
当一个自动工具录制GUI时,它主要通过该GUI特定的属性捕捉每个GUI对象,该属性在下一次自动执行时用来标识该GUI。
为了给你举例,让我考虑在一个典型的用户登录页中,有三个GUI实体。
1.用户名域
2.密码域
3.登录按钮
假设登录按钮有一个htmlid=login,silktest将会记录该GUI为HTMLPushButton,其id属性等于login(该文本标题可能根据button的不同而变化,比如:”Log in”)
如果已经决定将该按钮的标题改成”Sign In”,而不改变htmlid属性,这种情况下,silktest还是能够正确地回放该GUI的自动脚本。
但是万一,在下一个构建中,开发人员保持该按钮的标题名,但是改变其html id为”signin”,silktest将无法认出该按钮,即使对于用户来说看上去什么也没有改变。
这就是大部分自动测试工具工作的基本原理。

Q82:如何用负向测试方法测试一个webpage?我需要捕捉所有的错误页么?
A82:捕捉所有的错误信息会增加你的脚本长度…捕捉一个页面并且使用”*”从而试着使identifier能够对所有的页面通用。
如果错误页以text message的方式出现,得到该text的索引(一般它是固定的)并且得到测试中的值从而与期望值进行比较,例如:
if BrowserPage.HtmlText ("#1").GetText () == "Invalid date"
Print ("Pass")
else
Print ("Fail")
假设第一次,你输入一个无效的mail ID,结果错误页的tag是” Error Page - Invalid mail ID”,第2次你输入一个无效的日期,结果错误页的tag是"Error Page - Invalid date"。为了泛化错误页,将tag改成"Error Page - Invalid*"或者"Error Page*",来表示这里出现了错误页。

Q83.如何用cmd命令行运行.bat文件,从而执行test plan?
A83:可以使用如下方法设置。
- Enter Plan File Path - e.q - c:/test
- Plan File Name - e.q - sample.pln
语法为"C:/Program Files/Segue/SilkTest/partner.exe" -r "/.pln"
例如:"C:/Program Files/Segue/SilkTest/partner.exe" -r "c:/test/sample.pln"
将上面一行拷贝成.bat文件,然后用cmd命令行运行它。

Q84:从开发者的角度来看,SilkTest内部实际上是如何工作的?
A84:
答案1:
Silktest和GUI交互,将操作自动提交给应用程序。也就是,silktest驱动应用。
它由不同的两部分软件组成:
(i)silktest host软件
(ii)4Test Agent软件
host软件是你用来开发,编辑,编译,运行,调试你的4Test脚本和test plan的程序。
4Test Agnet是将你的4Test脚本翻译成GUI相关命令的软件。一个Agent可以运行在本地的host机器上,在网络环境中,任何数量的Agent可以运行在远程的机器上。
答案2:
Silktest和其他GUI自动工具通过以下方式工作:
1.你需要录制应用程序的GUI。这相当与告诉silktest它将运行在什么上面。
2.使用录制的应用程序的GUI来编写testcase的脚本。
3.在一个新构建的版本上,再次执行你的testcase。
任何失败可能由以下情况导致:
1.应用程序错误
2.脚本错误
假设是脚本的错误,可能的原因如下:
1.逻辑错误
2.产品行为的改变导致脚本错误(因此,脚本需要被更新)
3.或者,应用程序的GUI发生了变化,这意味着你需要更新GUI的记录。
当一个自动工具录制GUI时,它主要通过该GUI特定的属性捕捉每个GUI对象,该属性在下一次自动执行时用来标识该GUI。
为了给你举例,让我考虑在一个典型的用户登录页中,有三个GUI实体。
1.用户名域
2.密码域
3.登录按钮
假设登录按钮有一个htmlid=login,silktest将会记录该GUI为HTMLPushButton,其id属性等于login(该文本标题可能根据button的不同而变化,比如:”Log in”)
如果已经决定将该按钮的标题改成”Sign In”,而不改变htmlid属性,这种情况下,silktest还是能够正确地回放该GUI的自动脚本。
但是万一,在下一个构建中,开发人员保持该按钮的标题名,但是改变其html id为”signin”,silktest将无法认出该按钮,即使对于用户来说看上去什么也没有改变。
这就是大部分自动测试工具工作的基本原理。

85. 我无法简单的使用"DialogBox (" ").Close ()" 来关闭对话框。。。

在对话框上有一个按钮,一点,就会弹出第二个BrowserChild 。这个窗口没有一个常规的工具栏,它实际上是有一段Javascript 函数(openWindow) 打开的。由于某些原因,我不能简单的用"DialogBox (" ").Close ()" 来关闭它。

事实上,这依赖于第二个窗口是如何申明的。
在浏览器上,有一个弹出窗口,是用 JavaScript 做的,它没有包含任何浏览器的元素(没有工具栏,没有状态栏,没有位置,等等)。所以呢, silktest 将该窗口认为是对话框,但是直接申明它为对话框的时候又会导致失败。因为,它确实是个浏览器窗口。所以,我决定让 silktest 申明它为对话框,通常是如下的形式:
[code]
[-] window DialogBox DBCreateOffer
[ ] tag "Requisition Create?Edit"
[-] window BrowserChild BCCreateOffer
[ ] tag "Create Offer"
[ ] parent "CustomBrowser"
[/code]
然后,我修改 Silktest 自动生成的声明,然后让 BrowserChild 成为对话框的一部分:
[code]
[-] window DialogBox DBCreateOffer
[ ] tag "Requisition Create?Edit *"
[-] BrowserChild BCCreateOffer
[ ] tag "Create Offer"
[/code]
现在,我就可以直接通过调用 DBCreateOffer.Close() 来关闭它了。

87. 选择 ListBox 中 Item 的时候报错

SilkTest 从一个ListBox (JavaJFCListBox )中选择item 的时候报如下的错误
[ ] *** Error: Control is not responding
[ ] Occurred in Select
[ ] Called from LetterEditTool at FabEditorScript.t(1060)
但是有的时候执行却不会报错,有人能给点帮助么?

答:
这是一个catch-all 错误信息,一般是由Select( ) 尝试选取ListBox ,TreeView ,ListView 等控件中的项目时出现的。解决这个问题,可以在导致错误的那一行前面加上下面这行代码:
Agent.SetOption(OPT_VERIFY_RESPONDING, FALSE)

88. 要测试的GUI 上面有一个Cancel 按钮,它的热键是Alt-c

问:在一个待测GUI 上有一个Cancel 按钮,它的热键是Alt-c 和Alt-C (大小写都支持),手工测试的时候,这两组热键都能工作。
但是在自动测试的时候,TypeKeys ("") 可以工作,而TypeKeys ("") 却不能工作,我还尝试了下列代码
Presskeys ("")
TypeKeys ("")
ReleaseKeys ("")

Presskeys ("")
TypeKeys ("")
ReleaseKeys ("")
仍然不能工作,有人能帮忙么?

答:如果你的应用是标准的,并且热键被很好的定义了。那么理想情况下,"") 和 ("" 都应该能够工作。不过,看来你的情况不是这样的,那么请尝试下面的工作。
SilkTest 提供了模拟一组键被同时按下的功能,你可以通过角括号和连字符的组合来实现,请尝试下面的代码:
("")
不是 TypeKeys ("")
不是TypeKeys ("")
不是TypeKeys ("")
也不是
TypeKeys ("")
TypeKeys ("")

解决了,不过当CapsLock 没有启用的时候,只有TypeKeys ("") 能够工作。如果我手动将CapsLock 启用,然后执行[TypeKeys ("")] ,并不能work 。

90. 有人知道如何在silktest中转义空格么?

例如,我有一个可执行文件,位于C:/Program Files/xyz/abc.exe
我现在需要将'Program Files'中的空格转义,该如何做?

答案:

首先,你可以使用短型路径,例如:C:/Progr~1/xyz/abc.exe

其次,你可以用引号来处理空格,例如:

string sCmdLine = "C:/Program Files/xyz/abc.exe"
Sys_Execute(sCmdLine)

SilkTest Q&A 9的更多相关文章

  1. SilkTest Q&A 2

    Q11:SilkTest中有没有计算web页面上单词数量的函数? A11:你可以使用Clipboard函数.使用Ctrl+a和Ctrl+c,然后解析string的list. Q12:silktest的 ...

  2. SilkTest Q&A 12

    111. 谁能告诉我,正在执行的SilkTest的log是存放在哪里? 答案1: 用下面的命令可以导出文本格式的log "c:/program files/segue/silktest/pa ...

  3. SilkTest Q&A 13

    Q121 :我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误 我想要测试 windows2003 上的 remote 应用,但是每次都得到如下的错误: " ...

  4. SilkTest Q&A 7

    Q61.有一个用Dotnet开发的应用,有1000个为测它而录制的case,一直都运行的很正常,直到有一天… 有人改变了该应用命名空间,由于现在有一个新的window或是panel出现,所以测试脚本一 ...

  5. SilkTest Q&A 8

    Q72.如何在一个testplan中运行所有的testcase? A72. 1.打开testplan 2.点击Run/Run All Tests菜单,SilkTest开始执行testplan中所有的t ...

  6. SilkTest Q&A 10

    92. 如何把单个表达式分两行来写? 答案1: 使用Shift + Enter 答案2: 很容易在online help里面找到答案: 1)      line break in code 2)    ...

  7. SilkTest Q&A 11

    101. 如何从其他的机器访问脚本? 答案:将包含脚本的文件夹共享出来…非常简单…你可以使用connect()在你本机运行脚本从而使得它们在其他的一些机器上执行…但是其他人无法访问这些脚本,除非你将它 ...

  8. SilkTest Q&A 3

    Q21:如何给testcase的属性赋值? A21: 1.确定你的testplan处于打开状态. 2.点击你准备赋属性值的testcase 3.点击TestPlan/detail菜单,testplan ...

  9. SilkTest Q&A 4

    Q31.如何在inc文件里面写函数? A31.在你在inc文件(例如demo.inc)里写好函数以后,你需要使用Use path/Use file来指定指定它们. 在SilkTest中->Opt ...

随机推荐

  1. Net FLow Template

    EK  Template : bool bfs(int src, int des){ memset(pre, -, sizeof(pre)); while(!que.empty()) que.pop( ...

  2. VC++共享数据段实现进程之间共享数据

    当我写了一个程序,我希望当这个程序同时运行两遍的时候,两个进程之间能共享一些全局变量,怎么办呢?很简单,使用VC\VC++的共享数据段.; #pragma data_seg()//恢复到正常段继续编程 ...

  3. redis(五)redis与Mybatis的无缝整合让MyBatis透明的管理缓存二

    在上一篇文中的Cahe类存在各种问题如:一直使用同一个连接,每次都创建新的Cache,项目中老是爆出connection timeout 的异常,存储的key过长等等一系列的问题,解决问题最好的办法就 ...

  4. 让Solr返回JSON数据

    http://localhost:1985/solr/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on& ...

  5. BIOS和CMOS的联系与区别

    BIOS为何物? BIOS就是(Basic Input/Output System,基本输入/输出系统的缩写)在电脑中起到了最基础的而又最重要的作用.是电脑中最基础的而又最重要的程序.把这一段程序放在 ...

  6. 侧滑UI

    1.视图 activity_main.xml <com.zyhui.cehua.SlidingMenu xmlns:android="http://schemas.android.co ...

  7. Sort List 分类: leetcode 算法 2015-07-10 15:35 1人阅读 评论(0) 收藏

    对链表进行排序,要求时间复杂度为O(n log n) ,不使用额外的空间. 我一开始的想法是借助quicksort的思想,代码如下: # time O(nlog(n)) # Definition fo ...

  8. 我的Python成长之路---第一天---Python基础(6)---2015年12月26日(雾霾)

    七.列表——list Python的列表是一种内置的数据类型,是由Python的基本数据类型组成的有序的集合.有点类似C语言的数组,但与数组不同的是,Python在定义列表的时候不用指定列表的容积(长 ...

  9. Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系

    devise.cancan和rolify这三个组件结合,可以建立完整而强大的用户权限模型. devise介绍,负责用户注册.登录.退出.找回密码等操作.细节参考devise on github can ...

  10. 基于visual Studio2013解决C语言竞赛题之0806平均分

     题目