zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录
    【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录
    【视频开发】opencv不能读取MP4格式文件
    CentOS 7下升级Python版本到3.x系列
    PyCharm常用快捷键
    ASCII、Unicode和UTF-8编码的区别
    配置Windows Server 2008/2012/2016允许2个用户同时远程桌面
    一道简单的python面试题-购物车
    Linux 下查看局域网内所有主机IP和MAC
    CentOS 7 配置HTTPS加密访问SVN
  • 原文地址:https://www.cnblogs.com/laoshuai/p/12397348.html
Copyright © 2011-2022 走看看