调用BizAT
报告测试进展与结果
针对用于测试的自动化程序,需要报告测试结果和测试进展,FWScript提供一套接口用于报告测试进展与结果,依据自动化测试的执行环境,BizAT将自动判断是否与服务器交互。
代码 | 描述 | 示例 |
---|---|---|
@%0 begin,end reportomits begin,end | 设定Omit的区间,报告给SUTAgent,begin与end均为数字,代表程序步骤。注意此处仅仅是报告,程序执行并不会跳到对应的地方。若需要程序也跳转到后面,使用注意此处仅仅是报告,程序执行并不会跳到对应的地方。若需要程序也跳转到后面,使用 omitsteps或omits或stepsomit | reportomits 1,5 |
@%1 pass reportpass | 向SUTAgent报告当前步骤的执行结果为Pass | @%1 |
@%2 str fail str reportfail str | 向SUTAgent报告当前步骤的执行结果为fail,并指出错误的详细信息。另外,BizRunner也会在测试结果中记录这个报错信息 | reportfail "Error when executing the command" |
@%3 reportomit | 向SUTAgent报告当前步骤为omit,此处仅仅报告给SUTAgent,程序执行不退出这一步。后面需要程序调用omitstep 或 omit退出这一步,在调用的时候BizRunner将记录这一步的测试结果。 | @%3 |
@%4 tellexitnext | 告知SUTAgent 先退出然后执行下一次的程序调用(新的cycle),此处仅仅是通知SUTAgent,脚本需要在后面调用重启的指令 【无需保存环境】 | tellexitnext |
@%5 dd TellProgress dd ReportProgress dd | 只是向SUTAgent报告当前的Cycle数。后面可以跟一个整数或者变量,若没有值,则使用BizRunner里面的当前次数。 | tellprogress 15 |
@%6 dd FlowOrder dd SetCycle dd | 设定当前的Cycle数,如果该执行是cycle类型的,则向测试结果cycleFile输出一个记录。后面可以跟一个整数或者变量。 | @SetCycle 125 |
@%7 str ReportInfo str | 只向SUTAgent报告当前的执行情况,后跟一个字符串,若为空,则使用特殊变量@的值 | ReportInfo "Now executing the command" |
@%8 str ReportErrorInfo str | 向SUTAgent报告出现的错误信息,同时记录这个信息到测试结果中,注意,如果时cycle类型的,则输出到cycleFile中。后跟一个字符串,若为空,则使用特殊变量@的值 | ReportErrorInfo "Error when executing the command" |
@%9 str ReportError str ReportErrorFlow str | 报告出错所在的执行次数以及出错信息,使用BizRunner中的当前次数,后跟一个字符串,若为空,则使用特殊变量@的值 | ReportError "Error found in entering setting" |
@^ str ReportData str | 在错误报告中记录测试数据,后跟一个字符串或 < expr. (即使用表达式的值),若为空,则使用特殊变量@的值 | ReportData "The CPU's temperature is 45" |
注:前面的4个调用针对有测试步骤的TC;而后面的5678则针对Feature或非Exe的情况。最后的ReportData在TC类的执行中,将不记录步骤号。 测试报告的内容将会自动记录在本地的结果文件中,可以使用工具进行查看(HTML格式),当在BizAT测试框架下执行自动化脚本时,相关的测试报告将自动传输到服务器中,可以透过Browser访问WebServer进行集中访问。
数据报告的自定义
很多情况下,需要一段自动化脚本去收集机器的数据,而不是测试
BizAT提供一种报告的方式,让最终的界面可以方便显示收集到的数据。
如上所示,报告数据的命令为 ReportData (或者符号@^) 后面跟着产生一个字符串的表达式或者什么也不跟,使用前面定义的@的值
字符串的格式约定如下:
自由定义:*this is a report from one testing
此处第一个字符为'*',表示后面的内容在BizAT框架里面不做任何解释,在报告界面中直接将这段内容显示出来。
简便模式: /TitleName/Item1Name/Item1value/Item2Name/Item2value/Item3Name/Item3value
此处第一个字符为分隔符(注意不能为'['),如可以为%TitleName%Item1Name%Item1value%Item2Name%Item2value%Item3Name%Item3value
TitleName为显示的总的title的名字,后面跟每一项的名字与值。
Json格式: ["title", titlename", "item1name", "item1value", "item2name", "item2value"]
这种格式跟简便模式相像,但方便于程序使用Json解析。
注意:自由定义的数据报告的具体的格式由上层去解释,BizAT只是一个传输媒介,而JSON格式与简便格式则会在BIZAT的结果展示中进行解析。
测试数据报告示例: 采用抬头与内容交替出现的一维数组(json格式) @='["title","SYSTEM PERFORMANCE DATA", "CPU SPEED","55555", "内存","555", "PROCESS","25", "CURRENT PROCESS","reporting data"] ' reportdata @='["title","SYSTEM PERFORMANCE DATA", "CPU SPEED","88888", "MEMORY AMOUNT","888", "PROCESS","28", "CURRENT PROCESS","TouchPad displaying"] ' reportdata 也可以使用更为简便的格式,利用第一个字符为分隔符,抬头与内容交替出现 @="/Platform/OS/win10/Version/1703/Build/15063.726" reportdata
服务器交互 (To Be Modified!)
要求服务器端要做的动作, 注意这些动作依赖于BIZAT的设置,像电源的打开与关闭需要BIZAT中的dashboard端配置好遥控的环境
注:早期BizAT使用的是DASHBOARD模式的服务器,目前已有较大的变化,本功能目前已不再支持,将来会有更完整的方案。
代码 | 描述 | 实例 |
---|---|---|
@! todo =waitseconds,param | 要求服务器端等待一段时间后要做的动作,等于号=后面的时间以秒为单位,下同 | @!1 20,start |
@!1 remoteWakeup =waitseconds | 要求服务器端远程唤醒本SUT,注意此处必须要指明等待的时间,服务器端应配置有远程唤醒的软件工具,在BizATDLL中会获取本机相关信息,以便服务器唤醒。 | @! start |
@!2 poweron [=waitseconds] | 要求服务器端打开本测试机的电源,注意BizAT框架必须先设置好 | @!2 |
@!3 poweroff [=waitseconds] | 要求服务器端关闭本测试机的电源,注意BizAT框架必须先设置好 | @!2 |
@!4 sendresult [=waitseconds] param | 透过服务器将param字符串送到main server | @!2 |
@!5 expect [=waitseconds] ddd/command | 要求服务器端在等待ddd妙时间后,检查SUT有没有执行CancelExpect,没有的话,执行后面command定义的动作 | expect 120/call ... ... |
@!6 cancelexpect | 告知服务器取消前面的expect | cancelexpect |
@!= waittodo param @!< loaddata $$ | 要求服务器端要做的动作, 并等待服务器做完,结果放在$$中。后面的loaddata语句配合使用,用于将$$中指定的内容装载到FWScript变量中 | @!= start |
@!=1 AskServer param | 要求服务器安排任务的选择,安排的内容在$$中 | askserver 0.34 loaddata $$ |
@!=2 waitpoweron [=waitseconds] | 要求服务器端打开本测试机的电源,服务器做完后的结果在$$中,注意BizAT框架必须先设置好 | @!2 |
@!=3 waitpoweroff [=waitseconds] | 要求服务器端关闭本测试机的电源,服务器做完后的结果在$$中,注意BizAT框架必须先设置好 | @!2 |
告知SUTAgent的行为
当需要重启机器的时候,需要通知SUTAgent先退出来
代码 | 描述 |
---|---|
)d reboot, shutdown, logoff, winre | 告诉SUTAgent,需要临时退出;BizRunner保存执行环境,同时自己启动关机重启命令,后跟一个数字d,则代表不同的关机的指令 |
@) TellExit | 告诉SUTAgent,需要退出,而BizRunner 不做任何事情(即不保存环境)。由后续代码负责BizRunner的退出与重启(使用 ))d) |
)( ToReboot | 告诉SUTAgent,需要临时退出,而BizRunner 需要保存当前的环境,以便下次启动BizRunner时从)处开始运行。由后续代码负责bizrunner的退出与重启(使用 ))d) |
@%4 TellExitNext | 告知SUTAgent转为执行下一次的循环,然后退出。由后续代码负责bizrunner的退出与重启(使用 ))d) |
@| TellAbort @) TellExit ))d ireboot | 告知SUTAgent已中止任务的运行,要求其退出;后面自己重启 |
@! ToDo | 让服务器一定时间后执行动作 |
报告测试结束及最终结果
当测试结束的时候,报告给BizAT相关信息。
代码 | 描述 |
---|---|
@| TellAbort | 告诉SUTAgent,程序异常结束了 |
|| theend programexit | 程序执行正常结束了。相当于这个程序的执行自然结束 |
|! taskabort | 程序执行全部结束。针对于单次类型的feature,意味着后面无需再执行下去了 |
|$ NotReady | 报告SUTAgent, 当前执行的程序为测试条件检查程序,检查结果不满足条件 |
|? ScriptError | 报告SUTAgent, 出现了自动化程序脚本错误,或者程序执行出现了意想不到的情况 |
<< 断点续执行 | 测试脚本说明TCJSON >> |