10. Xebium的Restful调用方式

Xebium的底层Fitnesse就支持Restful的服务方式,在自带的用户指南中已经有具体的命令说明,先大致提一下:

http://host:port/resource?responder&inputs

官方文档给出的就是以上调用形式,resource就是我们之前在“目录结构和页面类型”中提到的脚本本体,重点在于responder(或者可以解释为针对页面的操作,这样就容易理解了),另外“&”后面可以跟命令的输入参数,可以只是"value"或者"key=value"这种形式。

这里只选择一些重点和实用的进行说明:

1. suite和test命令

    这2个都是执行测试用的,主要用于其他系统调用Xebium使其后台运行返回执行结果,例如Jenkins的Fitnesse插件调用方式就是运用了suite或者test这个命令。suite执行页面是TestSuite(测试集),test则是执行TestCase的。

    不带input的执行返回的是html格式结果,如果需要返回其他格式的,如xml格式,用于之后其他系统集成输出的话,可以用?test&format=xml,那么结果会以xml格式返回,容易用xpath去解析。

    有时,我们的脚本里定义了一些页面参数,比如:

!define a {test}

从含义上看,把字符串“test”赋给了变量a。但是我们在执行的时候却希望传入“game”这个串给a。那么通过?test&a=game来传入,多个参数只要用?test&key1=value1&key2=value2这种形式替换掉页面上赋的默认值。这点在做登录时很有用,用户名,密码都用这种方式传入,避免了改写脚本的麻烦。但要注意一点,http这种协议在传值的时候会有转义的情况发生,如果你要传“&”字符进去,还是需要做URL encoding的。

    再来说说远程调试功能吧,要使用远程调试功能,需要在脚本中添加如下命令行:

!define COMMAND_PATTERN {java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8005 -cp %p %m}

或者

!define REMOTE_DEBUG_COMMAND {java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8005 -cp %p %m}

    执行时后面跟debug/remote_debug(比如:test?debug),就可以进入远程调试功能,执行时系统会挂起,本地用intellj或者eclipse中配置远程调试,加断点就可以跟进代码。注意一点,debug适用于用java代码开发的调试,remote_debug则适用于其他语言开发的Class调试。

2. raw命令

    顾名思义,返回文本形式的原始脚本,页面不做任何渲染,相当于直接把结构目录下的content.txt文件内容直接返回给你。

3. stoptest命令

    当用test或者suite运行测试时,不愿意等待测试完成就想中断测试执行,那么用这个命令,其实和用页面在执行时,stop test这个按钮的效果相同。

4. shutdown命令

    关闭系统,如果系统启动采用了后台运行模式,那么关闭执行窗口并不会关系整个系统,这时用/?shutdown就可以了,很方便,远程就可以关(但别被不法分子利用了)。



多说无益,看手册你可以发现所有的相关命令。再我看来,Restful方式扩展了Xebium的使用方式,也是作为一个测试服务应该且必须提供的一种服务。用好Restful相当于在任何其他系统中集成了自动化测试模块。

你可能感兴趣的:(10. Xebium的Restful调用方式)