【loadrunner】性能测试之并发测试一般步骤

1、录制脚本,添加事务,对关注的请求添加事务即可;添加检查点

2、回放脚本,如果回放不成功,需要做关联,我验证的脚本,并没有session的关联,但是由于添加的检查点,服务器返回的body是乱码,所以一直回放不成功,这种情况,要么解决乱码的问题,要么用lr转码函数,我使用的后者。用这个函数的时候,还是用到了关联函数,将我要检查的文字给摘取出来。
web_reg_save_param_ex(
“ParamName=tableData”,
“LB=ake002”:"",
“RB=”,“aaz319”:",
SEARCH_FILTERS,
“Scope=BODY”,
LAST);
注意,该关联函数是注册函数,需要放在对应请求的前面
lr_convert_string_encoding(lr_eval_string("{tableData}"),LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,“RTString” );
i = strstr(lr_eval_string("{RTString}"),lr_eval_string(“检查点的文本内容”));
if(i != NULL){
lr_end_transaction(“login”, LR_PASS);
}else{
lr_end_transaction(“login”, LR_FAIL);
lr_error_message("%s",lr_eval_string("{RTString}"));
}

对于这块不熟悉的,可以参考以下博客
https://blog.csdn.net/out_of_memory_/article/details/87618075
如果测试的是webservce接口性能,不需要关联函数,只要后面的代码即可,其中{tableDate}这个参数值就需要

 在这里我顺便说一句,web_service_call中

 )
3、回放成功后,添加集合点,参数化,假设我们要测试200用户并发,则需要准备200条数据
参数取值策略如下

 取值如下:
在这里插入图片描述

4、将脚本放入控制台
这里我要说明一下license(只适用于lr11),
golba-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI
web-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
golba-1000:AEACFSJI-YASEKJJKEAHJD-BCLBR
65000:AEACFSJI-YJKJKJJKEJIJD-BCLBR

有如上license,其实只要添加65000那个超级license即可,既可以用来测试webservice,又可以测试web应用。

5、设置集合点策略

 


6、启动用户设置200

7、运行策略是,duration=run until completion


8、run-time-setting

并发的时候,严格测试,需要清理缓存,清理了缓存之后,很多资源就会重新下载,有的资源下载可能是框架里面的,比如说样式什么东西,可能开发都不知道的。一般来说,静态资源是来自于静态资文件服务器,如果静态占用的时间长,就需要想办法压缩。

测试的时候一定要跟项目经理确认一下,是否每次迭代是否清理缓存,是否下载http资源,这两项很影响事务的响应时间。
lr测试事务响应时间:
在这里插入图片描述
9、监控windows资源(应用服务器)
在这里插入图片描述
在这里插入图片描述

监控的指标可以如下:
在这里插入图片描述

并发测试的时候,资源指标不要看平均,要看并发的时候,相关cpu等的情况是怎么样的,才能说明问题。

10、监控数据库服务器
监控这个是有工具的,比如说nmon,但是我测试的时候用的是windows本身的
在这里插入图片描述

windows资源监控,如果没有工具进行监控,可以使用windows本身的监控工具
https://jingyan.baidu.com/article/a3761b2bdfa24b1576f9aa8e.html

11、linux服务器的监控
以上是如何监控windows服务器资源,实际项目中,还有linux服务器的监控,那该怎么弄呢?
我们可以使用nmon
(1)将nmon放在linux服务器上
自己可以在root创建一个目录,mkdir,然后将以下文件(nmon_linux_x86_64)放进去
链接:https://pan.baidu.com/s/1TF3L8aqiQMo0lIYs8vr8Ag
提取码:er0b
(2)将这个文件改名
可以不做这一步,但是修改了之后,好操作一点,以下操作是将这个文件改名为nmon
mv nmon_linux_x86_64 nmon
(3)给nmon这个文件授权
chmod 777 nmon
(4)启动nmon
./nmon(注意前面有个点)
(5)使用nmon采集数据
./nmon -s3 -c20 -f -m ./report
(6)将nmon采集的数据形成的文件拷贝出来
从linux系统中将文件弄出来,可以参考以下链接,有点麻烦,大家自己看用什么顺手
https://jingyan.baidu.com/album/8065f87faf917d23312498c3.html?picindex=5
(7)使用ibm提供的analyser形成报表
工具获得从以下链接:
链接:https://pan.baidu.com/s/1kRx8LsIy-9S30rZ7zSlc9A
提取码:szqk
其中有个这么一个文件

在这里插入图片描述
在这里插入图片描述

这里要注意的是,analyser正常使用的话需要启动宏,但是wps不支持,需要安装以下软件,亲测有效,其他的不能使用宏的,大家可以自己上网去查询
链接:https://pan.baidu.com/s/190AWkT6ok0qLO66HdKopEA
提取码:gcmf
安装后,重新打开wps,然后点击启动宏就可以正常使用了。

弄这个我也是根据别人的博客来的。
https://blog.csdn.net/qinqigang/article/details/78070319

如果只是大概看看linux服务器的cpu和mem的变化,其实可以使用linux的top命令来看,很简单的。
具体看哪一个值见以下文档:
https://www.cnblogs.com/xianhan/p/9431912.html

12、时刻关注数据库的变化
关注事务挂起(是否有锁表的情况导致响应时间边长)
(1)查看锁表的命令
show open tables where in_use>0;
(2)查看当前进程
show processlist;
(3)杀掉进程
kill process_id;

查看当前连接数:
我测试一个接口的性能,发现,大规模的报错,后来排查问题是因为数据库的设置原因,最大连接数只设置了100
show variables like ‘%max_connections%’;
show status like ‘Threads%’;

12、打开sql慢查询服务
打开之后,运行之后,自己就可以定位一些比较简单的问题
见链接:
https://www.cnblogs.com/gxj521test/p/10964795.html

https://www.cnblogs.com/qmfsun/p/4844472.html
设置后查看如果不生效,见如下链接:
https://blog.csdn.net/fangkang7/article/details/83181171

13、注意事项
(1)性能测试的时候,需要让数据库里面背景数据,不然测试不准确

(2)不同的项目,注意事项还有点不同,问一下开发即可。

(3)小编在测试性能的时候,遇到过这种情况,这也是以前没有怎么注意的。
一开始,小编没有意识的去用无线测试性能,发现网络时间占了大半,服务器处理时间很少。

后来小编就换成有线测试(一般局域网都会忽略掉网络时间的),发现网络时间改善了很多,但是响应时间并没有减少,因为服务器时间反而增大了。

项目经理在服务器上自己搭建了一个pinpoint监控平台,可以看到相关链接时间,发现有这样的问题,connection减少后,sql语句的查询时间增加,connection增加后,sql语句的查询时间减少(项目的服务器是tomcat,通过增减线程,可以改变connection的时间https://blog.csdn.net/u012661248/article/details/80748814)。

初步判定是这样一个原因,connection短了之后,并发这么多线程同时就要查询这个sql,系统插叙不过来导致。如果网络时间不好,sql查询就完全有时间一个一个处理。但是怎么去解决这样的问题,目前暂时不清楚。

小编就觉得,有时候测试的时候,可以尝试着有线、无线都测试一下,看情况有什么不同。

(4)
————————————————
版权声明:本文为CSDN博主「qq_42532915」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42532915/article/details/93600932

原文地址:https://www.cnblogs.com/laoshuai/p/12397348.html