使用LR完成接口测试记录

使用LR完成接口测试记录

之前介入的接口测试或者出具的测试报告,没有强制要求是使用什么工具,所以基本都是使用jmeter完成相关性能测试并出具测试报告,交付第三方验收并通过。
但最近有个项目比较特殊,客户明确要求必须使用LoadRunner完成性能测试并出具测试报告,相对我们目前项目而言,如果使用LR进行录制--修改脚本并执行完成测试,此中方法已经不适用;所以只得使用LR进行接口编码修改并完成测试;经验证此种方法是对于目前系统是适用的,而出具的报告第三方也已认可。所以此处做一个记录,以备查验。

这里直接拿现有的接口信息来说明,先了解几个常用的方法:

1.lr_output_message()输出,可作为调试的print
2.web_reg_save_param()取参数,参数注册,要用左边界,右边界,转义符等等精确的取到需要的参数
3.lr_rendezvous()集合虚拟用户,先启动的线程等待还没启动的线程,在此集合
4.lr_start_transaction()事务开始的节点
5.lr_get_transaction_duration()事务耗时,用在transaction中任何你需要知道的节点
6.lr_get_transaction_wasted_time()程序自身消耗的时间
7.lr_eval_string()变量取值
8.lr_end_transaction()事务结束,参数LR_AUTO即程序自动判断事务pass还是fail,也可自定义
————————————————

原文链接:https://blog.csdn.net/weixin_41479678/article/details/112669986

相关接口如下:

Action()
{
	double totaltime = 0;
	double wasttime = 0;
	double stotaltime = 0;
	double swasttime = 0;

	
	lr_output_message("当前为第%s次迭代",lr_eval_string("{NewParam}"));
	web_reg_save_param("rcm.session.id",
                       "LB=\"msg\":",
                       "RB=,\"rcm.session.id\"",
                        LAST);//取code

	lr_rendezvous("集合点");

	lr_start_transaction("登陆");
	

	web_submit_data("login",
					   "Action=http://192.168.1.144/rcm/a/login",
					   "Method=POST",
					   "Resource=0",
				
					   "Referer=",
					   ITEMDATA,
					   "Name=mobileLogin","Value=1",ENDITEM, 
					   "Name=username","Value=6bcce5f671fd3f27672c13feef54c8f550aeab495e1d04fba86120d2e99c1beed54258a70145d0371c3a738bb2dd1d9232fed6235f9f2e8f2722c974caf42fe4777c4d51237e3274473d5188367058931eafae68e5b9d70c74824d864467117dfb03b9b818d4646772adec9eadbf7044b43e329e44d38dff4e15459198237ecc",ENDITEM, 
					   "Name=password","Value=7b54901eaa0e6b69ff603cb02a1aef7749567eeb5a61e5038e86eabccb7ba45d34e742572d70bb80ed8bb7e19f32fa9b9d93874b5419cb4512fe119c50878e4f126e53f67434c8a0441a57a65b6ea7df01e40352dfb95bc4e319f516ab42f662b569896f3d48e030793c65d31b4824cb55d8eb8fafd1c0092f8d1b47b0f125b2",ENDITEM,
					   "Name=accountSuitId","Value=fa80c8f8b9ee43a79fdfa5ddf8d29807",ENDITEM,
					   "Name=identifierId","Value=09eff7963d5c88c2",ENDITEM,
					   "Name=validateCode","Value=",ENDITEM,
					   "Name=loginType","Value=1",ENDITEM,
								LAST);

	totaltime=lr_get_transaction_duration("登陆");
    wasttime=lr_get_transaction_wasted_time("登陆"); 
	lr_output_message("总共花费了:%f",totaltime);//事务运行至此总共耗费时间
	lr_output_message("程序浪费了:%f",wasttime);//事务运行至此loadrunner自身消耗时间
	lr_output_message("响应时间为:%f",totaltime-wasttime);//响应时间=总耗费时间-自身消耗时间
	lr_end_transaction("登陆",LR_AUTO);



					 
	if(atoi(lr_eval_string("{code}"))==0)
		lr_output_message("登陆成功"),
		lr_output_message("code:%s",lr_eval_string("{code}"));




	else if(atoi(lr_eval_string("{code}"))!=0 ) 
		lr_output_message("登陆失败");
	
	
	lr_start_transaction("添加");
	
	web_submit_data("select",
					   "Action=http://192.168.1.144/rcm/a/asset/asset/listData",
					   "Method=POST",
					   "Resource=0",
				
					   "Referer=",
					   ITEMDATA,
					   "Name=confirmState","Value=1",ENDITEM, 
					   "Name=useStateName","Value=在用",ENDITEM, 
					   "Name=useState","Value=1",ENDITEM,
								LAST);

	stotaltime=lr_get_transaction_duration("添加");
    swasttime=lr_get_transaction_wasted_time("添加"); 
	lr_output_message("总共花费了:%f",stotaltime);//事务运行至此总共耗费时间
	lr_output_message("程序浪费了:%f",swasttime);//事务运行至此loadrunner自身消耗时间
	lr_output_message("响应时间为:%f",stotaltime-swasttime);//响应时间=总耗费时间-自身消耗时间
	lr_end_transaction("添加",LR_AUTO);

	
	lr_start_transaction("查询");
	
	web_submit_data("submit",
					   "Action=http://192.168.1.144/rcm/a/asset/analysis/assetRetirementSummary/listData",
					   "Method=POST",
					   "Resource=0",
				
					   "Referer=",
					   ITEMDATA,
					   "Name=pageNo","Value=",ENDITEM, 
					   "Name=pageSize","Value=",ENDITEM,
								LAST);
	stotaltime=lr_get_transaction_duration("查询");
    swasttime=lr_get_transaction_wasted_time("查询"); 
	lr_output_message("总共花费了:%f",stotaltime);//事务运行至此总共耗费时间
	lr_output_message("程序浪费了:%f",swasttime);//事务运行至此loadrunner自身消耗时间
	lr_output_message("响应时间为:%f",stotaltime-swasttime);//响应时间=总耗费时间-自身消耗时间

	lr_end_transaction("查询",LR_AUTO);

	return 0;
}

此处设置了3个接口,接口设计如图

image-20220406144106688

具体可根据实际需求设置不同的计划。

报告如图所示,根据项目情况,出具不同的测试报告,以完成测试验收。

image-20220406144251679

image-20220406144431643

posted @ 2022-04-06 14:46  janehost  阅读(207)  评论(0编辑  收藏  举报