51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 14100|回复: 27
打印 上一主题 下一主题

老布丁带你入门Loadrunner

[复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2017-7-6 12:28:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
分享一下入门级的LoadRunner使用,能坚持多久不知道。欢迎拍砖。
老布丁分享入门LoadRunner-Http-1
1、在正常情况下,录制登陆、新增等业务操作,我们录制的是什么呢?
录制的是Http发送给服务器的请求,HTTP请求包含请求头、主体等信息(当然有的时候,可能请求中没有主体),服务器收到请求后,给予一定的响应。

2、一般我们请求中,都是get或者post方法,当然还有其他的put、delete方法,那录制的哪些是对应的get和post方法呢?
get请求

web_url("get(自定义名称) ",
                        "url=http://Iport/****/****?参数1=8888&参数2=8888,"
                        LAST);

post请求
                       
                web_submit_data("post(自定义名称)",
                "Action=http://Iport/****/****",
                "Method=POST",
                "Referer=",
                "Snapshot=t3.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=参数1", "Value=值", ENDITEM,
                "Name=参数2", "Value=值", ENDITEM,        
                LAST);
               

3、如何设置事务?
   首先要了解Loadrunner的事务指的是什么?事务就是对请求进行分组,目的是对1个或多个请求汇总其响应时间等指标。
   为什么需要对多个请求汇总成事务呢?因为我们往往想考查一个功能(例如查询)的性能情况,但其实查询这个功能需要发送多个HTTP请求,因此需要把多个请求进行汇总。
   当然,如果要是录制的方式,在录制的时候可以进行插入事务的。
   lr_start_transaction("OST");
   web_url();
   web_url();
   lr_end_transaction("OST");     

4、如何判断脚本是否执行成功呢?
   如果不对脚本进行更改,录制的时候未设置检查点,那Loadrunner发送请求后,接收到服务器的响应就认为是成功的。
   虽然有时候,响应不是我们想要的,但Loadrunner还认为是成功的,因此需要人工判断事务是否成功。那如何判断事务是否成功呢?
   首先,我们需要明确,事务是否成功是基于响应的,因此都是对Http响应的判断。现在提供两种判断事务是否成功的方法。注意,因为方法为reg,因此需要放到请求的前面。
    方法1:在相应中找到100,即判断为成功            
        web_reg_find("Text=100",
                LAST);
        方法2:先把服务器返回的需要判断的值保存起来,之后通过这个值对比,判断事务是否成功。
     web_reg_save_param("ResultTest",
                "LB=左边界",
                "RB=右边界",
                LAST);
               
               
                        if(strcmp(lr_eval_string("{ResultTest}"),"Succ")==0)
         {
                lr_end_transaction("OST",LR_PASS);
          }

          else
          {
                lr_end_transaction("OST",LR_FAIL);
          }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏12
回复

使用道具 举报

该用户从未签到

推荐
 楼主| 发表于 2017-7-26 12:47:16 | 只看该作者
有的时候,某些协议无法完成,那可以采取java_vuser协议的方式。

回复 支持 1 反对 0

使用道具 举报

  • TA的每日心情
    开心
    2019-4-17 15:52
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    25#
    发表于 2019-4-17 16:40:58 | 只看该作者
    多谢楼主分享经验!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24#
    发表于 2018-1-5 12:01:04 | 只看该作者
    谢谢 学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2017-8-1 16:40:27 | 只看该作者
    当有多个浏览器,想要指定的时候,需要在Run-time Settings中设置Browser Emulation的User-Agent值。具体如图所示

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2017-7-27 17:00:03 | 只看该作者
    如何多台机器一起进行性能测试。
    首先必须两个机器都需要安装LR,一台(机器1)做为控制机,机器2做为被控制机。
    在机器2中要按照如图1,开启agent,输入用户名和密码后,机器2即可以做为负载机使用。

    之后按照图2,添加机器2的ip地址做为负载机即可。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2017-7-26 12:50:19 | 只看该作者

    按照1,2的步骤,选择本机所在的路径及引用的jar包的位置。在action中
    1. import lrapi.lr;


    2. public class Actions
    3. {


    4.         public int init() throws Throwable {

    5. //           HttpClientFactory.getOnly().getHttpClient().setMaxTotalConnections(1000);
    6.             
    7.                 return 0;
    8.         }//end of init


    9.         public int action() throws Throwable {

    10.              //服务地址


    11.             try{

    12.                 lr.start_transaction("HTTP_WebService");
    13.                //执行相应的业务代码
    14.                
    15.                 lr.end_transaction("HTTP_WebService", lr.PASS);
    16.             } catch (Exception e) {
    17.                  e.printStackTrace();
    18.                  lr.end_transaction("HTTP_WebService", lr.FAIL);
    19.             } finally {
    20.                
    21.             }


    22.                 return 0;
    23.         }//end of action


    24.         public int end() throws Throwable {
    25.                 return 0;
    26.         }//end of end
    27. }

    复制代码

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2017-7-25 12:23:56 | 只看该作者
    脚本编写完了,服务器的监控也配置好了,怎么运行呢?
    在controller中,选择一个需要执行压力的脚本,如图1,如图2,增加虚拟用户的机器,现在选择是本机。为什么有这个呢?因为LR可以使用1台机器,控制其他的机器来生成负载的用户。以后会讲到这个方面的内容,今天主要是讲解如何执行压力。

    可以选择这个脚本的执行运行时间,如图3。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2017-7-24 11:38:39 | 只看该作者
    LR设置连接服务器,监控linux服务器资源。
    1. 1.        yum -y install rsh*
    2. 2.        下载并安装rstatd
    3. 3.        tar -xvf rpc.rstatd-4.0.1.tar.gz
    4. 4.        ./configure —配置
    5. 5.        make —编译
    6. 6.        make install —安装
    7. 7.        rpc.rstatd —启动rstatd进程
    8. 8.        修改的是/etc/xinetd.d/下的三个conf文件 rlogin ,rsh,rexec 这三个配置文件,打这三个文件里的disable = yes都改成 disable = no
    复制代码

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2017-7-21 12:49:41 | 只看该作者
    在录制或者编写脚本的时候,经常会有人问,是B/s或者C/s,是java还是c开发的,怎么录制呢。对于LR而已,和架构和语言都没有关系,只和协议有关。那么如何区分是什么协议呢?LR提供了一种识别协议的方法。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2017-7-20 12:23:15 | 只看该作者
    今天来讲讲LR中的点击率,记得我在刚刚开始做性能测试的时候,理解点击是不是就是我们录制的时候,按钮的每一次点击呢?当然是否定的。
    后来继续做着做着,发现点击数量的计算是每次发送的请求的数量,每秒钟的点击率可以理解为每秒钟发送请求的数量,在每次加载页面时都可以提交多个请求。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2017-7-19 13:19:16 | 只看该作者
    集合点。
    1.         lr_rendezvous("集合点");
    复制代码


    那么我们来看下controller中集合点的设置,就是在每个请求前,可以控制有多少用户来同时发起一个请求。可以按照并发的用户数来进行设置,也可以按照比例来进行设置。
    并且设置了超时的时间,超过超时的时间,即使没有达到要求的用户数或比例,也会继续发送请求的。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2017-7-18 12:39:24 | 只看该作者

    1、 首先了解一下WebService协议,使用XML消息调用远程方法,这样WebService可以通过HTTP协议的方法与远程机器交互,因此其可以通过HTTP请求编写测试脚本。当然LoadRunner本身也提供了WebService协议的脚本编写方式,通过访问WSDL的地址,可以识出相应的方法和参数,有兴趣的同学,可以尝试,后面提供了第2种方法。
        2、 编写的脚本如下:
        使用web_custom_request(),其中URL为WebService的发布地址,Body为消息内容,根据项目实际情况进行调整。

    1. web_custom_request("sendmt.do",
    2.                 "URL=访问的地址",
    3.                 "Method=POST",
    4.                 "Resource=0",
    5.                 "RecContentType=text/xml",
    6.                 "Referer=",
    7.                 "Snapshot=t1.inf",
    8.                 "Mode=HTML",
    9.                 "EncType=text/xml; charset=utf-8",
    10.                 "Body=",
    11.                 LAST);
    复制代码







        使用第1种方法编写webservice脚本的方法介绍完毕,下面介绍第2种方法,通过webservice协议,编写脚本。
        步骤1:选择Manage Services的import加入wsdl的地址。

        步骤2:通过Add Service Call识别出现在的方法及参数,Operation中选择要测试的方法,并且在Arguments填写参数的值,

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2017-7-17 13:00:11 | 只看该作者
           
    1、在每个Accion中,正常情况下都回有return 0;这个是做什么用的呢?

    我的理解是这个        return 0;是为了跳出其对应的Action,告诉LR,这个Action已经到末尾了,需要执行下一个了。


    2、对于我们定义的参数而言是全局的还是针对某一个Action有效呢

    答案是全局的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2017-7-13 12:36:14 | 只看该作者
    如果HTTP协议,应用程序对头做了特殊的处理怎么办,提供1种解决方法,页面其实也提供了添加的方式,但还是直接写比较方便:

    1.         web_add_header("name",        "value");//增加头信息

    2.     web_save_header(REQUEST, "RequestHeader");//请求的头进行保存

    3.     web_save_header(RESPONSE, "ResponseHeader");//响应的头进行保存
    复制代码


    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2017-7-12 12:33:49 | 只看该作者
    如果在参数化的时候,LR提供的参数不能满足,怎么办呢?

    1.      char sign[100];
    2.      之后对这个变量根据自己的需要进行处理的脚本。
    3.       //目的是把根据业务处理的变量,变成参数可以供参数化时调用。
    4.         lr_save_string(sign,"signnew");

    5.       

    6.                 web_submit_data("test",
    7.                 等等等脚本
    8.                 "Name=sign", "Value={signnew}",ENDITEM,
    9.                
    10.                 LAST);



    11.       
    12.    
    复制代码


    为什么一定要这样进行处理呢?因为Value=sign的时候,sign不是作为一个参数处理的,而是当成了一个字符串。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-12 21:37 , Processed in 0.082582 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表