51Testing软件测试论坛

标题: SP培训中的一道题解答,请老师帮忙看看 [打印本页]

作者: sunshine_luo    时间: 2006-3-17 22:42
标题: SP培训中的一道题解答,请老师帮忙看看
题目是这样的:
How would you modify the code below so that the transaction exit failed if it took longer than 2 minutes?
Code:
lr_start_transaction("exit");
web_url("MyApp","URL=http://MyApp.com",LAST);

lr_end_transaction("exit",?LR_AUTO);

给出的答案是:
lr_start_transaction("exit");
web_url("MyApp","URL=http://MyApp.com",LAST);
status=web_set_timerout("CONNECT","120");
if(status == LR_FAIL)
    lr_error_message("Error: %s", "Fail to connect within 2 minutes!");

lr_end_transaction("exit",LR_AUTO);

不太明白的地方是
1. 在该函数的帮助,函数“web_set_timeout()”意思为“Specifies the maximum amount of time that a Vuser waits for the specified operation to be performed",这里的CONNECT意为"To establish the connection to the Web server"。而web_url()函数是向server发送了一个GET请求,不仅仅是建立一个connection
2. 关于函数web_set_timeout()使用的地方,到底是放在要监控对象之前还是之后呢?
3. 这道题用函数对:lr_start_timer()和lr_end_timer()是不是更好点?
作者: pcl2004_27    时间: 2006-3-18 13:31
假设 web_url("MyApp","URL=http://MyApp.com",LAST);
         web_image(/////)
如果第一个请求打开页面,然后下一步请求请求图片,当你打开首页之后到出现下一个图片,这段时间的间隔设置为120,如果图片在这段时间没有出来就认为是错误的。
一般给函数放在 请求对象之后
lr_start_timer;lr_end_timer这两个函数是度量你请求的时间。他不能自动退出你的脚本的,比如你要得到最后的消耗时间,也就是lr_start_timer;lr_end_timer这两个时间的差,只有得到最后的时间,才会做出一个判断。
而web_set_timerout 是等待这么时间不会延长。
作者: sunshine_luo    时间: 2006-3-19 11:44
谢谢pcl老师解答
当时我自己给出的答案是:
Action()
{
         double time_elapsed;
        merc_timer_handle_t timer;

        lr_start_transaction("exit");
        timer = lr_start_timer();
        web_url("MyApp","URL=http://MyApp.com",LAST);
        time_elapsed = lr_end_timer(timer);
        if(time_elapsed > 120)
                lr_end_transaction("exit",LR_FAIL);
        else
                lr_end_transaction("exit",LR_AUTO);
        return 0;
}
看了你的解释,我对函数web_set_timerout ()中第2个参数比较不明白了,那这个“CONNECT”和“RECEIVE”有什么差别阿?
还有一个问题:
在参考题目中:What appeared after you started the scenario run?
我对答案感到不太理解,run scenario后应该是controller控制load generator产生虚拟用户才对啊,而怎么会是弹出Start Delayed 对话框呢?
作者: pcl2004_27    时间: 2006-3-22 00:58
web_set_timerout  有三个参数
CONNECT
建立连接webserver
RECEIVE
比如服务器发送请求之后,服务器响应timeout。
STEP
VuGen 脚本函数之间 执行 timeout

Load generator 是压力生成机,具体控制的是controller!
这道题目 和 答案 发出来!
作者: sunshine_luo    时间: 2006-3-22 19:06
谢谢朴老师了!
我看到这道题的答案了,开始感觉不是很明白。后来在Schedule Builder-〉Scenario Start下设置了一个delay的时间点,这样才会在开始scenario后弹出答案中的对话框;可是如果没有设置这个delay的时间点的话,则会马上开始执行场景(而以前多采用的这种方式)
作者: sunshine_luo    时间: 2006-3-22 19:33
还有一个问题啊!
培训中有一个录制Mercury Tours脚本的题不是很明白:
找脚本中错误的地方。
我照着题目的要求自己录制了脚本,回放也是成功的。但是自己没有找出什么错误(最开始的时候也是怀疑是否是关联的问题,后来看回放也成功了,就想着关联应该是没有问题了)后来看了答案还不是不懂,请朴老师指点一二,呵呵!
作者: pcl2004_27    时间: 2006-3-22 19:43
什么题目? 我不知道你说的那道题目
作者: aiobs63    时间: 2006-3-22 23:29
标题: 我也遇到同样的问题
我也遇到同样的问题。在您的网上课堂第五节里的脚本录制题,我按要求录制脚本,然后对frompart和topart参数化,迭代执行到第2次(Seattle->Frankfurt)时就报错,但是我按ctrl+f8没有出现要关联的内容。不能完全理解您给出的答案的意思,请详细解答一下,急盼回复。谢谢!
作者: pcl2004_27    时间: 2006-3-23 10:07
什么错误? 写出来 好么?
作者: sunshine_luo    时间: 2006-3-26 16:14
又有一道题不明白了:
题目是:Each business process takes a certain amount of time to complete. Under ideal conditions, you determine this amount of time is ___
给出的答案是:Preferred response time
对这个答案不是很清楚,好像在ld的帮助文档中也没有发现;当时我自己给出的答案是:transaction response time
请朴老师看看。
作者: pcl2004_27    时间: 2006-3-27 00:34
这个问题 问的是 决定业务流程消耗的时间是什么,就是reponse time
如果问lr用什么度量业务流程的时间,那么就是 transacton
作者: aiobs63    时间: 2006-3-27 23:36
标题: 还是上面的错误请老师回答一下
我想按照您给出的答案应该是关联的问题,您给出的答案是Correlation Activity:
First error is in the basic script. On the list of available flights, even if the first listed
flight is selected by default in the Departing From table, you still need to record
clickin on it for the value to be captured and correlated when the cities are parameterized.
When the departing and arrival cities were parameterized, errors occured during the
run because the flight information changes depending on the selected departing and
arrival cities. An auto-scan corrected the errors by placing the appropriate
web_reg_save_param statements in two correlations found, Blue Skies and United
flight details.
可是我不太理解答案的意思,您能给出一个具体怎么解决的办法,这样它就不报错了吗?
作者: pcl2004_27    时间: 2006-3-28 22:02
这道题目说的很清楚了,由于你选择航向的城市,进行参数化导致你后边的请求错误,所以让你利用自动关联的方法进行修改
作者: sunshine_luo    时间: 2006-3-29 11:13
第2个错误关于关联的,是清楚的,不明白的是第一个错误:
First error is in the basic script. On the list of available flights, even if the first listed
flight is selected by default in the Departing From table, you still need to record
clickin on it for the value to be captured and correlated when the cities are parameterized
为什么选择缺省值的时候,在录制的时候还要clickin on it for the value to be captured and correlated when the cities are parameterized?
作者: pcl2004_27    时间: 2006-3-30 17:29
这道题目 其中为什么点一下,我觉得也解释不通,这是mercury给出的标准答案!其实只要解决了他给出的问题,怎么操作这些都不是最重要的
作者: huangjien    时间: 2006-6-21 11:58
标题: 好像web_set_timeout应该写在web_url之前才对
web_set_timeout 是一个service function,通常应该写在前面吧?比如web_reg_save_param之类的函数,应该先注册才行。
如果按顺序执行下来,web_url是个阻塞型函数,等它执行完了,才会注册web_set_timeout吧?
没有具体试过,猜的。
作者: 梦醒十分    时间: 2006-6-27 13:53
原帖由 sunshine_luo 于 2006-3-29 11:13 发表
第2个错误关于关联的,是清楚的,不明白的是第一个错误:
First error is in the basic script. On the list of available flights, even if the first listed
flight is selected by default in the Departing ...

感觉它是在说Winrunner或是QTP;
我在winrunner上才遇到过这样的问题。




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