• LoadRunner基于HTML-based script和URL-based script方式录制的区别和各自的使用场景


    一、区别:

      为了更加直观的区别这两种录制方式,我们可以分别使用这两种方式录制同一场景(打开百度首页)然后进行对比,录制的代码如下:

    • HTML-based script方式打开百度首页:
    复制代码
    Action()
    {
        web_url("www.baidu.com", 
            "URL=http://www.baidu.com/", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t2.inf", 
            "Mode=HTML", 
            EXTRARES, 
            "Url=https://www.baidu.com/img/270x129gif_2_34efd039aeb80b72ae0708a039d15503.gif", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/img/icons_2df80e9d.png", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://www.baidu.com/img/baidu_jgylogo3.gif", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_instant_search1_6322b0cc.js", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/home/js/nu_instant_search_9b23bc7b.js", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/img/quickdelete_9c14b01a.png", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/sug/js/bdsug_input_event_89ba7d09.js", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://passport.baidu.com/passApi/js/uni_login_wrapper.js?cdnversion=1430055815464&_=1430055815291", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/baiduia/baiduia_b45d552b.js", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/plugins/every_cookie_09fe94e0.js", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&json=1&p=3&sid=13457_13387_1449_13074_12824_13381_12867_13323_12692_13410_10562_12722_13439_13287_13602_13161_13257_11800_13085_8498&req=2&cb=jQuery1102008927719119172578_1430055815292&_=1430055815293", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/baiduia/JSocket_9a52fc3e.swf?0.05", "Referer=https://www.baidu.com/", ENDITEM, 
            "Url=https://www.baidu.com/favicon.ico", "Referer=", ENDITEM, 
            "Url=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/plugins/env_5202315f.swf", "Referer=https://www.baidu.com/", ENDITEM, 
            LAST);
    
    
        return 0;
    }
    复制代码
    • URL-based script方式打开百度首页:
    复制代码
    Action()
    {
    
        web_url("vus_main.js", 
            "URL=http://conf.xmp.kankan.com/vus/vipjs/vus_main.js", 
            "Resource=1", 
            "RecContentType=application/x-javascript", 
            "Referer=", 
            "Snapshot=t1.inf", 
            LAST);
        
        web_url("www.baidu.com", 
            "URL=http://www.baidu.com/", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t3.inf", 
            "Mode=HTTP", 
            LAST);
    
        web_url("jquery-1.10.2.min_f2fb5194.js", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/jquery/jquery-1.10.2.min_f2fb5194.js", 
            "Resource=1", 
            "RecContentType=application/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t4.inf", 
            LAST);
    
        web_concurrent_start(NULL);
    
        web_url("270x129gif_2_34efd039aeb80b72ae0708a039d15503.gif", 
            "URL=https://www.baidu.com/img/270x129gif_2_34efd039aeb80b72ae0708a039d15503.gif", 
            "Resource=1", 
            "RecContentType=image/gif", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t5.inf", 
            LAST);
    
        web_url("baidu_jgylogo3.gif", 
            "URL=https://www.baidu.com/img/baidu_jgylogo3.gif", 
            "Resource=1", 
            "RecContentType=image/gif", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t6.inf", 
            LAST);
    
        web_url("icons_2df80e9d.png", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/img/icons_2df80e9d.png", 
            "Resource=1", 
            "RecContentType=image/png", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t7.inf", 
            LAST);
    
        web_url("all_instant_search1_6322b0cc.js", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_instant_search1_6322b0cc.js", 
            "Resource=1", 
            "RecContentType=application/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t8.inf", 
            LAST);
    
        web_url("uni_login_wrapper.js", 
            "URL=https://passport.baidu.com/passApi/js/uni_login_wrapper.js?cdnversion=1430055705421&_=1430055705210", 
            "Resource=1", 
            "RecContentType=text/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t9.inf", 
            LAST);
    
        web_url("nu_instant_search_9b23bc7b.js", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/home/js/nu_instant_search_9b23bc7b.js", 
            "Resource=1", 
            "RecContentType=application/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t10.inf", 
            LAST);
    
        web_url("bdsug_input_event_89ba7d09.js", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/sug/js/bdsug_input_event_89ba7d09.js", 
            "Resource=1", 
            "RecContentType=application/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t11.inf", 
            LAST);
    
        web_url("quickdelete_9c14b01a.png", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/img/quickdelete_9c14b01a.png", 
            "Resource=1", 
            "RecContentType=image/png", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t12.inf", 
            LAST);
    
        web_concurrent_end(NULL);
    
        web_custom_request("q.cgi", 
            "URL=http://masterconn.qq.com/q.cgi", 
            "Method=POST", 
            "Resource=1", 
            "Referer=", 
            "Snapshot=t13.inf", 
            "EncType=", 
            "BodyBinary=\x00\x02\x00\xA6\x00\x00\x00\x02\x00\x00\x01
    \x00\x00\x07\xDA\x00\x00\x00\x00箲\x0E哶C[褏4苶j虗X\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00	\x10BR\xCD\x06\x11(o%\x80\xC4\xFF\xF3'~鳩諣粷,U秡ㄚ���n.澅@得c\xB4\x0F\x18$\xD1$
    \x8D+<4堲憭彫z>M邗\x04
    yu崙'猩榆*¥貆眚m*程\x185鱴臀\xFC=兤\x01\xB9=\xC19>\x13寇嫖s貖葠\x8C\x0E=]慯1\x15\x8A"
            "(�筐敍\x80u\x12\x14�纁F迖斕鷠\xED\x1E边祗躁$魄\x19ol*坡糎}, \x10\x1Cg\x8A\x16树�c诩3\x0E脁(	薍o=魇eT\x97\x08\x13緀岧&\x1B\xA5", 
            LAST);
    
        web_concurrent_start(NULL);
    
        web_url("su", 
            "URL=https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&json=1&p=3&sid=13457_13387_1449_13074_12824_13381_12867_13323_12692_13410_10562_12722_13439_13287_13602_13161_13257_11800_13085_8498&req=2&cb=jQuery110208659240831750304_1430055705211&_=1430055705212", 
            "Resource=1", 
            "RecContentType=text/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t14.inf", 
            LAST);
    
        web_url("baiduia_b45d552b.js", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/baiduia/baiduia_b45d552b.js", 
            "Resource=1", 
            "RecContentType=application/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t15.inf", 
            LAST);
    
        web_url("every_cookie_09fe94e0.js", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/plugins/every_cookie_09fe94e0.js", 
            "Resource=1", 
            "RecContentType=application/javascript", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t16.inf", 
            LAST);
    
        web_url("JSocket_9a52fc3e.swf", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/baiduia/JSocket_9a52fc3e.swf?0.05", 
            "Resource=1", 
            "RecContentType=application/x-shockwave-flash", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t17.inf", 
            LAST);
    
        web_url("env_5202315f.swf", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/plugins/env_5202315f.swf", 
            "Resource=1", 
            "RecContentType=application/x-shockwave-flash", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t18.inf", 
            LAST);
    
        web_url("favicon.ico", 
            "URL=https://www.baidu.com/favicon.ico", 
            "Resource=1", 
            "RecContentType=image/x-icon", 
            "Referer=", 
            "Snapshot=t19.inf", 
            LAST);
    
        web_url("JSocket_9a52fc3e.swf_2", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/baiduia/JSocket_9a52fc3e.swf?0.05", 
            "Resource=1", 
            "RecContentType=application/x-shockwave-flash", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t20.inf", 
            LAST);
    
        web_url("env_5202315f.swf_2", 
            "URL=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/plugins/env_5202315f.swf", 
            "Resource=1", 
            "RecContentType=application/x-shockwave-flash", 
            "Referer=https://www.baidu.com/", 
            "Snapshot=t21.inf", 
            LAST);
    
        web_concurrent_end(NULL);
    
        return 0;
    }
    复制代码

     从上面可以看出:

    • HTML-based script:这种方式录制的代码只生成了一个函数,所有请求全放在这个函数里面,即:一个操作(可能包含多个请求)会生成一个函数,这种方式看起来比较简洁
    • URL-based script:这种方式会生成很多函数,它将每个请求都单独成一个函数,这种方式更接近请求-响应的本质

    二、HTML-based script模式下-->高级选项Sctipt type两种方式的区别:

    •   A script describing user actions(e.g. web_link,web_submit_form)
    •   A script containing explicit URLs only(e.g. web_url, web_submit_data)

    同上面一样,我们还是通过录制同一场景的方法直接来对比这两种方式的区别(录制loadrunner自代的示例程序) 

    • A script describing user actions(e.g. web_link,web_submit_form)
    复制代码
    Action()
    {
      //如果注释掉这个函数,执行时会失败 web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t9.inf", "Mode=HTML", EXTRARES, "Url=../favicon.ico", "Referer=", ENDITEM, LAST);
      //提交表单,依赖上下文,如果没有上面的函数,会执行失败 web_submit_form("login.pl", "Snapshot=t10.inf", ITEMDATA, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=login.x", "Value=59", ENDITEM, "Name=login.y", "Value=9", ENDITEM, LAST); return 0; }
    复制代码
    • A script containing explicit URLs only(e.g. web_url, web_submit_data
    复制代码
    Action()
    {
      //注释掉这个函数,这个场景执行不会失败,因为web_submit_data的函数中包含了具体的URL(如下标红的action)
        web_url("WebTours", 
            "URL=http://127.0.0.1:1080/WebTours/", 
            "TargetFrame=", 
            "Resource=0", 
            "RecContentType=text/html", 
            "Referer=", 
            "Snapshot=t1.inf", 
            "Mode=HTML", 
            EXTRARES, 
            "Url=http://conf.xmp.kankan.com/vus/vipjs/vus_main.js", "Referer=", ENDITEM, 
            LAST);
    
      //提交数据到具体的URL,不依赖上下文
        web_submit_data("login.pl", 
            "Action=http://127.0.0.1:1080/WebTours/login.pl", 
            "Method=POST", 
            "TargetFrame=", 
            "RecContentType=text/html", 
            "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
            "Snapshot=t3.inf", 
            "Mode=HTML", 
            ITEMDATA, 
            "Name=userSession", "Value=115841.053786958fQfifHtpcAtVzzzHDfHfVpttfccf", ENDITEM, 
            "Name=username", "Value=jojo", ENDITEM, 
            "Name=password", "Value=bean", ENDITEM, 
            "Name=JSFormSubmit", "Value=off", ENDITEM, 
            "Name=login.x", "Value=47", ENDITEM, 
            "Name=login.y", "Value=9", ENDITEM, 
            LAST);return 0;
    }
    复制代码

    总结:

    • web_submit_form: 上下文相关的,依赖上下文才能提交,比较符合人们的操作习惯。
    • web_submit_data:  上下文不相关,每个函数都指定了具体的url地址,可以直接提交成功,如果只关注协议,不需要关注页面,可使用这种方式录制。

    三、使用场景: 

    • 基于浏览器的应用程序推荐使用HTML-based Script
    • 不是基于浏览器的应用程序推荐使用URL-based Script。
    • 如果基于浏览器的应用程序中包含了JavaScript 并且该脚本向服务器产生了请求,比如DataGrid 的分页按钮等,flash等,也要使用URL-based 方式录制
    • 基于浏览器的应用程序中使用了HTTPS 安全协议,使用URL-based 方式录制
  • 相关阅读:
    【Stanford Machine Learning Open Course】1. 机器学习介绍
    【Stanford Machine Learning Open Course】3. 线性回归问题两种解法:正规方程组解法 & 梯度下降法
    【linux】crontab周期性/定时启动任务
    【python】 IOError: [Errno 32] Broken pipe
    关注性能:循环的耗时及编译优化的影响
    【Linux】shell: 获取时间间隔到毫秒、微秒级别
    【Stanford Machine Learning Open Course】4. 特征优化
    【Stanford Machine Learning Open Course】2. 线性回归问题介绍
    拖延处理技巧汇编摘自《拖延心理学》
    JavaFx版本植物大战僵尸
  • 原文地址:https://www.cnblogs.com/xiaojinniu425/p/6275257.html
Copyright © 2020-2023  润新知