51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 20717|回复: 21
打印 上一主题 下一主题

4Test 简明语法教程及SilkTest入门-----把压箱底的原创拿出来发

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-16 18:43:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
(把压箱底的原创拿出来发,只发到第四章)

4Test 简明语法教程及SilkTest入门
                                                                                                                                       by   ryewhisky  
                                                                                                                                       Email: czcooper@gmail.com

第一篇:基本运算和概念

4test是干什么的,能找到这篇文章的估计都了解,我就不废话了,直接入题

4test的运算符:
4test的运算符基本上都和从左到右的,比如:::,->,(),[],* / % **, + -,== !=等等。

有几个是例外的,它们的运算顺序是从右到左的,比如:
@,[type] ! ~ unary- unary+ ++ --

像++或--这种数学运算符,我们下面会讲到。

加减单目运算:(和c++像)
赋值形式为:
  X=-5                    // X被赋值为+5
  X=+5                   //X被赋值为-5

++自加和--自减方式和C++语言规则一样:

n=10
x=++n      //运行完,x为11

N=10
y=n++       //运行完,y为10,n为11

数学运算:

+ -*/%表示的意义和C++语言中一样,分别是加,减,乘,取模,取余;
**求幂这个符号在C++语言中没有,似乎C语言中也每有这个符号,这个符号来自Fotran语言的求幂操作**,在4test语法中它的含义是也是求幂。

用+-进行的集合运算:

集合C=集合A+集合B             //这表示集合C的成员为集合A和集合B的并集

集合A=集合C-集合B           //这集合A由表示属于C但不属于B的的成员构成(相对补集的概念)

举例(书上的例子)

Red-[COLORS]{Green, Blue}                       //结果为Red
Red-[COLORS]{Red,Green, Blue}           //结果为空                  


逻辑运算符:
&―――与
||――――或
!――――非

位运算符(Bitwise operators):

什么叫位运算?很简单,位(bit)就是单个的0或,和C++语言一样,有6种位运算:   
        &       与运算                      //两个位置都为1时,结果为1,其他的结果都等于0
        
          |       或运算                        //两个位置只要有一个位置为1,则结果为1。
        
         ^       异或运算                  //两个位置不相等时,结果为1,否则为0

         ~       非运算(求补)           //取反,0变成1,1变成0
   
         >>       右移运算               //算子从高位向低位移动
        <<       左移运算                //算子从低位向高位移动

If条件语句:
格式如下
If (布尔表达式)
       字句1
else
       字句2

跟简洁的表达方式是: (布尔表达式)?字句1:字句2

是不是很熟悉,哈哈,基本每个语言都是这样的。

数组结构:

格式有以下几种:

{a,b}                               //元素之间用逗号隔开,比如 LIST MyList ={“a”,“b”}

{…}                               //下面跟字母要素,一行表示一个 ,如 SET Colors ={…}
                                                                                                                                 Red
                                                                                                                                 Green
<text>                                  //这个就是后面跟的是文本, 关键字是text ,        如LIST MyList =
                                                                                                                                                   <text>
                                                                                                                                                        A
                                                                                                                                                        “b”
                                                                                                                                                                  c    //最后一项指<tab>c,前面有个空格

[ 本帖最后由 ryewhisky 于 2007-8-16 19:00 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

22#
发表于 2012-8-24 15:00:27 | 只看该作者
先顶 再看 哈哈@谢谢楼主分享
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2011-8-4 15:05:28 | 只看该作者
正装为什么不好看 教你最准确搭配方法
  有一些公关人士穿的西装,它有可能是有品牌的,也很昂贵,但是为什么穿上就不好看呢?这就涉及到有关成规的问题。我们在谈到着装礼仪,说到遵守常规时总要强调的一句话:有所为,有所不为。那么去看一个男士,他穿西装,他会穿还是不会穿,主要应当考虑什么问题?是穿着舒服重要呢?还是搭配合适重要呢?有一些穿法技巧上的问题要注意,我觉得主要是搭配得合适。比较专业的讲法,讲到一个男士穿西装的问题时强调所谓的“三个三”。什么叫“三个三”呢?穿西装时有三大问题要注意,而每个问题里都有一个三字,所以叫“三个三”。
    第一个“三”,三色原则。它规定:穿西装正装时,全身上下的颜色不能多于三种。我有个职业病,我在大庭广众之下见到一个男士,或被介绍与另外一位男士认识时,我一般不听他自报家门,我也不过分迷信他名片上的头衔。
我一般喜欢把他身上的颜色数一数,我的经验是:其人身上的服装,三种颜色一般是正规军,四种颜色一般是游击队,五种颜色一般比较傻外行了。身上颜色多于五种的一般不喜欢理他,因为他差劲死了,当然这是开玩笑的话。这是第一个“三”。当然休闲装没有这个问题,穿休闲西装逛大街、轧马路、吃饭、去玩都无所谓,没必要打领带的。
    第二个“三”,三一定律。什么叫三一定律呢?三一定律是告诉我们,男士在重要场合穿套装出来的时候,身上有三个要件应该是同一个颜色。哪三个要件?鞋子、腰带、公文包。它们应该是一个颜色,并且应该首先黑色。内行看门道,外行看热闹。懂行的男人都知道,看男人西装有时候看不出名堂来。我有时发牢骚说男人很可怜,漂亮衣服没得穿。不像女性穿的时装,可以经常换。我们有什么换的呢?除了西装还是西装,一个扣,两个扣,三个扣,没扣,没多少差别。不穿西装穿牛仔,不穿牛仔穿夹克,再就没了。你上班的时候穿的则往往是制服,制服都是一样的,顶多是号的大小不同。内行看门道,讲究的男人花钱的地方是什么呢?鞋子、
腰带、公文包、手表之类。这是男人身上的要件,饰品,也是重要的搭配。一名讲究的男人在重要场合抛头露面时,他的鞋子、腰带、公文包应该是一个颜色,而且首选是黑色。这样就比较好看。如果我现在戴的是金属表带的手表,那么金属表带的颜色,应该和我眼镜镜框的颜色一样,和我皮带扣的颜色一样,这才叫协调。换而言之,如果我现在戴的是一块真皮表带的手表,它的表带颜色应该也是黑的,和鞋子、腰带、公文包的一样,浑然一体、一气呵成,比较好看。
第三个“三”,
    除了这“三个三”之外,我们需要注意什么呢?具体来讲,选择西装、搭配西装,有一系列的问题要注意。
    择西装时,首先要注意面料、色彩。我们在选择西装的时候,在力所能及的范围之内要选择毛料,纯正的、质地良好的面料,因为它悬垂、透气、轻、薄、软,是高档西装的标志。从面料上来讲,一般要选纯毛面料。当然有时候要考虑到季节性差异,夏天很热,就要选那种混纺的,含毛比例高的面料。
    此外,选择西装一定要注意色彩,一定要注意,休闲装和正装西装是有其色彩方面的区别的。如果是休闲西装,那么可以个性化。正装西装不讨论个性,讲究的是深色的、单色的。在一般情况下,蓝色、灰色的西装,应为男士所常备。


此信息来自:北京西装厂 西装订做
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2011-4-11 16:56:13 | 只看该作者
感谢,内容少了点。不过很有用。谢谢分享
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-3-3 10:21
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    19#
    发表于 2010-5-13 11:12:08 | 只看该作者

    回复 5# 的帖子

    纠正,不知道LZ用的是什么版本,我用2006 R2中有while语句哦
    [-] testcase whileExample ()
            [ ]    INTEGER i = 5
            [-]    while (i > 0)
                    [ ] print(i)
                    [ ] i=i-1
            [ ] //    This script prints:
            [ ] //      5
            [ ] //      4
            [ ] //      3
            [ ] //      2
            [ ] //      1
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-9-23 23:29:47 | 只看该作者
    很老的贴子,但对我帮助很大,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2009-4-10 00:25:09 | 只看该作者
    3,4 有用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-10-30 17:26:02 | 只看该作者
    谢谢楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-7-18 12:13:38 | 只看该作者
    对我很实用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-7-3 15:26:28 | 只看该作者
    顶起来,方便大家查看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2008-4-17 16:28:22 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-4-15 13:59:54 | 只看该作者

    关于silktest脚本编辑


    我是个silktest使用新手,想问下录制完脚本之后,编辑或者添加脚本应该把脚本放哪?还有一些变量等的声明放在哪个地方?希望能回答详细一点
    先谢谢了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-3-5 14:30:40 | 只看该作者
    收藏
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-1-30 11:49:27 | 只看该作者
    感谢楼主,收藏了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-12-12 17:27:51 | 只看该作者
    感谢楼主   好好拜读一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-8-23 16:41:45 | 只看该作者
    先感谢一下share,然后再拜读sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2007-8-16 18:50:10 | 只看该作者
    第四篇:典型Web测试流程

    这一篇里我们要来说明一下一个典型的Web流程是什么样的?

    首先,需要在你ST上面配置一下你要测的Web Application:
    Step:
    1.新建一个项目Projet:
            ST提供2种测试流程:基本流程(Basic)和数据驱动流程(Data Driven)。Basic就是由无  到有建立一个测试流程,数据驱动流程就是从已有的Test Case中再拿出来跑一遍或改吧改吧当成新的case直接用了。我们选择Basic的,新建一个测试YAHOO网站的项目,项目名叫YahooTest

    2.启动扩展Enabling Extensions
    启动扩展文件主要是因为在测试网页应用程序时,还包括DCOM组件或ActiveX组件。
    我们只需在IE上打开Yahoo主页,然后在ST上点击Enabling Extensions,此时会让你重开一次IE

    3.指定Use Files
    就是建一个对象定义文件testframe,后缀为inc,testframe是Scripts的基础,包含待测应用的所有对象。为GUI对象指定逻辑的,跨平台的窗口声明叫做 Identifier, Identifier 和实际的名称对应叫做 Tag. 除了Record的对象Testframe也可以包含自定义的Class,method.因为 Testframe指定是逻辑关系,所以在实际对象有所变更的时候不需要更改Scripts,只需要更改Testframe,方便代码维护.


    说了这一大堆,你要做的就是在打开的YahooTest项目下,右击“Include/Frame”然后New File 选择testframe,在这个例子里我们新建的Testframe名为yahoo.inc,这个文件应该放在你的项目地下。(默认文件路径)

    4. 创建测试计划TestPlan
    一般来说一个Testplan应该包含下面两部分:
    a.        对测试需求的概述
    b.        设定测试需求和Testcase的对应关系
    其他:
    对AUT和测试方法的说明
    对测试工作的设想和风险的说明
    测试中个人责任的说明
    测试准备
    软件说明
    TestPlan的版本信息

    编写testplan的工具是Testplan Editor

    我们新建一个Testplan叫yhplan.pln, 然后完善它并给developer或test engineer权限访问控制

    5.录制脚本
      设置Application state点,就是用来recovery system的

    recording的时候可以按Ctrl+Atl来设置Verify点

    录制完Testcase后,把.t文件连接到Testplan里面去

    6. Run 脚本
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2007-8-16 18:49:20 | 只看该作者
    第三篇:Web测试参考
    从这一篇起要用很长的篇幅来讲用ST做Web测试的一些内容。

    Browser window declaration:

    浏览器窗口声明是一种主窗口类(MainWin类),主窗口类一般可以从桌面调用或命令行直接调用。它和对话框类(DialogBox class)的一个主要的区别是主窗口类通常会有一个菜单bar。

    浏览器窗口的声明一般包含以下东西:
    • Cut, Copy, Paste, and Select All items on the Edit menu
    • The following tool bar buttons: Back, Forward, Home, Reload, and Stop
    • The Location combo box, which lists the current URL
    • The Web browser's status bar, which is an object of class StatusBar
    named Status. It contains a DynamicText object named Message. So to
    access the status bar, you use the object Browser.Status.Message.

    包含的Method有:
    ClearCache method
    CloseOthers method
    GetActive method
    GetReadyTime method
    GetRealBrowser method
    Invoke method
    LoadPage method
    SetBrowserSize method
    SetDefaultFont method
    SetRequiredOptions method
    StopLoading method
    WaitForReady method


    BrowserAuthentication window declaration:

    浏览器认证窗口是个对话框类(DialogBox class),认证声明的一个主要的应用是让程序去判断是否有认证窗口弹出,如果有的话,则让输入用户名和密码,然后消失。

    if (BrowserAuthentication.Exists ())
    BrowserAuthentication.UserName.SetText (sUserName)
    BrowserAuthentication.Password.SetText (sPassword)
    BrowserAuthentication.OK.Click ()

    BrowserChild class:

    浏览器子窗口类来源于AnyWin类, ST中Windows被广泛的用于描述一般的GUI对象,因此,按钮,滚动条,复选框都可以被认作上windows。AnyWin没有在往上的父类了。浏览器子默认窗口类默认的标识(tag)是网页的标题头(caption)。

    BrowserErrorPage window declaration:

    浏览器出错窗口类,这种类通常出现在指定的URL无法访问的时候,比如说弹出一个要求输入代理服务器的窗口,像这种要求输入代理服务器的窗口就是很典型的浏览器出错窗口。

    通常这类的窗口标识都有“Error”字样,为了防止除了“Error”字样的情况,我们可以在Extend的目录下把BrowserErrorPage的标识改为“Error*“,这样就能识别到所有“Error”开头的窗体。

    下面的例子显示了是否有出错页窗口弹出,如果有的话则调用一个处理函数。
    if (BrowserErrorPage.Exists ())
    AppError ("Unable to load ’{sLocation}’ -- {BrowserErrorPage.sCaption}")

    BROWSERLOCATION data type:
    BROWSERLOCATION 数据类型是STRING 或WINDOWS的别名。

    BrowserMessage window declaration:

    浏览器信息窗口类是一种对话框类(DialogBox),以下例子显示了是否有信息窗口弹出,如果有的话则打印出错信息并调用处理函数。

    if (BrowserMessage.Exists ())
    BrowserMessage.PrintMessage ()
    AppError ("Unable to load ’{sLocation}’")

    BrowserPage window declaration:

    浏览页面类就是你定义的你要测的那一个web页面。

    BrowserPageNotFound window declaration:

    页面未找到页类就是你指定的当程序找不到URL指定的页面时返回的那个页面。这个页面只用在通过代理服务器的情况,如果不通过代理服务访问,浏览器会自动指定一个类似的页面。

    if (BrowserPageNotFound.Exists ())
    AppError ("Unable to load ’{sLocation}’ -- {BrowserPageNotFound.sCaption}")

    BrowserSecurityInfo window declaration:

    安全信息窗口, 这个例子显示当安全信息窗口弹出后,点YES继续。

    if (BrowserSecurityInfo.Exists ())
    BrowserSecurityInfo.Continue.Click ()


    BROWSERTYPE data type:

    浏览器类型用法如下
    main ()
    LIST OF BROWSERTYPE lbtType
    BROWSERTYPE btType
    lbtType = {explorer4, netscape4}
    for each btType in lbtType
    GetItemCount (btType)
    testcase GetItemCount (BROWSERTYPE btType)
    GMO.About.Click ()
    INTEGER iCount
    iCount = AboutPage.UsedList.GetItemCount ()
    Print (btType)
    Print ("Item count: {iCount}")


    Explorer window declaration:
    IE特有的


    GetActive method (Browser)
    返回当前页面值
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2007-8-16 18:49:02 | 只看该作者
    循环语句:
    在4Test中循环语句是这么写的:
    for each item in expr
             statement

    相当于C中的:
    for i = 1 to n step 5  之类的,拷个例子大家就明白了。

    testcase for eachExample ()

       LIST OF STRING lsFruit = {...}
                  "apple"

                     "mango"
                  "kiwi"
               STRING sFruit                          //定义了一个变量,这个变量将被赋予IsFruit中的值                 
               for each sFruit in lsFruit
                  Print (sFruit)
             
                 // This script prints:
            //      apple
            //      mango
            //      kiwi   

    条件语句:
    4test中没有while语句,但Switch语句却可以随便用
    语法如下:
    switch (expr)       case case-value(s)             statement       [ case case-value(s)             statement ]...       [ default             statement ]...

    和C的switch语句最大的区别在于,在C中你不得不用break来结束每个statement,以便程序能跳出来,在4test中却不用这么麻烦。

    例子如下:
    testcase switchExample ()
               INTEGER i
               for i = 1 to 12
                  switch (i)
                     case 1 // Compares i to 1
                        Print (i, "Case 1")
                     case 2, 4 // Compares i to 2 and 4
                        Print (i, "Case 2, 4")
                     case 5 to 7 // Compares i to 5, 6, and 7
                        Print (i, "Case 5 to 7")
                     case 8 to 9, 11 to 12 // Compares i to 8,9,11,12
                        Print (i, "Case 8 to 9 and 11 to 12")
                     default // If i is none of the above

                Print (i, "Default Case")
           
    预处理:
    4Test没有预处理机制
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2007-8-16 18:47:46 | 只看该作者
    第二篇:4Test语言和C语言对比
    这个章节主要要说明一下4Test和C语言的不同之处。

    ANYTYPE 类型:

    首先出场的就是这种NB哄哄的类型,它可以囊括所有你想要的类型,因为它就是 any type,直译就是任何类型,NB吧!!

    数组的初始化:
    在C语言中,数组在初始化的时候是要指出元素的个数的,这是个具体的数值而不能是个变量,并且在C语言中当数组初始化后,数组的大小就不在改变;而在4test这么NB的语言当中,数组的大小是可以随时变化的,也就是它不管你在初始化的时候定义的是多大,它都可以在运行的过程中动态地去改变它。参见两个函数:ArrayResize ()和ArraySize(), 其中的ArraySize经常用来确认数组的大小在运行时是不是被改变了。


    Boolean类型:
    在4Test中存在Boolean类型,其值不是TURE就是FALSE;而在标准的C中(我说的是90标准C哦)是没有布尔类型的,据说C程序员觉得用int的1和0来表示会更快一些,因此C程序员们经常再用到bool表达时,会在前面加上define或直接使用1和0:

    #define TRUE 1
    #define FALSE 0

    字符型char:
    4Test中没有char类型来表示单独的字母,但有string类型,其实差不多。

    枚举类型:
    C语言中枚举就是一种类型,4test中enum更接近于一种c中说的struct(结构),说不清楚了,看例子大家就知道了。

    在C中:
    enum COLOR {red,white,blue}

    4Test中:
    type COLOR is enum
           red
          white
          blue

    然后COLOR就是一种类型了,所以还可以
    COLOR  rcolor

    Real,integer和number型:
    在C中float和double到了4Test都变成了Real型了:
    举例:
            8.12
            499.0
            -6.7511
            1e30
            1.45e-10
    在C中int,long,short和unsigned到了4test中就变成了integer只此一种,别无分店了。

    在4Test中还有一种number型,它又包含了Real和Integer型,可以表示这两种类型能表达的数字。也就是在你拿不定主意用哪种类型时,number一用保准没错。KAO,我怎么觉得4Test尽出一些流氓的万能的类型呢??


    关于指针:
    哈哈,4test没有C中关于指针的任何概念,我知道TX们学C的时候一定饱受了指针的折磨,一会指针数组一会数组指针,一堂课下来基本上要疯掉好几个人的。Java号称也放弃了指针,可还是有人揪出来实际java只是换了个名字而已,其实在4test中有相同的地方,4Test用了@来引用变量或函数,有点像指针的概念。

    Union联合体:
    4test没这种概念。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-27 08:18 , Processed in 0.081409 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表