zoukankan      html  css  js  c++  java
  • LoadRunner技巧之 HTML与URL两种录制模式分析

    转载:http://www.51testing.com/html/09/n-838009.html

    Loadrunner的Virtual User Generator 提供人脚本的录制功能,对于初学者来说,这大大的降低了编写脚本的门槛,loadrunner提供两种录制脚本的方式:Html_based script和Url-based script ,初学者疑惑这两种方式有什么不同? 在这里我们来做个简单分析。

      下面我们来分别通过两种方式来录制百度首页,对比一下他们之间有什么不同。

      HTML方式的脚本:

    Action()
    {
    
        web_url("www.baidu.com",
            "URL=http://www.baidu.com/",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=",
            "Snapshot=t3.inf",
            "Mode=HTML",
            EXTRARES,
            "Url=http://s1.bdstatic.com/r/www/img/i-1.0.0.png", ENDITEM,
            "Url=http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif", ENDITEM,
            "Url=/favicon.ico", "Referer=", ENDITEM,
            "Url=http://suggestion.baidu.com/su?wd=&cb=window.bdsug.sugPreRequest&sid=1440_2031_1945_1788&t=1362056239875", ENDITEM,
            "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056247256", ENDITEM,
            "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88%20&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056247969", ENDITEM,
            "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88%20%E5%8D%9A%E5%AE%A2%E5%9B%AD&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056251016", ENDITEM,
            LAST);
    
        return 0;
    }
    

     URL方式的脚本:

    Action()
    {
    
        web_url(www.baidu.com,
            "URL=http://www.baidu.com/",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=",
            "Snapshot=t67.inf",
            "Mode=HTTP",
            LAST);
    
        web_concurrent_start(NULL);
    
        web_url("shouye_b5486898c692066bd2cbaeda86d74448.gif",
            "URL=http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif",
            "Resource=1",
            "RecContentType=image/gif",
            "Referer=http://www.baidu.com/",
            "Snapshot=t68.inf",
            LAST);
    
        web_url("gs.gif",
            "URL=http://www.baidu.com/cache/global/img/gs.gif",
            "Resource=1",
            "RecContentType=image/gif",
            "Referer=http://www.baidu.com/",
            "Snapshot=t69.inf",
            LAST);
    
        web_url("tangram-1.3.4c1.0.js",
            "URL=http://s1.bdstatic.com/r/www/cache/global/js/tangram-1.3.4c1.0.js",
            "Resource=1",
            "RecContentType=application/javascript",
            "Referer=http://www.baidu.com/",
            "Snapshot=t71.inf",
            LAST);
    
        web_url("home-2.5.js",
            "URL=http://s1.bdstatic.com/r/www/cache/global/js/home-2.5.js",
            "Resource=1",
            "RecContentType=application/javascript",
            "Referer=http://www.baidu.com/",
            "Snapshot=t72.inf",
            LAST);
    
        web_url("u-1.3.4.js",
            "URL=http://s1.bdstatic.com/r/www/cache/user/js/u-1.3.4.js",
            "Resource=1",
            "RecContentType=application/javascript",
            "Referer=http://www.baidu.com/",
            "Snapshot=t73.inf",
            LAST);
    
        web_concurrent_end(NULL);
    
        web_url("i-1.0.0.png",
            "URL=http://s1.bdstatic.com/r/www/img/i-1.0.0.png",
            "Resource=1",
            "RecContentType=image/png",
            "Referer=http://www.baidu.com/",
            "Snapshot=t70.inf",
            LAST);
    
        web_concurrent_start(NULL);
    
        web_url("su",
            "URL=http://suggestion.baidu.com/su?wd=&cb=window.bdsug.sugPreRequest&sid=1431_2031_1944_1788&t=1362056977341",
            "Resource=1",
            "RecContentType=baiduapp/json",
            "Referer=http://www.baidu.com/",
            "Snapshot=t74.inf",
            LAST);
    
        web_url("favicon.ico",
            "URL=http://www.baidu.com/favicon.ico",
            "Resource=1",
            "RecContentType=image/x-icon",
            "Referer=",
            "Snapshot=t75.inf",
            LAST);
    
        web_concurrent_end(NULL);
    
        return 0;
    }
    

     Html_based script是loadrunner的缺省模式,即默认模式,也就是通常说的高层次模式,一般优先选择这种模式这种模式录制的脚本相对简短,便于阅读。它把类属一个页面的请求放在一个web_url中。

      Url-based script即通常所说的低层次录制模式,这种模式录制的脚本相对长,不利于阅读,但脚本更直观,它把客户端向服务器端发送的每一个请求都放在一个单独的 web_url中,即一个请求对应一个web_url,页面和图片分别生成对应的web_url,相对Html_based script模式把类属一个页面的请求放在一个web_url中的方式,Url-based script模式的脚本更直观。

      如何从脚本辨别使用哪种模式录制?

      我们可以从脚本web_url中“mode”的值区分,Html_based script模式下mode的值为“html”,Url-based script模式下mode的值为“http”。还有Html_based script模式记录为web_submit_form,而Url-based script模式记录为web_submit_data。

      两种录制方式优点对比:

      (一)HTML 录制

      优点:减少了捕获动态值的需要。

      (1)资源从内存中取出且在回放时下载。因此,脚本比其他的录制方式更小且更容易阅读。

      (2)由于只有较少的硬编码脚本,因此只有较少的动态数值需要关联。

      (3)可以插入图片检查之类的语句以检查结果是否正确。

      (4)因为HTML模式回放时需要积极地解析返回的信息,因此它可能会比其他录制模式更加占用资源。然而,HTML模式record/replay有相当大的改善,使得差异最小化且微不足道。

      (5)HMTL录制级别会为每一个HTML用户动作产生一个单独的步骤。而且HTML方式产生的脚本非常简洁和直述,易于阅读。

      (二)URL 录制

      优点:脚本具有灵活性和可量测性。

      (1)脚本回放过程中,不再搜索内存和Cache。

      (2)脚本更具可扩展性。支持页面上的Java Applets和ActiveX对象。

      (3)URL录制级别把对服务器每个对象的请求,都录制成一个单独的请求。对业务过程有更好的控制。

      如何选择两种模式?

      1、基于浏览器的应用程序推荐使用HTML-Based Script。

      2、不是基于浏览器的应用程序推荐使用URL-Based Script。

      3、如果基于浏览器的应用程序中包含了Java Script,applet等并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Based Script方式录制。

      4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-Based Script方式录制。

      5、录制过程中不要使用浏览器的“后退”功能,LoadRunner对其支持不太好。

      Tips:脚本录制过程中,可以根据需要在HTML级别和URL级别之间灵活地切换,以获得最佳的效果。

  • 相关阅读:
    Springboot 之 自定义配置文件及读取配置文件
    SQLSERVER系统视图 sql server系统表详细说明
    MySQL Workbench建表时 PK NN UQ BIN UN ZF AI 的含义
    使用Ecplise git commit时出现"There are no stages files"
    maven添加sqlserver的jdbc驱动包
    java将XML文档转换成json格式数据
    java将XML文档转换成json格式数据
    cannot be resolved. It is indirectly referenced from required .class files
    org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2012-12-12 12:01:01': not a valid representation (error: Can not parse date "2012-12-
    @Autowired注解和静态方法 NoClassDefFoundError could not initialize class 静态类
  • 原文地址:https://www.cnblogs.com/QAZLIU/p/5511211.html
Copyright © 2011-2022 走看看