|
事务通过将用户请求放在一个开始和结束的标志中来对该请求进行精确计时
"事务的两个函数:
lr_start_transaction(""test"");
lr_end_transaction(""test"", LR_AUTO);"
事务中只放关键的操作,不能乱放
"事务之间没有任何代码,此时也会消耗时间
lr_start_transaction(""test"");
lr_end_transaction(""test"", LR_AUTO);"
"系统函数在做运算时,也会消耗事务的时间
lr_start_transaction(""test"");
for (i=0; i<1000; i++) {}
lr_end_transaction(""test"", LR_AUTO);"
Think time会包含在事务时间里的,但是后期可以扣除的
事务时间包含:函数自身,think time, wasted time, 响应时间
"体会以下代码的作用:用来区别事务中各块的时间:
int i;
double time_elapsed, duration, waste;
merc_timer_handle_t timer;
lr_start_transaction(""test"");
timer = lr_start_timer();
for (i=0; i<500; i++) {
}
time_elapsed = lr_end_timer(timer);
waste = time_elapsed * 1000;
lr_wasted_time(waste); //手工为事务添加wasted time
lr_think_time(5);
lr_end_transaction(""test"", LR_AUTO);"
"事务的状态不要使用LR_AUTO自动判断,要根据业务需要进行手工判断,思路为:使用web_reg_find去查找返回页面中的关键字,根据关键字找到的数量进行判断:
web_reg_find(""Fail=NotFound"",
""SaveCount=chuanshuo"",
""Search=Body"",
""Text=默认"",
LAST);
lr_start_transaction(""open"");
web_url(""forum"",
""URL=http://172.168.0.200:8010"",
LAST);
if (atoi(lr_eval_string( ""{chuanshuo}"" )) < 5)
lr_end_transaction(""open"", LR_FAIL);
else
lr_end_transaction(""open"", LR_PASS);
或者我们也可以使用时间来做判断,如果该操作的执行时间大于或小于多少秒,则认为该事务是失败的。"
函数web_get_int_property(HTTP_INFO_RETURN_CODE)可获得HTTP状态码,用于对HTTP返回状态的判断
通常比较严格的性能测试中,都自定义事务来代替以Action或Step作为事务的方式
"对代码运行时间的计算还可以使用clock()计时函数来达到:
int i,starttime, endtime;
starttime = clock();
for (i=0; i<1000; i++) {
;
}
endtime = clock();
lr_output_message(""The duration is %d"", endtime-starttime);"
"熟悉以下几个与事务有关的函数的用法:
1) lr_get_transaction_duration(""Test"") -- 取得事务Test运行到该函数时持续的时间
2) lr_get_transaction_wasted_time(""Test"") -- 取得事务Test中浪费的时间
3) lr_wasted_time(millisecond) -- 为事务添加以毫秒为单位的wasted time
4) lr_stop_transaction(""Test"") -- 停止事务Test,此时所有取事务相关时间的函数将不包含此函数后面的部分,如使用lr_get_transaction_duration(""Test"")只会取stop之前的时间
5) lr_resume_transaction(""Test"") -- 恢复停止的事务,如果调用此函数,则恢复lr_stop_transaction函数后面的时间,使lr_get_transaction_duration等函数可正常取值
6) lr_start_sub_transaction() -- 在事务中开始一个子事务
7) lr_end_sub_transaction() -- 在事务中结束一个子事务" |
|