• 使用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

  • 相关阅读:
    基于opencv的摄像头的标定
    图像的角点简介
    周转时间和平均带权时间等
    QT各个版本的下载的地址
    参考文献格式
    sublime中的emmet插件的使用技巧
    sublime快捷键
    CSS布局居中
    Markdown 语法说明(简体中文版)
    sql作业题
  • 原文地址:https://www.cnblogs.com/LOVEYU/p/16106335.html
Copyright © 2020-2023  润新知