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中对话框如下所示:
类型 | 举例 | 说明 |
---|---|---|
Show | Show Turn on the light
Show < "After " + $value + " minutes, please turn it on" | 通常是要求用户做的动作,或者程序等在这个地方,直到用户点击confirm |
Notify | @="it is " + $var notify | 将字符串显示在一个对话框中,经过约定时间后自动关闭,用于让测试者知晓程序正在做什么 |
Check | Check < < "Check if it is " + $value | 显示一段文字,要求用户做检查,然后回答Pass,Fail |
Ask | Ask please input a value | 输出一段文字,要求用户输入一个值,用户输入或者选择好后,这个值放到$$中,根据不同的选择与值的类型,有很多变种,参见后面的说明。 |
各种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 c:\bizat\txt\message.txt notify @23
与BizAT紧密相关的测试报告及与服务器的交互
针对用于测试的自动化程序,需要报告测试结果和测试进展,FWScript提供一套接口用于报告测试进展与结果,依据自动化测试的执行环境,BizAT将自动判断是否与服务器交互。
有时需要通知服务器相关情况,要求服务器做一些动作,专用于在BizAT框架下的执行
针对TC的接口,参见:TC程序调用接口
针对Feature的接口,参见:Feature程序调用接口
<< FWScript 循环 | FWScript 多媒体支持 >> |