SilkTest入门练习完Word文件下载.docx
- 文档编号:22101380
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:37
- 大小:120.39KB
SilkTest入门练习完Word文件下载.docx
《SilkTest入门练习完Word文件下载.docx》由会员分享,可在线阅读,更多相关《SilkTest入门练习完Word文件下载.docx(37页珍藏版)》请在冰豆网上搜索。
对话框中选择"
application"
为计算器,其他的默认好了,点击OK按钮,SilkTest就帮你自动在Include/Frame目录下生成了frame.inc文件,这里面就是计算器GUI的定义,它的代码看起来像如下这样:
[]constwMainWindow=计算器
[]
[+]windowMainWin计算器
[+]multitag"
计算器"
[]"
$C:
\WINDOWS\system32\calc.exe"
[]
[]//Theworkingdirectoryoftheapplicationwhenitisinvoked
[]constsDir="
C:
\WINDOWS\system32"
[]//Thecommandlineusedtoinvoketheapplication
[]constsCmdLine="
\WINDOWS\system32\calc.exe"
[]//Thefirstwindowtoappearwhentheapplicationisinvoked
[]//constwStartup=?
[]//Thelistofwindowstherecoverysystemistoleaveopen
[]//constlwLeaveOpen={?
}
[+]Menu编辑E
[]tag"
编辑(E)"
[+]MenuItem复制C
复制(C)"
$300"
[+]MenuItem粘贴P
粘贴(P)"
$301"
[+]Menu查看V
查看(V)"
[+]MenuItem标准型T
标准型(T)"
$305"
[+]MenuItem科学型S
科学型(S)"
$304"
[+]MenuItem数字分组I
数字分组(I)"
$303"
[+]Menu帮助H
帮助(H)"
[+]MenuItem帮助主题H
帮助主题(H)"
$317"
[+]MenuItem关于计算器A
关于计算器(A)"
$302"
[+]TextFieldTextField1
$403"
[+]PushButtonMC
MC"
$113"
[+]PushButtonMR
MR"
$114"
[+]PushButtonMS
MS"
$115"
[+]PushButtonM
M+"
$116"
[+]PushButtonN7
7"
$131"
[+]PushButtonN4
4"
$128"
[+]PushButtonN1
1"
$125"
[+]PushButtonN0
0"
$124"
[+]PushButtonN8
8"
$132"
[+]PushButtonN51
5"
$129"
[+]PushButtonN2
2"
$126"
[+]PushButtonPushButton24
+?
-"
$80"
[+]PushButtonN91
9"
$133"
[+]PushButtonN6
6"
$130"
[+]PushButtonN3
3"
$127"
[+]PushButtonN16
?
[16]"
$85"
[+]PushButtonN52
[5]"
$90"
[+]PushButtonN92
[9]"
$91"
[+]PushButtonPushButton20
$93"
[+]PushButtonPushButton26
+"
$92"
[+]PushButtonPushButton27
="
$112"
[+]PushButtonBackspace
Backspace"
$83"
[+]PushButtonCE
CE"
$82"
[+]PushButtonC
C"
$81"
[+]StaticTextStaticText1
$401"
[+]PushButtonN1X
1?
x"
$107"
[+]PushButtonSqt
sqt"
$103"
[+]PushButtonPushButton15
%"
$109"
[+]StaticTextStaticText2
$1000"
[+]windowMessageBoxClassMessageBox
~ActiveApp/[DialogBox]$MessageBox"
[+]PushButtonOK
[+]PushButtonCancel
Cancel"
[+]PushButtonYes
Yes"
[+]PushButtonNo
No"
[+]StaticTextMessage
[]motiftag"
#2"
#1"
现在,你可以新建一个testcase了,选择菜单的"
Record->
Testcase..."
在弹出的"
RecordTestcase"
对话框中,你可以看到默认的testcasename是Test1,初始状态是DefaultBaseState,然后你点击StartRecording按钮就可以开始录制测试用例了。
当你按下该按钮时,一般右下角屏幕会出现一个RecordStatus的对话框,然后你在屏幕上做的任何操作都可以被记录下来。
在本例中,请点击计算器的清零按"
,然后按顺序按"
"
等按钮,你就完成了123+123操作,然后将鼠标悬停在计算器的结果框上,按组合键<
Ctrl-Alt>
来停止记录,这时候会弹出一个新的窗口"
Verifywindow"
让你选择要verify的内容,也就是测试点。
因为你最后是悬停在计算器的结果框上,SilkTest以为你会想要verify该控件的属性,它会让你选择该控件的属性,你只需要选择Text,也就是该次计算的结果,然后点击OK,再点击recordStatus对话框的Done。
接着出现的RecordTestcase对话框中点击PastetoEditor就把这次记录的脚本粘贴到一个新的脚本文件中了,保存它为Record.t。
如果你得到了如下的代码,恭喜你录制已经完成。
[-]testcaseTest1()
[-]recording
[]计算器.SetActive()
[]计算器.C.Click()
[]计算器.N1.Click()
[]计算器.N2.Click()
[]计算器.N3.Click()
[]计算器.PushButton26.Click()
[]计算器.PushButton27.Click()
[-]计算器.TextField1.VerifyProperties({...})
"
[-]{...}
[]{"
Text"
"
246."
3.执行录制的测试脚本
脚本录制好了,从项目里面选择上你记录的Record.t文件,按F9就可以直接运行了。
这个时候,SilkTest会激活计算器这个应用,然后以飞快的速度重复我们刚才做的操作,然后退出显示result文件,它的内容如下:
[]Scriptrecord.t-Passed
[]Machine:
(local)
[]Started:
04:
20:
45PMon31-May-2009
[]Elapsed:
0:
00:
02
[]Passed:
1test(100%)
[]Failed:
0tests(0%)
[]Totals:
1test,0errors,0warnings
[-]TestcaseTest1-Passed
[]***DefaultBaseStateissetting计算器active,
该result文件表示我们的测试时Passed,见第一行。
然后会记录测试开始的时间和耗费的时间。
如果测试中有warning或者Error,result文件的结果会用紫色或红色的文字显示,没有任何问题的话,测试结果应该是黑色文字显示。
怎么样,使用silktest不是那么困难吧?
你已经会测试简单的程序啦!
练习二
在上一讲中,我们介绍了如何建立一个简单的SilkTest测试项目,用它来测试WindowsXP自带计算器的加法功能。
在上一讲中,我们使用SilkTest的录制回放功能来产生测试用例的脚本,虽然它可以工作地很好,但是采用录制回放的方法,会有一些局限。
首先,由于录制回放总是操作原生对象,没有隐藏对象的细节,从而导致每行脚本都很长,不易阅读。
其次,如果待测AUT的GUI发生了变化,那么很可能,你需要重新录制脚本,不利于已有代码的维护。
所以这一讲中,我将介绍如何直接编写SilkTest脚本进行测试。
我们仍然测试计算器的加法功能,首先像上一节一样捕捉计算器GUI的定义,并在其基础上对其进行一定的修改。
也就是将/,*,-,+,=等按钮的定义名改成容易识别的名称:
将
[+]PushButtonN52
改成:
[+]PushButtonDiv
[+]PushButtonMul
[+]PushButtonDec
[+]PushButtonPlus
[+]PushButtonEqual
这样,我们在脚本里面就可以用“计算器.Plus”来表示加号按钮,而不是晦涩的“计算器.PushButton26”了。
除此以外,我们还需要将
[+]TextFieldTextField1
改成
[+]TextFieldCalResult
然后,我们新建一个WriteScript.t,里面写如下的代码:
[-]testcaseCal123Plus()//1
[]计算器.SetActive()//2
[]计算器.C.Click()//3
[]计算器.N1.Click()//4
[]计算器.N2.Click()//5
[]计算器.N3.Click()//6
[]计算器.Plus.Click()//7
[]计算器.N1.Click()//8
[]计算器.N2.Click()//9
[]计算器.N3.Click()//10
[]计算器.Equal.Click()//11
[]StringsResultValue=计算器.CalResult.GetText()//12
[-]if(val(sResultValue)==246)//13
[]Print("
Passed:
Expect123+123=246,actuallyitis{sResultValue}"
)//14
[-]else//15
[]raise1,"
Failed:
//16
我来解释一下这16行代码的意思,其实他们做的事情,和上一讲的测试用例是一样的,就是验证123+123的值等于246.
行1:
定义一个名为Cal123Plus的测试用例
行2:
将当前激活的应用设为计算器,如果计算器这个程序没有运行,那么就先启动它,然后将其设为得到焦点的应用。
行3:
先点击一下C这个按钮,也就是清除上次计算的结果
行4-行11:
分别点击计算器上的123+123=这八个按钮
行12:
定一个字符串变量sResultValue,把CalResult控件中的文本值赋给它
行13-行16:
如果sResultValue得数字值等于246,就打印测试成功,否则抛出一个异常,表明测试失败。
没有异常处理程序紧接raise之后的话,默认情况下,SilkTest将终止执行。
好了,现在按F9运行一下你新编写的WriteScript.t,看看是不是通过了。
然后,再将WriteScript.t里面的246改成247,然后运行,这时测试用例应该抛出一个异常,你的脚本执行结果是不是这样呢?
练习三
今天让我们来看看SilkTest是如何使用函数的。
我们接着上一讲,还是使用它的frame定义,现在新建一个测试脚本CalWithFunction.t,在该脚本中创建一个测试用例CalWithFunction和一个函数Cal123Plus123,
[-]testcaseCalWithFunction()
[]计算器.SetActive()
[]计算器.C.Click()
[]StringsResultValue=Cal123Plus123()//1
[-]if(val(sResultValue)==246)
)
[-]else
[-]StringCal123Plus123()//2
[]计算器.N1.Click()
[]计算器.N2.Click()
[]计算器.N3.Click()
[]计算器.Plus.Click()
[]计算器.Equal.Click()
[]StringsResultValue=计算器.CalResult.GetText()//3
[]returnsResultValue//4
你发现这个新建的脚本和我们上一讲中的WriteScript.t有什么不同了么?
没错,CalWithFunction.t和WriteScript.t完成的工作完全相同,不同的是,我们把WriteScript.t中一些代码抽取出来作为一个函数Cal123Plus123,然后在测试用例CalWithFunction中调用它。
也就是你现在看到标号为1的那行代码,该行声明了一个字符串变量sResultValue,并且把调用函数Cal123Plus123()后产生的结果赋给sResultValue。
然后再让我们看看行2,这一行声明了一个返回值为String的函数Cal123Plus123,它的参数列表为空。
在该函数中也定义了一个类型为String的临时变量(行3),用它来保存结果栏上的值,在行4里面将它返回给调用者。
OK,先让我们运行一下这个case,注意你的testcase和函数Cal123Plus123应该是同级的(同样的缩进位置),否则编译的时候会报错。
怎么样,你的这个case通过了么?
接下来,你是不是会觉得代码中这几行比较繁琐?
[-]if(val(sResultValue)==246)
没问题,让我们用一个SilkTest自带的函数Verify来代替这四行代码。
首先简单介绍一下Verify这个函数。
在silktest中,Verify函数的使用频率非常高,它的作用就是进行对象实际值和预期值的比较,用来验证待测软件中的各种元素是否达到了预期的设计要求。
Verify函数的原型是:
Verify(aActual,aExpected[,sDesc])
其中aActual是需要被验证的值,类型是AnyType。
aExpected是期望的值,也是验证的标准,验证是否成功就是以aActual和aExpected是否相等为标准,该参数的类型是AnyType。
sDesc可选参数,用来描述此次验证,类型是String。
Verify函数可以比较各种类型的数据,包括NULL。
如果aActual和aExpected类型不同,函数将会抛出E_TYPE_MISMATCH异常,如果两者类型相同值不同,函数将会抛出E_VERIFY异常。
这两种异常如果不进行相应的处理的话,都会导致testcase停止运行。
OK,现在我们只需要将上面四行代码改成下面这一行代码即可。
该行表示我们想要比较sResultValue的数值是否和246相等,如果不等就抛出异常并且打印提示信息。
Verify(val(sResultValue),246,"
Expect:
246,actuallyitis{sResultValue}"
练习四
在前三讲里,我们已经会用SilkTest做简单的测试了,为了以后讲解过程中代码尽可能的简洁,我现在把上一讲中的CalWithFunction.t脚本再精简一下,让它仅仅测试计算器1+2=的功能是否正常,下面就是精简过后的代码:
[-]testcaseCalWithFunction()
[]计算器.SetActive()//2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SilkTest 入门 练习