使用LoadRunner执行性能测试

最近因项目需求,我们对系统进行了LoadRunner性能测试,具体实施流程如下:
1、安装并配置LoadRunner测试环境。
2、使用Virtual User Generator完成测试脚本的录制和优化。
3、通过Controller工具执行场景测试并生成性能分析图表。

LoadRunner介绍

Loadrunner是HP公司提供的一款性能测试工具,通过模拟成千上万个用户实施并发操作,测试系统的性能,并且提供详细的测试结果分析,协助用户查找问题。Loadrunner的优势在于节约了人力成本和时间成功,纯人工进行并发测试,不仅需要大量的人手和机器,还需要测试人员进行充分的沟通,默契的进行操作。使用Loadrunner就可以一个人模拟上万个用户,压缩了成本,也提高了效率。

Loadrunner的主要组件包括:

  • Virtual User Generator:捕捉用户业务流程,并且自动生成脚本;
  • Controller:设计场景,主要包括设置不同脚本的虚拟用户数量、迭代次数、执行时间等;
  • Load Generator:模拟用户向服务器发送请求;
  • Analysis:分析测试结果,辅助测试人员进行测试分析;

1、安装LoadRunner

这里使用的是Loadrunner2022R2。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里去掉默认的勾选项
在这里插入图片描述
在这里插入图片描述
安装完成后会生成一下三个快捷方式。
在这里插入图片描述

2、录制/修改脚本

打开Virtual User Generator,选择Record
在这里插入图片描述
在这里插入图片描述
录制完脚本后,可以修改脚本

Action()
{

	web_add_header("Accept-Language", 
		"zh-CN,zh;q=0.9");

	lr_think_time(4);
	
	lr_rendezvous("25");

	lr_start_transaction("test");
	
	web_reg_find("Search=All",
		"Text=\"code\":200",
		LAST);
	
	web_set_sockets_option("SSL_VERSION", "AUTO");

	web_custom_request("json", 
		"URL=http://192.168.31.17/api/app/base", 
		"Method=GET", 
		"Resource=0", 
		"RecContentType=application/json", 
		"Referer=", 
		"Snapshot=t7.inf", 
		"Mode=HTML", 
		"EncType=application/json", 
		"Body={}", 
		LAST);

	lr_end_transaction("test", LR_AUTO);

	return 0;
}

如果返回的内容是JSON格式,需要获取其中的值,也可以参考如下示例,如果请求的Body参数中有中文,需要先对中文进行编码,否则可能出现异常

Action()
{
  char tmp[100];
  char sysManger[100];
	int nBusinessCode;
	int nHttpRetCode;
	lr_convert_string_encoding("测试账号", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "Account");
  strcpy(tmp,lr_eval_string("{Account}"));
  lr_save_string(tmp,"Account");
	lr_convert_string_encoding("系统管理员", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "SysManger");
  strcpy(sysManger,lr_eval_string("{SysManger}"));
  lr_save_string(sysManger,"SysManger");
    
	lr_rendezvous("test");

	lr_start_transaction("1_transaction_login");

	web_add_auto_header("Accept-Language", "zh-CN,zh;q=0.9");

	web_reg_save_param_json(
		"ParamName=token",
		"QueryString=$.data.token",
		SEARCH_FILTERS,
		"Scope=Body",
		LAST);
    
    web_custom_request("login", 
		"URL=http://192.168.31.17/api/login", 
		"Method=POST", 
		"Resource=0", 
		"RecContentType=application/json", 
		"Referer=http://192.168.31.17/", 
		"Snapshot=t45.inf", 
		"Mode=HTML", 
		"EncType=application/json;charset=UTF-8", 
		"Body={\"userName\":\"{Account}\",\"pwd\":\"vSDIF1Ewx7PcL4NZkcgdSA==\",\"authCode\":\"***\",\"uuid\":\"191fa3b0b5f048d2b27d904343371418\",\"action\":0}", 
		LAST);

	web_add_auto_header("Authorization", "{token}");
    
	lr_end_transaction("1_transaction_login",LR_AUTO);
	
	lr_start_transaction("2_transaction_page");

	web_custom_request("page", 
		"URL=http://192.168.31.17/api/test", 
		"Method=POST", 
		"Resource=0", 
		"RecContentType=application/json", 
		"Referer=http://192.168.31.17", 
		"Snapshot=t51.inf", 
		"Mode=HTML", 
		"EncType=application/json;charset=UTF-8", 
		"Body={\"type\":0}", 
		LAST);
    
	lr_end_transaction("2_transaction_page",LR_AUTO);
	
	return 0;
}

3、执行测试

从Virtual User Generator中直接打开,先打开项目,调试可正常运行后
在这里插入图片描述
按照下图点击相应的菜单
在这里插入图片描述
调整模拟用户数,然后点击OK即可。
在这里插入图片描述
这里配置禁用日志
在这里插入图片描述
在这里插入图片描述
配置忽略思考时间
在这里插入图片描述
设置完成后,记得点右下角的SAVE按钮
在这里插入图片描述
配置如果没有生效,记得点一下这里的Refresh按钮
在这里插入图片描述
设置人员,双击Start Vusers
在这里插入图片描述
设置持续时间,在Start Vusers下一行,也是双击
在这里插入图片描述
设置退出配置
在这里插入图片描述
执行测试
在这里插入图片描述输出图表
在这里插入图片描述

在这里插入图片描述

4、常见问题

(1)版权问题:个人未授权版最大只能50个用户并发测试,并且有使用时间限制,超过时间后,执行压力测试时图表会显示空白,因此为解决这个问题,采用新装Windows虚拟机+新安装LoadRunner的方式解决

(2)录制脚本乱码问题,打开Virtual User Generator,打开一个项目,选择Record菜单,点击Recording Options,然后按照下图选择相应的配置
在这里插入图片描述
(3)如果中文需要进行UTF8转码,可参考如下代码

  char tmp[100];
	lr_convert_string_encoding("测试账号", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "Account");
  strcpy(tmp,lr_eval_string("{Account}"));
  lr_save_string(tmp,"Account");

使用的时候,直接项{Account}作为字符串即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

angushine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值