51Testing软件测试论坛

标题: 关于思考时间的疑问 [打印本页]

作者: lovetest    时间: 2007-8-27 11:01
标题: 关于思考时间的疑问
我录制了一个网站的登录操作,在点击登录按钮之前添加加事务,完全进入页面之后结束事务(在这个过程中没有人为做任何操作)。这个事务中间为什么会产生了一个思考时间呢?(见脚本中的lr_think_time( 5 );)  我感觉这个思考时间不是操作中用户的思考时间,而是系统在等待服务器反应时的时间(在等待系统加载子菜单的时间),如果是这样的话我该如何处理它呢?
#include "web_api.h"

Action()
{


lr_start_transaction("登陆");

web_submit_data("j_unieap_security_check.do",
  "Action=http://172.16.2.1:7001/wrn/j_unieap_security_check.do",
  "Method=POST",
  "RecContentType=text/html",
  "Referer=http://172.16.2.1:7001/wrn/login.do?method=admin_login",
  "Snapshot=t3.inf",
  "Mode=HTML",
  ITEMDATA,
  "Name=j_username", "Value=130103010017", ENDITEM,
  "Name=j_password", "Value=12321323", ENDITEM,
  EXTRARES,
  "Url=wrn/pages/menu/files/top_bg.gif", "Referer=http://172.16.2.1:7001/wrn/wrn/rootmenu.do", ENDITEM,
  "Url=wrn/pages/menu/files/top_bg2.gif", "Referer=http://172.16.2.1:7001/wrn/wrn/rootmenu.do", ENDITEM,
  "Url=wrn/pages/menu/files/bgbar.gif", "Referer=http://172.16.2.1:7001/wrn/wrn/rootmenu.do", ENDITEM,
  "Url=wrn/pages/menu/files/seperator.gif", "Referer=http://172.16.2.1:7001/wrn/wrn/rootmenu.do", ENDITEM,
  LAST);

lr_think_time( 5 );

web_url("childmenu.do",
  "URL=http://172.16.2.1:7001/wrn/wrn/childmenu.do?parentName=lgxx",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=http://172.16.2.1:7001/wrn/wrn/pages/index.jsp",
  "Snapshot=t4.inf",
  "Mode=HTML",
  LAST);
web_submit_data("controller.do",
  "Action=http://172.16.2.1:7001/wrn/wrn/controller.do?location=/wrn/gcgzls.do?method=txxx&menuName=gcgzltxxx&remove=",
  "Method=POST",
  "RecContentType=text/html",
  "Referer=http://172.16.2.1:7001/wrn/wrn/childmenu.do?parentName=lgxx",
  "Snapshot=t5.inf",
  "Mode=HTML",
  ITEMDATA,
  LAST);
web_submit_form("gcgzls.do",
  "Snapshot=t6.inf",
  ITEMDATA,
  EXTRARES,
  "Url=css/messages.css", "Referer=http://172.16.2.1:7001/wrn/wrn/gcgzls.do?method=txxx&menuName=gcgzltxxx", ENDITEM,
  "Url=css/tabstyle.css", "Referer=http://172.16.2.1:7001/wrn/wrn/gcgzls.do?method=txxx&menuName=gcgzltxxx", ENDITEM,
  "Url=images/arrow_off.png", "Referer=http://172.16.2.1:7001/wrn/wrn/gcgzls.do?method=txxx&menuName=gcgzltxxx", ENDITEM,
  LAST);

lr_end_transaction("登陆", LR_AUTO);
return 0;
}
作者: spartan    时间: 2007-8-27 11:04
如何处理它, 要看你性能测试的需求呢?

登陆的时候一般是拿掉Think_time的。 
作者: lovetest    时间: 2007-8-27 11:29
谢谢spartan,我理解的thinktime是操作用户主动延迟操作时才会产生thinktime,就是说这个思考时间的大小是由用户决定的。而我这个登录脚本中产生的thinktime不是由操作用户决定的,我在点了登录按钮之后和进入页面之前不可能再对系统进行干预了。脚本里面的思考时间是系统在等待加载子菜单时产生的,我不明白这里为什么会产生thinktime。
作者: lovetest    时间: 2007-8-27 13:09
自己踩踩别沉了
作者: lovetest    时间: 2007-8-27 13:57
我的意思是,如果这个思考时间是由于系统等待服务器处理产生的,那么这个思考时间应该算在响应时间里,否则就不应该算在响应时间里。
作者: lovetest    时间: 2007-8-27 14:14
是不是我理解的不对呀,请指点一下。我理解的“思考时间”顾名思义就是“人”的考虑时间,应该不包括等待“系统”处理时间。对不?
作者: lovetest    时间: 2007-8-28 08:45
又做了下实验,在有服务器有压力的情况下和没有压力的情况下,录制时产生的思考时间是不同的。
作者: corrine-li    时间: 2007-8-28 08:53
思考时间是录制脚本的时候,自动生成的啊。
作者: Zee    时间: 2007-8-28 09:10
事务响应时间是用户结束请求到系统响应完成。
系统响应完成,可能在本地还要有显示时间。
还有,系统响应完成,到你添加结束事务,还是有间隔的。
所以有思考时间是很正常的。
作者: spartan    时间: 2007-8-28 11:00
思考时间和“人”“系统”都有关系的,是两者的等待时间的和。

思考时间是指: 系统在前一个响应结束后, 到下一个请求开始发送之间的一个时间差。
但是前一个响应结束后,客户端还需要一定的时间显示出来。这样的话,楼主的列子就很好解释了。

楼主的前一个响应"j_unieap_security_check.do"结束后,并无人为的点击或者发送请求的动作,但是前一个响应完成后,在客户端显示占据了5秒钟的时间。然后第二个请求"childmenu.do"有系统发送。
所以, 在"j_unieap_security_check.do"和"childmenu.do"之间会有5秒钟的think time.

同理, 假如系统在前一个响应结束后, 后续没有请求再发送了,需要用户点击按钮才能发送。 这个时候的think time就是由两部分时间组成,即:
1.第一个响应结束后在客户端显示出来的时间;
2.完全显示出来后等待用户点击按钮的时间;

请参考附件中MERCURY的关于THINK TIME的官方图形解释:
[attach]31963[/attach]
作者: 淡蓝亦寒    时间: 2007-8-29 07:21
sdlkfj5 思考时间,使并发变得很模糊。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2