SilkTest入门快打2-编写脚本测试

在上一讲“SilkTest入门 快打系列1- 录制回放”中,我们介绍了如何建立一个简单的SilkTest 测试项目 ,用它来测试WindowsXP 自带计算器的加法功能。在上一讲中,我们使用SilkTest 的录制回放功能来产生测试用例的脚本,虽然它可以工作地很好,但是采用录制回放的方法,会有一些局限。首先,由于录制回放总是操作原生对象,没有隐藏对象的细节,从而导致每行脚本都很长,不易阅读。其次,如果待测AUT 的GUI 发生了变化,那么很可能,你需要重新录制脚本,不利于已有代码的维护。所以这一讲中,我将介绍如何直接编写SilkTest 脚本 进行测试。

  我们仍然测试计算器的加法功能,首先像上一节一样捕捉计算器GUI 的定义,并在其基础上对其进行一定的修改。也就是将/,*,-,+,= 等按钮的定义名改成容易识别的名称:

  将

[+] PushButton N52
[+] multitag “?[5]”
[ ] “$90″
[+] PushButton N92
[+] multitag “?[9]”
[ ] “$91″
[+] PushButton PushButton20
[+] multitag “-”
[ ] “$93″
[+] PushButton PushButton26
[+] multitag “+”
[ ] “$92″
[+] PushButton PushButton27
[+] multitag “=”
[ ] “$112″

  改成:

[+] PushButton Div
[+] multitag “?[5]”
[ ] “$90″
[+] PushButton Mul
[+] multitag “?[9]”
[ ] “$91″
[+] PushButton Dec
[+] multitag “-”
[ ] “$93″
[+] PushButton Plus
[+] multitag “+”
[ ] “$92″
[+] PushButton Equal
[+] multitag “=”
[ ] “$112″

  这样,我们在脚本里面就可以用“计算器.Plus ”来表示加号按钮,而不是晦涩的“计算器.PushButton26” 了。

  除此以外,我们还需要将

[+] TextField TextField1
[ ] tag “$403″

  改成

[+] TextField CalResult
[ ] tag “$403″

 然后,我们新建一个WriteScript.t,里面写如下的代码:

[-] testcase Cal123Plus()   //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
[ ] String sResultValue = 计算器.CalResult.GetText() //12
[-] if(val(sResultValue) == 246)  //13
[ ] Print(“Passed: Expect 123+123=246, actually it is {sResultValue}”) //14
[-] else //15
[ ] raise 1, “Failed: Expect 123+123=246, actually it is {sResultValue}” //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 ,然后运行,这时测试用例应该抛出一个异常,你的脚本执行结果是不是这样呢?

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-21 04:06:30

SilkTest入门快打2-编写脚本测试的相关文章

请问下能编写脚本语言来实现远程比对指纹识别的压力测试吗?

问题描述 请问下能编写脚本语言来实现远程比对指纹识别的压力测试吗? 请问下我怎么去实现呢?提供了Web service API 和指纹算法,怎么通过写脚本的方式去实现远程比对的指纹识别的压力测试,请高手们指点啊

Python编写脚本使IE实现代理上网的教程

  Python编写脚本使IE实现代理上网的教程         这篇文章主要介绍了用Python编写脚本使IE实现代理上网的教程,"著名的"goagent代理也是基于同样原理实现,需要的朋友可以参考下 厂里上个网需要设置代理服务器,切换各种环境『包括但不仅限于开发环境.QA.预上线.验收.生产环境.压力测试.Demo--』都需要给浏览器设置不同的代理服务器. 虽然俺有神器Firefox+Change Host+HostAdmin+Proxy Selector的组合来轻松切换Host,

PHP脚本测试

我们经常会遇到这种情况:将一些没有经过任何测试的遗留代码进行重新编写测试,甚至这些代码还是用面向对象写的.要对这样的代码进行测试,我的建议是把代码分解成块,这样就容易测试了. 然而,这些遗留代码并不是那么好重构的,比如:测试前,你不能在把代码重新编写,这是为了避免影响原有程序,当然也不好进行单元测试. 在PHP程序中,通常有一部分代码是写在几个index.php和script.php文件中的,这些.php文件存放在几个不同的文件夹里.如果不找到它们的入口点,是无法直接由Web服务器访问的. 测试

Linux Shell脚本测试的例子

脚本1:为root用户编写登录欢迎脚本: 1.用vi命令在/root目录是新建一个脚本文件welcome.sh,内容如下: 2.使用chmod命令给welcome.sh文件增加执行(x)权限 3.修改/root/.bash_profile文件,在root用户每次登录系统时调用welcome.sh脚本程序 #vi /root/.bash_profile添加如下内容: 4.验证:使用root用户重新登录,验证欢迎脚本的输出信息 脚本2:编写脚本程序,用来启动.停止和显示系统服务状态: 1.用vi命令

Python中的线性优化通过编写脚本来解决建模问题

本系列文章将展示如何利用 Pyomo 的能力集成 Python 来建模优化应用程序.本系列的第一篇文章将介绍http://www.aliyun.com/zixun/aggregation/22929.html">基础知识.第 2 部分将介绍如何添加更多工具和构建一种可伸缩的架构.第 3 部分将提供一些使用 IPython 和 pandas 进行投资分析和统计分析的实用示例. 建模是一种解决复杂问题的强大方法.依据图书 Modeling Languages in Mathematical O

《编写可测试的JavaScript代码》——第1章 可测试的JavaScript

第1章 可测试的JavaScript 每个人的想法都是独一无二的,但代码不是.几乎每个行业都完成了机器革命,然而奇怪的是,计算机科学行业并没有.程序员基本上是在做已经做了40年的同样的事情.手工编写代码,接着这些代码被编译或解释,然后执行.看看输出结果,再确定是否需要再改代码.计算机科学的黎明到来之前,这种开发周期就一直这样保持不变.我们的机器在几何级变快,内存和二级存储大小是无限制的,且这样发展下去软件越来越复杂.但我们仍然一个字母一个键地手工编写着代码.我们依然滥用着"print"

《编写可测试的JavaScript代码》——第1章 可测试的JavaScript 1.1 现有技术

第1章 可测试的JavaScript 每个人的想法都是独一无二的,但代码不是.几乎每个行业都完成了机器革命,然而奇怪的是,计算机科学行业并没有.程序员基本上是在做已经做了40年的同样的事情.手工编写代码,接着这些代码被编译或解释,然后执行.看看输出结果,再确定是否需要再改代码.计算机科学的黎明到来之前,这种开发周期就一直这样保持不变.我们的机器在几何级变快,内存和二级存储大小是无限制的,且这样发展下去软件越来越复杂.但我们仍然一个字母一个键地手工编写着代码.我们依然滥用着"print"

用Python编写脚本使IE实现代理上网的教程_python

厂里上个网需要设置代理服务器,切换各种环境『包括但不仅限于开发环境.QA.预上线.验收.生产环境.压力测试.Demo--』都需要给浏览器设置不同的代理服务器. 虽然俺有神器Firefox+Change Host+HostAdmin+Proxy Selector的组合来轻松切换Host,切换浏览器代理,但是-凡是就怕『但是』. 但是碰到一些IE才有的bug时候不得不换浏览器啊!!还要开虚拟机进去搞IE6.IE8.360.搜狗这些奇葩浏览器啊!!! 有同事建议搞个bat脚本来做这些,但没人肯动手--

使用Ruby编写脚本进行系统管理的教程_ruby专题

简介 Ruby 是一种功能极其丰富的.免费的.简单的.可扩展的.可移植的.面向对象的脚本编程语言.最近,它在 Web 领域广受欢迎.这在一定程度上要归因于非常强大的 Web 应用程序开发框架 Rails,Rails 正是用 Ruby 编写的.Rails,也称 Ruby on Rails(ROR),顾名思义,它为快速.有效地开发 Web 应用程序提供一个非常强大的平台.它是高度可伸缩的,Web 上有很多站点就是用 Ruby on Rails 构建的. 除了与 Rails 一起用作 Web 应用程序