最近研究了一下dwr的自动测试方案。在这里抛砖一篇博文。
dwr的协议,还是基于HTTP的。客户端一般会使用POST方法来提交内容给服务器端,服务器端从POST内容里面获知客户端想调用服务端的哪个方法,哪些参数。服务端执行这个方法后,把结果响应给客户端。
以下是一段例子:
callCount=1
scriptSessionId=${scriptSessionId}187
c0-scriptName=AlbumBean
c0-methodName=deleteAlbum
c0-id=0
c0-param0=number:250497656
batchId=481523
这里可以很清楚的看到,POST的内容里面指定了要访问的是AlbumBean中的deleteAlbum方法,参数是number类型的250497656。其他什么batchId,scriptSessionId,c0-id, callCount等,大多数情况下都是固定的那几个值。
那我如果要写代码自己来提交这个HTTP请求,就必须把调用的Bean、方法名,还有参数,以及参数类型都按照这个格式进行包装。
如果再进一步,参数类型都是可以通过js的typeof来自动获取。
然后我的思路是:用java写引擎,负责http传输。用js来接受调用,自动获取参数格式,然后把Bean、方法名,还有参数,以及参数类型发给java引擎,把这些内容组织好post出去。
我们再来看看服务端响应的内容:
//#DWR-INSERT