|
先讲下 我测试的系统架构: JAVA应用,表现层--JSF,应用--JBOSS(2台JBOSS服务器,在前端有个负载均衡服务器);
测试程序---一个简单的页面提交。
问题:用LR正常录制脚本,提交,返回!返回的提交内容为空!(中间有个sessionid的关联)
应该1天的测试加讨论,最后定出问题的原因,如下:
由于JSF有个重定项的功能,在IE的一次点击提交中,会对服务器发出2次请求(第一次请求,服务器只返回HTTP头,里面包含了重定项的一些参数;第2次再以这个HTTP头发请求,才返回HTTP头和BODY),这时候用IE操作是没有问题的,因为它把这次提交的2次请求都做为一个
conn(有Keep-alive );
但在LR里面一次提交产生的2次请求是作为2个conn(是模拟成2个IE打开2个URL),这样在这个系统架构下就会产生问题了(第一次请求,是对1号JBOSS服务器发出的请求,而第2次请求是2号JBOSS服务器,导致无返回值)
PS:如果JBOSS就一台,就不会出现这样的情况,因为该台机上保存的唯一的sessionid
解决方法:在开发不做sessionid同步的情况下;而我这边要做的是如何把LR的一次点击产生的2次请求做为一个CONN(也就是2个请求用一个IE打开) |
|