|
华为项目要求添加以下检查点
lr_start_transaction("TP04_01_checkPoint");
web_reg_find("Text=[\\\"6\\\",\\\"6\\\",\\\"209991\\\",\\\"8\\\"]", "SaveCount=chart3_count", LAST );
web_reg_find("Text=[\\\"6\\\",\\\"287557390\\\"]", "SaveCount=chart4_count", LAST );
web_reg_find("Text=[\\\"101248\\\",\\\"170\\\",\\\"166\\\"]", "SaveCount=chart5_count", LAST );
web_reg_find("Text=[\\\"6\\\",\\\"2393888512\\\"]", "SaveCount=chart6_count", LAST );
web_reg_find("Text=[\\\"1\\\",\\\"990\\\",\\\"21\\\"]", "SaveCount=chart12_count", LAST );
lr_end_transaction("TP04_01_checkPoint", LR_AUTO);
web_custom_request("chart",
"URL=http://beta.moojnn.com/mojing-server/board/7166592/charts",
"Method=GET",
"Resource=0",
"Referer=http://beta.moojnn.com/board.html",
"Snapshot=t130.inf",
"Mode=HTML",
"EncType=text/html; charset=UTF-8",
"Body=",
LAST);
//判断如果resultCode_count字符串出现次数大于0
if (atoi(lr_eval_string("{chart3_count}")) > 0)
//在日志中输出successful
{ lr_output_message("check chart3_count successful."); }
else
//如果出现次数小于等于
{lr_error_message("check chart3_count failed");}
if (atoi(lr_eval_string("{chart4_count}")) > 0)
{ lr_output_message("check chart4_count successful."); }
else
{lr_error_message("check chart4_count failed");}
if (atoi(lr_eval_string(
有没有注意到上面的检查点中有一堆的反斜杠呢。。
就是这三个反斜杠坑了我好久,
这个要看这个接口返回的结果,
在登录状态下,直接把那个接口的地址放到浏览器然后回车,可以查看到该接口返回的具体值。。
请看下面截图response中的两段截图。,返回值中本身就有反斜杠,是用于转义双引号,而有些地方又没有转义,其实这也是一种不好的格式,有太多的转义符号,也是性能不好的一个原因。
因为在添加要检查的点时候,前两个"//"是用来转义/,第三个“/”是用来转义引号的,
另外,在回放脚本时,在lr的输出窗口也多少可以看出点猫腻来。
Action.c(289): 未对内容类型“application/json”执行 HTML 分析(“ParseHtmlContentType”运行时设置为“TEXT”)。URL=“http://beta.moojnn.com/mojing-server/board/7166592/charts” [MsgId: MMSG-26548]
Action.c(289): 注册的 web_reg_find 对于“Text=[\"6\",\"6\",\"209991\",\"8\"]”成功(计数=1) [MsgId: MMSG-26364]
Action.c(289): 通知: 正在保存参数“chart3_count = 1”。
Action.c(289): 注册的 web_reg_find 对于“Text=[\"6\",\"287557390\"]”成功(计数=1) [MsgId: MMSG-26364]
Action.c(289): 通知: 正在保存参数“chart4_count = 1”。
Action.c(289): 注册的 web_reg_find 对于“Text=[\"101248\",\"170\",\"166\"]”成功(计数=1) [MsgId: MMSG-26364]
Action.c(289): 通知: 正在保存参数“chart5_count = 1”。
Action.c(289): 注册的 web_reg_find 对于“Text=[\"6\",\"2393888512\"]”成功(计数=1) [MsgId: MMSG-26364]
Action.c(289): 通知: 正在保存参数“chart6_count = 1”。
Action.c(289): 注册的 web_reg_find 对于“Text=[\"1\",\"990\",\"21\"]”成功(计数=1) [MsgId: MMSG-26364]
Action.c(289): 通知: 正在保存参数“chart12_count = 1”。
Action.c(289): web_custom_request("chart") 已成功,16867 个正文字节,304 个标头字节,67 个分块开销字节 [MsgId: MMSG-26385]
另外,web_reg_find()函数属于注册类型的函数,应该放在请求接口的前面,这个函数的返回只是说明里面的参数有没有注册成功,之后会在接下来的第一个方法的response中扫描有没有匹配的检查点。
如果成功就会接续执行,否则就停止之后的脚本执行,并且会说明脚本执行失败。
因此,为了让脚本执行成功,可以增加一个计数参数, web_reg_find("Text=[\\\"6\\\",\\\"287557390\\\"]", "SaveCount=chart4_count", LAST );
之后再加一个判断if (atoi(lr_eval_string("{chart3_count}")) > 0) //在日志中输出successful { lr_output_message("check chart3_count successful."); } else //如果出现次数小于等于 {lr_error_message("check chart3_count failed");}
这样只需查看输出的是successful 还是fail即可。。
并且还有一个优点,就是可以用于校验出现多次的的检查点,只需要检查出现的次数是否正确。这样也算是更精准的校验。 |
|
|