【转】LoadRunner在socket接口测试中的应用
转载地址:http://www.51ceshi.cn/bvt/mercury/loadrunner/4082.html
最近尝试用LR测试公司营帐系统的协议接口,使用了LR中socket协议的基本函数,实现了发送请求数据,接收返回数据并从返回数据中截取到指定范围的字符串rspcode,并转换回整形,实时反馈测试结果的功能。
respcode:200=正常
附Action源码,具体包的信令因涉及到项目信息不公布。
#include "lrs.h" Action() { char *buf0; int ActucalNumber; int respcode; int length; int Numberofbuf0; lrs_create_socket("socket0", "TCP", "RemoteHost=172.16.11.170:8888",LrsLastArg); lrs_send("socket0", "buf0", LrsLastArg); lrs_receive("socket0", "buf1", LrsLastArg); //获取send buf的包的长度,在修改发送包buf0的时候自动统计包长 lrs_get_buffer_by_name("buf0",&buf0,&Numberofbuf0); //socket接收到buf动态包长,由于返回的数据包的包长动态变化,所以lrs_save_param_ex操作时需要获取ActualNumber ActucalNumber=lrs_get_last_received_buffer_size("socket0"); //获取返回数据的字符串 lrs_save_param_ex("socket0","received",NULL,0,ActucalNumber,"ascii","param1"); //respcode在接口返回字符串中的位置为32~36 lrs_save_param_ex("socket0","received",NULL,32,4,"ascii","param2"); //获取rspcode字符串的长度,lrs_hex_string_to_int函数用 length=strlen(lr_eval_string("<param2>")); //字符型转换成整形,方便在日志中查看respcode结果 lrs_hex_string_to_int(lr_eval_string("<param2>"),length,&respcode); lrs_close_socket("socket0"); lr_output_message("-----------------------------------INFO---------------------------------------"); lr_output_message("The length of resp is %d", ActucalNumber); lr_output_message("The content of resp is %s", lr_eval_string("<param1>")); lr_output_message("The content of respcode is %s", lr_eval_string("<param2>")); lr_output_message("Respcode is %i", respcode); lr_output_message("包长度:%d",Numberofbuf0); return 0; }

浙公网安备 33010602011771号