FWScript 输入输出

输入输出需要的接口直接使用BizATDLL提供的接口,目前BizAT支持的调用接口已在原有的基础上有了较大的提升,这些接口也可以通过BizAT支持第三方的程序。 作为应用于测试自动化的脚本语言,FWScript提供丰富的对话接口,而且这些对话通过与BizAT结合,可以转到服务器端,在服务器端与SUT端同步显示与接受输入。
关于BizATDLL的详细信息,请参阅BizAT相关文档。

  • 消息显示
  • 结果检查
  • 消息文件
  • 报告测试进展与结果
  • 服务器交互

消息显示:Show,Notify,Console

在屏幕上输出要显示的消息内容,等待测试者确认,或者等待一定时间后自动关闭消息框,或者输出到控制台上Console。

代码描述
show显示变量@的值,注意:不能用@+变量的方式,必须将变量先赋值给@
show msgs显示有字符串msgs给定的消息,注意该字符串不做任何转义处理
show < 表达式
或 Show 表达式
表达式的结果为一个字符串,显示这个字符串,早期设计的时候为了照顾到代码解释的效率,强制要求在表达式的前面加个符号'<'.,目前仍保留该方式。如果没有这个符号,则表达式必须是以字符串或者变量开头( ',",$)。
setnotifytime seconds设置提示信息的缺省延迟时间,单位为秒,缺省为2秒
notify msgs显示给定的消息,在缺省延迟时间后自动关闭
notifyDDD msgs显示给定的消息,在指定延迟时间后自动关闭,可用setnotifyDDD 代替。其中DDD为数字,代表以秒为单位的延迟时间。
show @ddd显示消息文件中代号表示的消息
write / console / print 将文本输出到控制台上或log文件中。后面跟随的内容同上

获取字符串的四种方式

在各种输入输出的对话中,都需要显示一段文字,FWScript中可以通过四种方式获取这段文字,如下表所示:

方式举例说明
直接指定Show the string to be shown直接在后面跟随要显示的字符串,注意不要使用引号
通过预设字符串@="it is " + $var
show
先将要显示的字符串通过表达式计算赋值给@,然后调用一个不带任何参数的输出指令,注意该表达式的值将会转化成字符串类型
这种方式是在没有实现使用表达式时的一种临时替代方式 :) ,目前仍旧沿用。
直接使用表达式show < "it is " + $var
或者 show "it is " + $var
直接在输出指令后面跟随一个小于号或大于号,然后跟一个表达式,注意该表达式的值将会转化成字符串类型,如果没有大于号或小于号,则表达式必须是以字符串或者变量开头( ',",$)
通过消息编号@3 或 Show3
Show @3
使用消息文件中的第3号消息。可以利用show(@),check(@@)直接紧跟一个数字,也可以单独使用符号@后面跟一个数字。使用这种方式,如果要实现各种语言的支持,只需更改消息文件的内容。则个消息文件可以在代码中特别指定,但一般来讲,这个消息文件在TCJSON 中进行定义,参见: 测试脚本说明TCJSON

实例

@="显示变量@的值,等待确认"
show
show 显示消息,等待确认
notify 显示消息,等待2秒后自动关闭
notify5 显示消息,等待5秒后自动关闭
setnotifytime 8
notify 显示消息,等待8秒后自动关闭

四种常见的对话框Show,Notify,Check,Ask

除了show和Notify外,还有另外的对话框,常用的4中对话框如下所示:

类型举例说明
ShowShow Turn on the light
Show < "After " + $value + " minutes, please turn it on"
通常是要求用户做的动作,或者程序等在这个地方,直到用户点击confirm
Notify@="it is " + $var
notify
将字符串显示在一个对话框中,经过约定时间后自动关闭,用于让测试者知晓程序正在做什么
CheckCheck < < "Check if it is " + $value 显示一段文字,要求用户做检查,然后回答Pass,Fail
AskAsk please input a value输出一段文字,要求用户输入一个值,用户输入或者选择好后,这个值放到$$中,根据不同的选择与值的类型,有很多变种,参见后面的说明。
show 可用 confirm、waitaction 代替,notify 可用 display 代替,check 可用 tocheck、askcheck 代替,ask 可用 prompt、messagebox、dialogue、dialog 代替

各种Ask对话框

以下代码都可以后面直接跟消息,也可以将消息内容先赋值给@变量。注意不像Check对话框,Ask对话框的内容只是存放到$$中,不会将结果自动记录到错误报告中。

代码描述返回值
Ask显示Yes / No按钮,返回值不反馈到测试结果中,保存在变量$$中,结果为整数Yes=1,No=2
SelfDefine options^msgs自定义按钮及按钮显示文字
最多三个按钮,按钮文字可以用/分开,也可以用,或;分开
举例:button1/button2/button3^请选择:
按钮的顺序值:1,2,3
YesNo显示Yes / No按钮Yes=1,No=2
OKCancel显示OK / Cancel按钮OK=1,Cancel=2
WaitConfirm显示Confirm按钮Confirm=1
PassFailOmit显示Pass / Fail / Omit按钮Pass=1,Fail=2,Omit=3
SucceedFailed显示Succeed / Failed按钮Succeed=1,Failed=2
OptionWithComma options^msgs下拉选择菜单选项的index
AbortRetryIgnore显示Abort / Retry / Ignore按钮Abort=1,Retry=2,Ignore=3
RetryCancel显示Retry / Cancel按钮Retry=1,Cancel=2
YesNoCacel显示Yes / No / Cancel按钮Yes=1,No=2,Cancel=3
InputInt显示文本框,允许输入一个整数输入值
InputStr显示文本框,允许输入一个字符串输入值
InputFloat显示文本框,允许输入一个浮点数输入值
StepConfirm1显示Confirm / Manual / AllManual按钮Confirm=1,Manual=2,AllManual=3
StepConfirm2显示Confirm / Code / AllCode按钮Confirm=1,Code=2,AllCode=3

实例

check 请选择测试结果Pass/Fail/Omit
ask 请选择Yes或No
@="button1,button2,button3"
SelfDefine Please click a button
SelfDefine button1,button2,button3^Please click a button
YesNo Please choose Yes or No
OKCancel Please choose OK or Cancel
WaitConfirm Please Confirm
PassFailOmit Please choose Pass or Fail or Omit
SucceedFailed Please choose Succeed or Failed
@="option1,option2,option3,option4"
OptionWithComma Please choose an option
OptionWithComma option1,option2,option3,option4^Please choose an option
AbortRetryIgnore Please choose Abort or Retry or Ignore
RetryCancel Please choose Retry or Cancel
YesNoCacel Please choose Yes or No or Cancel
InputInt Please input an integer
InputStr Please input a string
InputFloat Please input a float

C# 中的定义

 // 意味着 @?2  等价于  OKCancel
 public enum BIZASKTYPE
    {
        SelfDefine = 0,
        YesNo = 1,
        OKCancel = 2,
        WaitConfirm = 3,
        PassFailOmit = 4,
        SucceedFailed = 5,
        OptionWithComma = 6, // 让使用者选择下拉菜单, 选项嵌入在后面的字符串中 
        AbortRetryIgnore = 7,
        RetryCancel = 8,
        YesNoCacel = 9,
        InputInt = 10,  // 输入一个整数
        InputStr = 11,  // 输入一个字符串
        InputFloat = 12, // 输入一个浮点数
        StepConfirm1 = 13,
        StepConfirm2 = 14,
    }

消息文件

为了将显示的信息与代码分离,BizAT支持消息文件机制,将所有的消息进行集中编号,然后只需使用这个编号,就代表这个消息,这个机制对于实现多语言支持非常有用。
如果测试脚本引用了TCJSON文件,BizRunner在装载这个文件的时候,会检查是否有MessageFile这一项,如果有,则作为消息文件处理,使用这个文件中的消息。参见 测试脚本说明TCJSON
在FWScript中,可以通过如下指令直接指定一个消息文件。

代码描述
setbytxt输入消息文本定义文件
setbytxt 可用 messagefile、setmessage 代替

实例

setbytxt c:\bizat\txt\message.txt
notify @23

与BizAT紧密相关的测试报告及与服务器的交互

针对用于测试的自动化程序,需要报告测试结果和测试进展,FWScript提供一套接口用于报告测试进展与结果,依据自动化测试的执行环境,BizAT将自动判断是否与服务器交互。

有时需要通知服务器相关情况,要求服务器做一些动作,专用于在BizAT框架下的执行

针对TC的接口,参见:TC程序调用接口

针对Feature的接口,参见:Feature程序调用接口

<< FWScript 循环FWScript 多媒体支持 >>