标签:class code java http tar ext
在使用Loadrunner进行性能测试中,有时需要对性能测试中的功能是否全部正确进行判断。这里就需要用到“检查点”,本文总结了常用三种协议下检查点的使用方法,希望阅读本文后的同事能够掌握其使用方法,并灵活应用在实际项目中。
1. HTTP协议
HTTP协议中检查点有两种:图片和文字。这两种检查点可用以下三个函数实现:web_find()、web_reg_find()和web_image_check(),下面介绍三种函数的使用方法。
1.1 web_find()函数
函数的作用是“在页面中查找相应的内容”,常用参数及含义如下:
web_find("web_find", //定义该查找函数的名称
"RightOf=a", //定义查找字符的右边界
"LeftOf=b", //定义查找字符的左边界
"What=name", //定义查找内容
LAST);
使用该函数注意以下事项:
该函数在页面内容显示出来以后,在页面中进行查找,所以只能写在要查找内容之后
该函数只能在基于HTML模式录制的脚本中进行查找
在Runtime setting->Preferences里面,把Enable image and text check选中,否则不执行该查找函数
该函数还有以下缺点:
1.2 web_reg_find()函数
函数的作用是“在缓存中查找相应的内容”,常用参数及含义如下:
web_reg_find("Search=Body", //定义查找范围
"SaveCount=count", //定义查找计数变量名称
"Text=test", //定义查找内容
LAST);
使用该函数注意以下事项:
该函数写在要查找内容的请求之前,通常情况下写在如下六个函数之前:Web_castom_request();web_image();web_link();web_submit_data();web_submit_form();web_url()
该函数中的“SaveCount”参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到,下面举个例子来说明:(引用LR的帮助中的例子)
// Run the Web Tours sampleweb_url("MercuryWebTours",
"URL=http://localhost/MercuryWebTours/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); // Set up check for successful login by looking for "Welcome" web_reg_find("Text=Welcome", "SaveCount=Welcome_Count", LAST); // Now log in web_submit_form("login.pl", "Snapshot=t2.inf", ITEMDATA, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=login.x", "Value=35", ENDITEM, "Name=login.y", "Value=14", ENDITEM, LAST); // Check result if (atoi(lr_eval_string("{Welcome_Count}")) > 0) //判断如果Welcome字符串出现次数大于0 { lr_output_message("Log on successful."); } //在日志中输出Log on successful else //如果出现次数小于等于 {lr_error_message("Log on failed");} //在日志中输出Log on failed return(0); } |
1.3 web_image_check()函数
函数作用:在页面中查找一个具体的图片,常用参数及含义如下:
web_image_check("web_image_check", //函数标题
"Alt=", //图标说明
"Src=", //图片链接地址
LAST);
使用该函数注意以下事项:
下面是应用实例:
#include "web_api.h"Action(){web_url("www.google.cn","URL=http://www.google.cn/","Resource=0","RecContentType=text/html",
"Referer=", "Snapshot=t1.inf", "Mode=HTML", EXTRARES, LAST); web_image_check("web_image_check", "Src=/intl/zh-CN/images/logo_cn.gif", "Alt=Google", LAST); return 0;} |
LoadRunner执行后日志记录如下:
Action.c(20): "web_image_check" succeeded (1 occurrence(s) found. Alt="Google", Src="/intl/zh-CN/images/logo_cn.gif") [MsgId: MMSG-27192]Action.c(20): web_image_check was successful [MsgId: MMSG-26392] |
1.4 插入函数的方法
1.5小结
由于Socket协议与Webservice协议中检查点设置方法基本一致,本文主要以实例来逐一说明。
实例1:Socket协议
Socket协议测试脚本如下:
#include "lrs.h"Action()
{intsc=0; lr_start_transaction("BIG1"); //建立socket链接 sc = lrs_create_socket("socket1","TCP","RemoteHost=192.168.85.247:26001",LrsLastArg); if (sc == 0) lr_output_message("Socket was successfully created "); else lr_output_message("An error occurred while creating the socket, Error Code: %d", sc); //发送socket请求,接收socket返回结果 lrs_send("socket1", "buf0", LrsLastArg); lrs_receive("socket1", "buf1", LrsLastArg); //保存socket返回结果至参数Res_BIG1中 lrs_save_param_ex("socket1", "received", "buf1", 0, lrs_get_last_received_buffer_size("socket1"),NULL, "Res_BIG1"); //关闭socket链接 lrs_disable_socket("socket1", DISABLE_SEND); lrs_close_socket("socket1"); //判断Res_BIG1参数中是否有"content-length: 10"字段 if((strstr(lr_eval_string("<Res_BIG1>"),"content-length: 10"))==NULL) { lr_error_message("-------%s",lr_eval_string("<Res_BIG1>")); lr_end_transaction("BIG1",LR_FAIL); } else { lr_output_message("-------%s",lr_eval_string("<Res_BIG1>")); lr_end_transaction("BIG1",LR_PASS); } return 0; } |
实例2:Webservie协议
Webservice性能测试脚本如下:
Action(){lr_start_transaction("SaveSession");
web_service_call( "StepName=SubmitNLSMS", BEGIN_ARGUMENTS, "inputXML=<mobileno>{UserNO}</mobileno><smscontent>hi </smscontent>", END_ARGUMENTS, BEGIN_RESULT, "SubmitNLSMSRequestResult=SubmitSMSResult1", //保存返回结果至参数中 END_RESULT, LAST); //判断返回结果 if((strstr(lr_eval_string("{SubmitSMSResult1}"),"Hello World"))==NULL) { lr_error_message("-------%s",lr_eval_string("{UserNO}")); lr_error_message("-------%s",lr_eval_string("{SubmitSMSResult1}")); lr_end_transaction("SaveSession",LR_FAIL); } else { lr_output_message("-------%s",lr_eval_string("{UserNO}")); lr_output_message("-------%s",lr_eval_string("{SubmitSMSResult1}")); lr_end_transaction("SaveSession",LR_PASS); } return 0; } |
2.1 小结
使用“检查点”,首先需要得到“返回结果”,将该返回结果保存至参数中
对返回结果进行判断,这里可能需要用到lr_eval_string(), atoi(), strstr()等函数
相关函数说明:
Loadrunner检查点使用总结,布布扣,bubuko.com
标签:class code java http tar ext
原文地址:http://www.cnblogs.com/shengs/p/3790035.html