1、设计手工场景,理解集合点的策略

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

2、添加load generator

 

 

一、controller基础知识

  1.controller的原理

   通过场景设计来模拟用户的真实操作并调用vugen中的脚本,然后通过设置压力机产生压力,在场景运行中实时监控用户的执行情况,tps、响应时间、吞吐量、服务器资源使用情况

二、contrller

  1.功能截图介绍

性能测试学习 第九课--LR12中controller基础知识 随笔 第1张

性能测试学习 第九课--LR12中controller基础知识 随笔 第2张

性能测试学习 第九课--LR12中controller基础知识 随笔 第3张

  2.为什么java vuser协议以进程跑?

    java vuser协议以线程跑,发现压力根本上不去,还需要实际操作进行研究。

  3.创建集合点(实际性能测试的时候,使用集合点的情况不多,因为还没到这种轮番请求的测试场景之前,服务器一般已经扛不住一般的性能测试场景了)

    1)在事物前一行右键,【insert】→【rendezvous】

性能测试学习 第九课--LR12中controller基础知识 随笔 第4张

  2)如图,创建成功

性能测试学习 第九课--LR12中controller基础知识 随笔 第5张

  2)回到contoller软件,重新选择想要压测的脚本,让集合点生效,进行集合点设置

  性能测试学习 第九课--LR12中controller基础知识 随笔 第6张

性能测试学习 第九课--LR12中controller基础知识 随笔 第7张

  3)集合点策略的三种方式

 性能测试学习 第九课--LR12中controller基础知识 随笔 第8张

   第一种:当X%个用户到达集合点时释放;

   第二种:当X%个当前的并发用户到集合点时释放,类似于分批对服务器产生压力,看服务器的及时处理能力;

   第三种:当X个用户到达集合点时释放

  4)作用:1)模拟瞬间的并发,2)主要用于这种秒杀场景

登录脚本代码:

性能测试学习 第九课--LR12中controller基础知识 随笔 第9张
Action()
{
    lr_save_string("120.78.128.25:8765","IP");
//关联登录成功
    web_reg_save_param_ex(
        "ParamName=success",
        "LB=<p class=\"success\">",
        "RB=</p>",
        //"DFEs=test",
        //"NotFound=warning",
        "Ordinal=1",
        //"SaveOffset=2",
        //"SaveLen=3",
        SEARCH_FILTERS,
        "Scope=ALL",
        //"RelFrameID=1",
        //"RequestUrl=testURL",
        //"ContentType=text/html",
        LAST );

//登录成功
    lr_rendezvous("登录");//创建集合点
    
    lr_start_transaction("登录成功");

    web_submit_data("web_submit_data",
     "Action=http://{IP}/Frontend/Index/login",
     "Method=POST",
     "TargetFrame=",
     "RecContentType=application/json, text/javascript, */*; q=0.01",
     "EncType=application/x-www-form-urlencoded; charset=UTF-8",
     "Referer=http://{IP}/Index/login.html",
     "Snapshot=t22.inf",
     "Mode=HTML",
     ITEMDATA,
     "Name=phone", "Value=13825161923", ENDITEM,
     "Name=password", "Value=lemon123", ENDITEM,
     "Name=vcode", "Value=", ENDITEM,
     "Name=remember_me", "Value=1", ENDITEM,
     "Name=notify_url", "Value=", ENDITEM,
     LAST );

//判断是否登录成功
       //strcmp(str1,str2):比较两str的大小      
       lr_convert_string_encoding(lr_eval_string("{success}"),"utf-8",NULL,"Success");  //将乱码的“登录成功”转码为汉字格式
       if(strcmp(lr_eval_string("{Success}"),"登录成功")==0)
    {
       lr_end_transaction("登录成功",LR_PASS);
       lr_output_message("本次登录状态是:%s",lr_eval_string("{Success}"));
    }
   else
    {
       lr_end_transaction("登录成功",LR_FAIL);
    }
    
    return 0;
}
性能测试学习 第九课--LR12中controller基础知识 随笔 第10张

  4.添加压力机,点击下拉框,添加后,在name框中输入压力机的ip

性能测试学习 第九课--LR12中controller基础知识 随笔 第11张

性能测试学习 第九课--LR12中controller基础知识 随笔 第12张

   5.如何测试压力机是否连接成功?

性能测试学习 第九课--LR12中controller基础知识 随笔 第13张

  6.如何确认服务器的最大并发数?

    Edit Action设置,通过设置间隔时间跟每次间隔时间的增加数量,不断提高并发数,以此来观察服务器资源使用情况,当资源使用率    达到最高点时,基本得出服务器的最大并发范围,不至于随意压测将服务崩掉。

性能测试学习 第九课--LR12中controller基础知识 随笔 第14张

 

性能测试学习 第九课--LR12中controller基础知识 随笔 第15张

   7.如何造场景数据?比如:50个用户迭代100,形成5000条数据

    1)先设置迭代次数,比如100

性能测试学习 第九课--LR12中controller基础知识 随笔 第16张

    2)然后设置并发数50,

    3)最后得到50*100条数据

性能测试学习 第九课--LR12中controller基础知识 随笔 第17张

性能测试学习 第九课--LR12中controller基础知识 随笔 第18张

 

 

三、遇到问题

  1、在刚使用lr时,勾选了红色框百分比,在后续使用中发现如下问题

性能测试学习 第九课--LR12中controller基础知识 随笔 第19张

   勾选之后的界面,多了百分比,没有localhost,不能对集合点进行设置,因为是置灰的

性能测试学习 第九课--LR12中controller基础知识 随笔 第20张

   

  性能测试学习 第九课--LR12中controller基础知识 随笔 第21张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄