今日有个测试同仁问我,她在脚本中设置了检查点,调试‘通过’。场景运行后,Error中提示检查点未找到,但是失败的事务数却为0。检查原因后发现,其脚本中没有和事务关联在一起。
.....
看看下面的测试案例:
1、不在if语句中加结束事务的判断语句(即原来的脚本):--->实际结果为: 有Error, 但是事务的结束状态为‘Pass’;
1)初始代码:
....
web_reg_find("Text=lr11 破解11111",
"SaveCount=SearchContent",
LAST);
....
if (atoi(lr_eval_string("{SearchContent}"))>0) {
lr_output_message("成功!");
}
else {
lr_error_message("失败!");
}
lr_end_transaction("Search",LR_AUTO);
运行结果:
Action.c(57): Error: 失败!
Action.c(63): Notify: Transaction "Search" ended with "Pass" status (Duration: 0.3754 Wasted Time: 0.0095).
2.在if语句中加结束事务的判断语句(优化后的语句,见截图)-->实际结果为:有Error, 事务的结束状态为‘Fail’
1)优化后的代码:
web_reg_find("Text=lr11 破解11111",
"SaveCount=SearchContent",
LAST);
....
if (atoi(lr_eval_string("{SearchContent}"))>0) {
lr_output_message("成功!");
lr_end_transaction("Search",LR_PASS);
}
else {
lr_error_message("失败!");
lr_end_transaction("Search",LR_FAIL);
}
2)运行结果:
Action.c(59): Error: 失败!
Action.c(60): Notify: Transaction "Search" ended with "Fail" status (Duration: 0.2731 Wasted Time: 0.0110).
三、原因分析
原脚本中,没有将检查点的状态与事务状态关联在一起,导致场景运行时可能出现有error,而failed transaction等于0的情况。当然,这只是原因之一,有可能还有其他原因,待进一步确认。