利用JMeter的beanshell进行接口的加密处理

来源:互联网 发布:抄底逃顶指标公式源码 编辑:程序博客网 时间:2024/06/08 05:23
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">        <html xmlns="http://www.w3.org/1999/xhtml">    <head>              <link rel="canonical" href="http://blog.csdn.net/alvin_lam/article/details/70881587"/>       <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />    <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">            <title>利用JMeter的beanshell进行接口的加密处理 - Alvin_Lam的专栏        - CSDN博客</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="description" content="最近项目中在做http协议的接口测试,其中接口请求报文数据有个字段值需要用到加密后的签名,即出于网络传输过程中,对数据安全的考虑,要对请求的数据进行特定的处理(加密),再进行请求。     刚开始由于项目赶进度的需要,选择的做法是:让开发写个加密处理生成请求报文的代码,然后每次测试发送一次请求都用eclipse跑一遍该代码,测试数据的修改也是在代码中变更。这样跑一轮测试下来,测试同事都反映" />    <meta name="keywords" content="jmeter" />       <script src="http://static.blog.csdn.net/scripts/blog_static_head.min.js" type="text/javascript"></script>            <!--new top-->                      <!--new top-->          <!-- ad begin -->             <!-- ad end-->    <link rel="Stylesheet" type="text/css" href="http://static.blog.csdn.net/skin/default/css/style.css?v=1.1" />        <link id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate" href="/Alvin_Lam/rss/list" />    <link rel="shortcut icon" href="http://c.csdnimg.cn/public/favicon.ico" />    <link type="text/css" rel="stylesheet" href="http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/default.css" />     <link href="http://c.csdnimg.cn/blog/csdn_public_blog_detail.min.css" type="text/css" rel="stylesheet" />              <link rel="stylesheet" href="http://static.blog.csdn.net/css/csdn_blog_detail.min.css" />      <!-- 请置于所有广告位代码之前 -->             <script src="http://dup.baidustatic.com/js/ds.js"></script></head><body>             <div class="tracking-ad" data-view="true" data-mod="ad_popu_72"  data-mtp="62" data-order="40" data-con="ad_content_2072" >                     <script id="popuLayer_js_q" src="http://ads.csdn.net/js/popuLayer.js" defer="defer"  type="text/javascript"></script>                <div id="layerd" style="position: fixed;bottom:0px;right:0px;line-height:0px;z-index:1000">                    <div class="J_close layer_close" style="display:;background-color:#efefef;padding:0px;color:#333;font:12px/24px Helvetica,Tahoma,Arial,sans-serif;text-align:right;">关闭</div><!-- 广告占位容器 -->                    <div id="cpro_u2895327">                        <!-- 投放代码 -->                        <script type="text/javascript" src="http://mpb1.iteye.com/ojylrgbykmqybf.js"></script>                    </div></div>                <script>  document.getElementById("popuLayer_js_q").onload = function () {      var styObjd = styObj = { width: "300px", "height": parseInt(250) + 28 };      window.CSDN.Layer.PopuLayer("#layerd", { storageName: "layerd", styleObj: styObjd, total: 50, expoire: 1000 * 60 });  }</script>                         </div>    <!-- 广告位开始 -->            <!-- 广告位结束 -->             <!--new top-->    <script id="toolbar-tpl-scriptId" fixed="true" prod="blog" skin="black" src="http://c.csdnimg.cn/public/common/toolbar/js/html.js" type="text/javascript"></script>     <!--new top-->    <div id="container">        <div id="header">    <div class="header">        <div id="blog_title">            <h2>                <a href="http://blog.csdn.net/alvin_lam">Alvin_Lam的专栏</a></h2>            <h3></h3>            <div class="clear">            </div>        </div>        <div class="clear">        </div>                 </div></div><div id="navigator">    <div class="navigator_bg">    </div>    <div class="navigator">        <ul>                           <li id="btnContents"><a href="http://blog.csdn.net/alvin_lam?viewmode=contents"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_mulu'])">                    <img src="http://static.blog.csdn.net/images/ico_list.gif">目录视图</span></a></li>                <li id="btnView"><a href="http://blog.csdn.net/alvin_lam?viewmode=list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_zhaiyao'])">                    <img src="http://static.blog.csdn.net/images/ico_summary.gif">摘要视图</span></a></li>                <li id="btnRss"><a href="http://blog.csdn.net/alvin_lam/rss/list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_RSS'])">                    <img src="http://static.blog.csdn.net/images/ico_rss.gif">订阅</span></a></li>                                        </ul>    </div></div><script type="text/javascript">    var username = "Alvin_Lam";    var _blogger = username;    var blog_address = "http://blog.csdn.net/alvin_lam";    var static_host = "http://static.blog.csdn.net";    var currentUserName = "hello_global";  </script>        <div id="body">            <div id="main">                <div class="main">                        <div class="ad_class"><div class="notice tracking-ad" data-mod='popu_3' > <a href="http://blog.csdn.net/epubit17/article/details/77770966"><font color=red><strong>异步赠书:Kotlin领衔10本好书</strong></font></a>    <a href="http://edu.csdn.net/huiyiCourse/series_detail/63"><font color=red><strong>免费直播:AI时代,机器学习如何入门?</strong></font></a>    <a href="http://blog.csdn.net/turingbooks/article/details/77479427"><font color=blue><strong>程序员8月书讯</strong></font></a>    <a href="https://gitee.com/enterprises?from=csdn-sqbkxq"><font color=red><strong>项目管理+代码托管+文档协作,开发更流畅</strong></font></a></div>                        </div>                          <script   type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>  <script type="text/ecmascript">      window.quickReplyflag = true;      var isBole = false;       var fasrc="http://my.csdn.net/my/favorite/miniadd?t=%e5%88%a9%e7%94%a8JMeter%e7%9a%84beanshell%e8%bf%9b%e8%a1%8c%e6%8e%a5%e5%8f%a3%e7%9a%84%e5%8a%a0%e5%af%86%e5%a4%84%e7%90%86&u=http://blog.csdn.net/alvin_lam/article/details/70881587"    </script><div id="article_details" class="details">    <div class="article_title">            <span class="ico ico_type_Repost"></span>    <h1>        <span class="link_title"><a href="/alvin_lam/article/details/70881587">        利用JMeter的beanshell进行接口的加密处理                           </a>        </span>             </h1></div>           <div class="article_manage clearfix">        <div class="article_l">            <span class="link_categories">            标签:              <a href='http://www.csdn.net/tag/jmeter' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">jmeter</a>            </span>        </div>        <div class="article_r">            <span class="link_postdate">2017-04-28 00:58</span>            <span class="link_view" title="阅读次数">652人阅读</span>            <span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>            <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('%e5%88%a9%e7%94%a8JMeter%e7%9a%84beanshell%e8%bf%9b%e8%a1%8c%e6%8e%a5%e5%8f%a3%e7%9a%84%e5%8a%a0%e5%af%86%e5%a4%84%e7%90%86','70881587');return false;" title="收藏">收藏</a></span>             <span class="link_report"> <a href="#report" onclick="javascript:report(70881587,2);return false;" title="举报">举报</a></span>        </div>    </div>    <style type="text/css">                    .embody{                padding:10px 10px 10px;                margin:0 -20px;                border-bottom:solid 1px #ededed;                            }            .embody_b{                margin:0 ;                padding:10px 0;            }            .embody .embody_t,.embody .embody_c{                display: inline-block;                margin-right:10px;            }            .embody_t{                font-size: 12px;                color:#999;            }            .embody_c{                font-size: 12px;            }            .embody_c img,.embody_c em{                display: inline-block;                vertical-align: middle;                           }             .embody_c img{                               width:30px;                height:30px;            }            .embody_c em{                margin: 0 20px 0 10px;                color:#333;                font-style: normal;            }    </style>    <script  type="text/javascript">        $(function () {            try            {                var lib = eval("("+$("#lib").attr("value")+")");                var html = "";                if (lib.err == 0) {                    $.each(lib.data, function (i) {                        var obj = lib.data[i];                        //html += '<img src="' + obj.logo + '"/>' + obj.name + "  ";                        html += ' <a href="' + obj.url + '" target="_blank">';                        html += ' <img src="' + obj.logo + '">';                        html += ' <em><b>' + obj.name + '</b></em>';                        html += ' </a>';                    });                    if (html != "") {                        setTimeout(function () {                            $("#lib").html(html);                                                  $("#embody").show();                        }, 100);                    }                }                  } catch (err)            { }                    });    </script>      <div class="category clearfix">        <div class="category_l">           <img src="http://static.blog.csdn.net/images/category_icon.jpg">            <span>分类:</span>        </div>        <div class="category_r">                    <label>                        <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">性能<em></em></span>                                           </label>              </div>    </div>           <div id="article_content" class="article_content tracking-ad" data-mod=popu_307  data-dsm = "post" ><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><span style="padding:0px; margin:0px; font-family:宋体"> 最近项目中在做</span>http<span style="padding:0px; margin:0px; font-family:宋体">协议的接口测试,其中接口请求报文数据有个字段值需要用到加密后的签名,即出于网络传输过程中,对数据安全的考虑,要对请求的数据进行特定的处理(加密),再进行请求。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">     <span style="padding:0px; margin:0px; font-family:宋体">刚开始由于项目赶进度的需要,选择的做法是:让开发写个加密处理生成请求报文的代码,然后每次测试发送一次请求都用</span>eclipse<span style="padding:0px; margin:0px; font-family:宋体">跑一遍该代码,测试数据的修改也是在代码中变更。这样跑一轮测试下来,测试同事都反映太累了。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">     jmeter<span style="padding:0px; margin:0px; font-family:宋体">中的</span>BeanShell<span style="padding:0px; margin:0px; font-family:宋体">,可以用来调用我们的工具类对数据进行处理,然后再进行相关的请求。自己刚好以前工作中使用过,于是就利用</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">的</span>beanshell<span style="padding:0px; margin:0px; font-family:宋体">来解决这个问题。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><span style="padding:0px; margin:0px; font-family:宋体">解决过程:</span></p><h2 style="padding:0px; margin:0px; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif">1<span style="padding:0px; margin:0px; font-family:宋体">、获取对应接口加密的工具类,并生成</span>jar<span style="padding:0px; margin:0px; font-family:宋体">包</span></h2><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">    <span style="padding:0px; margin:0px; font-family:宋体">这个需要看测试人员是否具有代码查看的权限,如果没有权限,直接要求开发人员把该工具类的代码发过来即可。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">    <span style="padding:0px; margin:0px; font-family:宋体">在</span>eclipse<span style="padding:0px; margin:0px; font-family:宋体">中建个</span>Java<span style="padding:0px; margin:0px; font-family:宋体">工程,把得到的工具类代码导进去。然后再导出成</span>jar<span style="padding:0px; margin:0px; font-family:宋体">包。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><a target="_blank" href="http://s3.51cto.com/wyfs02/M00/82/CC/wKiom1dhEhKRL_5RAAHJEtHpgO8336.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s3.51cto.com/wyfs02/M00/82/CC/wKiom1dhEhKRL_5RAAHJEtHpgO8336.png" title="01.png" alt="wKiom1dhEhKRL_5RAAHJEtHpgO8336.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><a target="_blank" href="http://s4.51cto.com/wyfs02/M01/82/CC/wKiom1dhEjKAgFlZAACa8FTB_GI666.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s4.51cto.com/wyfs02/M01/82/CC/wKiom1dhEjKAgFlZAACa8FTB_GI666.png" title="02.png" alt="wKiom1dhEjKAgFlZAACa8FTB_GI666.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><h2 style="padding:0px; margin:0px; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif">2<span style="padding:0px; margin:0px; font-family:宋体">、把</span>jar<span style="padding:0px; margin:0px; font-family:宋体">包放到</span>${jmeter_home}\lib\ext<span style="padding:0px; margin:0px; font-family:宋体">下</span></h2><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">    <span style="padding:0px; margin:0px; font-family:宋体">将导出的</span>jar<span style="padding:0px; margin:0px; font-family:宋体">包放到</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">的</span>lib\ext<span style="padding:0px; margin:0px; font-family:宋体">目录里。也可以不放进该目录,然后在</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">的测试计划直接引用即可。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><a target="_blank" href="http://s1.51cto.com/wyfs02/M00/82/CA/wKioL1dhE3GyObqKAAAVofVMYWc764.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s1.51cto.com/wyfs02/M00/82/CA/wKioL1dhE3GyObqKAAAVofVMYWc764.png" title="01.png" alt="wKioL1dhE3GyObqKAAAVofVMYWc764.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><h2 style="padding:0px; margin:0px; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif">3<span style="padding:0px; margin:0px; font-family:宋体">、创建</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">脚本</span></h2><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">    <span style="padding:0px; margin:0px; font-family:宋体">在</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">中创建一个项目,添加一个</span>httprequest<span style="padding:0px; margin:0px; font-family:宋体">,在这个请求里添加一个</span>BeanShell PreProcessor<span style="padding:0px; margin:0px; font-family:宋体">。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><a target="_blank" href="http://s4.51cto.com/wyfs02/M01/82/CA/wKioL1dhE4KxqiB7AAAg2o8temc576.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s4.51cto.com/wyfs02/M01/82/CA/wKioL1dhE4KxqiB7AAAg2o8temc576.png" title="02.png" alt="wKioL1dhE4KxqiB7AAAg2o8temc576.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">     <span style="padding:0px; margin:0px; font-family:宋体">在</span>http<span style="padding:0px; margin:0px; font-family:宋体">请求中根据实际情况填写对应的数据:</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><a target="_blank" href="http://s5.51cto.com/wyfs02/M00/82/CC/wKiom1dhEpewI3ulAADLsog90JQ610.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s5.51cto.com/wyfs02/M00/82/CC/wKiom1dhEpewI3ulAADLsog90JQ610.png" title="01.png" alt="wKiom1dhEpewI3ulAADLsog90JQ610.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">    <span style="padding:0px; margin:0px; font-family:宋体">在</span>BeanShellPreProcessor<span style="padding:0px; margin:0px; font-family:宋体">中导入我们的</span>jar<span style="padding:0px; margin:0px; font-family:宋体">包,</span>BeanShell PreProcessor<span style="padding:0px; margin:0px; font-family:宋体">中的两个方法是我们最常用到的:</span>vars.get(String paramStr)<span style="padding:0px; margin:0px; font-family:宋体">、</span>vars.put(Stringkey,String value)<span style="padding:0px; margin:0px; font-family:宋体">,前一个是从</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">中获得变量值,后一个是将数据存到</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">变量中。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><a target="_blank" href="http://s5.51cto.com/wyfs02/M00/82/CA/wKioL1dhE7eiHhekAAECkCFbwfI183.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s5.51cto.com/wyfs02/M00/82/CA/wKioL1dhE7eiHhekAAECkCFbwfI183.png" title="02.png" alt="wKioL1dhE7eiHhekAAECkCFbwfI183.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><span style="padding:0px; margin:0px"><span style="padding:0px; margin:0px; font-family:宋体">说明:</span>mac<span style="padding:0px; margin:0px; font-family:宋体">是需要签名加密的字段,在</span>BeanShell PreProcessor<span style="padding:0px; margin:0px; font-family:宋体">中主要是利用加密的工具类对报文进行加密,得到加密后的</span>mac<span style="padding:0px; margin:0px; font-family:宋体">值,然后在接口报文中调用</span>mac<span style="padding:0px; margin:0px; font-family:宋体">即可。</span></span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><h2 style="padding:0px; margin:0px; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif">4<span style="padding:0px; margin:0px; font-family:宋体">、执行</span>jmeter<span style="padding:0px; margin:0px; font-family:宋体">脚本</span></h2><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">     <span style="padding:0px; margin:0px; font-family:宋体">通过上述步骤脚本即可解决接口报文需要进行加密后才发送请求的测试处理。</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><span style="padding:0px; margin:0px; font-family:宋体">未加密的请求结果:</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><br style="padding:0px; margin:0px"></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> <a target="_blank" href="http://s4.51cto.com/wyfs02/M01/82/CA/wKioL1dhE-GzUefdAABmQWHI0CI041.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s4.51cto.com/wyfs02/M01/82/CA/wKioL1dhE-GzUefdAABmQWHI0CI041.png" title="01.png" alt="wKioL1dhE-GzUefdAABmQWHI0CI041.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><span style="padding:0px; margin:0px; font-family:宋体">利用</span>beanshell<span style="padding:0px; margin:0px; font-family:宋体">加密后的请求结果:</span></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><br style="padding:0px; margin:0px"></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> <a target="_blank" href="http://s2.51cto.com/wyfs02/M02/82/CA/wKioL1dhE_Sjp097AACcuJwLjac033.png" target="_blank" style="padding:0px; margin:0px; color:rgb(80,80,80); text-decoration:none"><img src="http://s2.51cto.com/wyfs02/M02/82/CA/wKioL1dhE_Sjp097AACcuJwLjac033.png" title="02.png" alt="wKioL1dhE_Sjp097AACcuJwLjac033.png" style="padding:0px; margin:0px; vertical-align:top; border:none"></a></p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"> </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px">     </p><p style="padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:0px; clear:both; height:auto; overflow:hidden; color:rgb(80,80,80); font-family:宋体,"Arial Narrow",arial,serif; font-size:14px; line-height:28px"><span style="padding:0px; margin:0px; font-family:宋体">    至此,接口请求的加密处理已完成,不仅解决需通过代码生成请求报文的繁琐方法,还可以在此脚本的基础上,实现数据驱动的接口自动化测试,测试小伙伴们就可以愉快的进行测试了。</span></p>   </div><!-- Baidu Button BEGIN --><div class="bdsharebuttonbox tracking-ad" style="float: right;" data-mod="popu_172"><a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"  style="background-position:0 -52px !important"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"style="background-position:0 -104px !important"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"style="background-position:0 -260px !important"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"style="background-position:0 -208px !important"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"style="background-position:0 -1612px !important" ></a></div><script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script><!-- Baidu Button END -->   <!--172.16.140.11--><!-- Baidu Button BEGIN --><script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" ></script><script type="text/javascript" id="bdshell_js"></script><script type="text/javascript">    document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)</script><!-- Baidu Button END -->         <div id="digg" ArticleId="70881587" >            <dl id="btnDigg" class="digg digg_enable"  onclick="btndigga();">                                <dt>顶</dt>                <dd>0</dd>            </dl>                                     <dl id="btnBury" class="digg digg_enable"  onclick="btnburya();">                                <dt>踩</dt>                <dd>1</dd>                           </dl>                    </div>     <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" > </a>   </div>    <div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" > </a></div>    <script type="text/javascript">        function btndigga() {            $(".tracking-ad[data-mod='popu_222'] a").click();        }        function btnburya() {            $(".tracking-ad[data-mod='popu_223'] a").click();        }            </script>   <ul class="article_next_prev">                <li class="prev_article"><span  onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='http://blog.csdn.net/Alvin_Lam/article/details/53576703';">上一篇</span><a href="http://blog.csdn.net/Alvin_Lam/article/details/53576703" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">利用vim查看日志,快速定位问题</a></li>                <li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='http://blog.csdn.net/Alvin_Lam/article/details/70881610';">下一篇</span><a href="http://blog.csdn.net/Alvin_Lam/article/details/70881610" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">持续集成之Jenkins+Gitlab实现持续集成 [二]</a></li>    </ul>    <div style="clear:both; height:10px;"></div>            <div class="similar_article"   >                    <h4></h4>                    <div class="similar_c"style="margin:20px 0px 0px 0px">                        <div class="similar_c_t">                            相关文章推荐                        </div>                                           <div class="similar_wrap tracking-ad" data-mod="popu_36"  style="max-height:250px">                                                   <ul class="similar_list fl">                                       <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/yuanwq2012/article/details/51252649" title="Jmeter实现对字符串加密" strategy="BlogCommendFromBaidu_0" target="_blank">Jmeter实现对字符串加密</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://edu.csdn.net/huiyiCourse/series_detail/62?utm_source=blog7" title="【直播】系统集成工程师必过冲刺--任铄" strategy="undefined" target="_blank">【直播】系统集成工程师必过冲刺--任铄</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/wanglha/article/details/50781558" title="Jmeter:使用BeanShell" strategy="BlogCommendFromBaidu_1" target="_blank">Jmeter:使用BeanShell</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://edu.csdn.net/huiyiCourse/series_detail/61?utm_source=blog7" title="【直播】机器学习30天系统掌握--唐宇迪" strategy="undefined" target="_blank">【直播】机器学习30天系统掌握--唐宇迪</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/doctor_who2004/article/details/53108623" title="JMeter  BeanShell 的使用-请求加密-返回自动解密处理" strategy="BlogCommendFromBaidu_2" target="_blank">JMeter  BeanShell 的使用-请求加密-返回自动解密处理</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://edu.csdn.net/huiyiCourse/series_detail/63?utm_source=blog7" title="【直播】AI时代,机器学习该如何入门--唐宇迪" strategy="undefined" target="_blank">【直播】AI时代,机器学习该如何入门--唐宇迪</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/wt081216/article/details/51306201" title="http接口测试——Jmeter接口测试实例讲解" strategy="BlogCommendFromBaidu_3" target="_blank">http接口测试——Jmeter接口测试实例讲解</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://edu.csdn.net/combo/detail/177?utm_source=blog7" title="【套餐】Linux应用和网络编程实战套餐--朱有鹏" strategy="undefined" target="_blank">【套餐】Linux应用和网络编程实战套餐--朱有鹏</a>                                   </li>                            </ul>                              <ul class="similar_list fr">                                         <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/Dopamy_BusyMonkey/article/details/51149274" title="http接口测试——Jmeter接口测试实例讲解" strategy="BlogCommendFromBaidu_4" target="_blank">http接口测试——Jmeter接口测试实例讲解</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://edu.csdn.net/course/detail/3436?utm_source=blog7" title="【课程】SharePoint 2016 开发教程--杨建宇" strategy="undefined" target="_blank">【课程】SharePoint 2016 开发教程--杨建宇</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/Alvin_Lam/article/details/70881610" title="持续集成之Jenkins+Gitlab实现持续集成 [二]" strategy="BlogCommendFromBaidu_5" target="_blank">持续集成之Jenkins+Gitlab实现持续集成 [二]</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="" title="【课程】程序员简历优化指南--安晓辉" strategy="undefined" target="_blank">【课程】程序员简历优化指南--安晓辉</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/reblue520/article/details/76287551" title="持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知" strategy="BlogCommendFromBaidu_6" target="_blank">持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/wanglha/article/details/50781393" title="Jmeter特殊情况一:登录请求中密码加密的情况" strategy="BlogCommendFromBaidu_7" target="_blank">Jmeter特殊情况一:登录请求中密码加密的情况</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/xqtesting/article/details/71725242" title="jmeter完成md5加密的接口请求参数" strategy="BlogCommendFromBaidu_8" target="_blank">jmeter完成md5加密的接口请求参数</a>                                   </li>                                   <li>                                       <em>•</em>                                       <a href="http://blog.csdn.net/forieda/article/details/77751084" title="Jmeter测试登录接口时密码RSA加密如何处理" strategy="BlogCommendFromCsdn_9" target="_blank">Jmeter测试登录接口时密码RSA加密如何处理</a>                                   </li>                            </ul>                        </div>                    </div>                </div>         </div>    <div>              <!--u2843949广告位-->        <script type="text/javascript" src="http://mpb1.iteye.com/rmboieuiupt.js"></script>     </div><div id="suggest"></div>         <script  language="javascript" type='text/javascript'>                  $(function(){                 $.get("/Alvin_Lam/svc/GetSuggestContent/70881587",function(data){                     $("#suggest").html(data);                 });                  });                      </script>                                                                                                          <!-- 广告位开始 -->        <!-- 广告位结束 --><div class="comment_class">    <div id="comment_title" class="panel_head">        <span class="see_comment">查看评论</span><a name="comments"></a></div>    <div id="comment_list">    </div>    <div id="comment_bar">    </div>    <div id="comment_form">    </div>    <div class="announce">        * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场<a name="reply"></a><a name="quote"></a></div></div><script type="text/javascript">    var fileName = '70881587';    var commentscount = 0;    var islock = false</script>    <div id="ad_bot">    </div><div id="report_dialog"></div><div id="d-top"  style="bottom:60px;">        <a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">            <img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">        </a>        <a id="d-top-a" class="btn btn-top backtop"  style="display: none;" title="返回顶部" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])" style="">                  <img src="http://static.blog.csdn.net/images/top.png" alt="TOP">    </a></div><script type="text/javascript">    $(function ()    {        $("#ad_frm_0").height("90px");                setTimeout(function(){            $("#ad_frm_2").height("200px");        },1000);        });  </script><style type="text/css">    .tag_list    {        background: none repeat scroll 0 0 #FFFFFF;        border: 1px solid #D7CBC1;        color: #000000;        font-size: 12px;        line-height: 20px;        list-style: none outside none;        margin: 10px 2% 0 1%;        padding: 1px;    }    .tag_list h5    {        background: none repeat scroll 0 0 #E0DBD3;        color: #47381C;        font-size: 12px;        height: 24px;        line-height: 24px;        padding: 0 5px;        margin: 0;    }    .tag_list h5 a    {        color: #47381C;    }    .classify    {        margin: 10px 0;        padding: 4px 12px 8px;    }    .classify a    {        margin-right: 20px;        white-space: nowrap;    }</style><div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">    </div><div id="popup_mask"></div><style>    #popup_mask    {        position: absolute;        width: 100%;        height: 100%;        background: #000;        z-index: 9999;        left: 0px;        top: 0px;        opacity: 0.3;        filter: alpha(opacity=30);        display: none;    }</style><script type="text/javascript">    $(function(){                        setTimeout(function(){            $(".comment_body:contains('回复')").each(function(index,item){                var u=$(this).text().split(':')[0].toString().replace("回复","")                var thisComment=$(this);                if(u)                {                    $.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {                        if(a!=null&&a.data!=null&&a.data.length>0)                        {                            nick=a.data[0].n;                             if(u!=nick)                            {                                thisComment.text(thisComment.text().replace(u,nick));                              }                        }                           });                  }            });                 },200);          setTimeout(function(){            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })        },5000);        setTimeout(function(){            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })        },10000);        setTimeout(function(){            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })        },15000);                setTimeout(function(){            $("a img[src='http://js.tongji.linezing.com/stats.gif']").parent().css({"position":"absolute","left":"50%"});        },300);    });    function loginbox(){        var $logpop=$("#pop_win");        $logpop.html('<iframe src="https://passport.csdn.net/account/loginbox?service=http://static.blog.csdn.net/callback.htm" frameborder="0" height="600" width="400" scrolling="no"></iframe>');        $('#popup_mask').css({            opacity: 0.5,            width: $( document ).width() + 'px',            height:  $( document ).height() + 'px'        });        $('#popup_mask').css("display","block");         $logpop.css( {            top: ($( window ).height() - $logpop.height())/ 2  + $( window        ).scrollTop() + 'px',            left:($( window ).width() - $logpop.width())/ 2        } );         setTimeout( function () {            $logpop.show();            $logpop.css( {                opacity: 1            } );        }, 200 );         $('#popup_mask').unbind("click");        $('#popup_mask').bind("click", function(){            $('#popup_mask').hide();            var $clopop = $("#pop_win");            $("#common_ask_div_sc").css("display","none");            $clopop.css( {                opacity: 0            } );            setTimeout( function () {                $clopop.hide();            }, 350 );            return false;        });    }       var articletitle='利用JMeter的beanshell进行接口的加密处理';</script>                        <div class="clear">                        </div>                    </div>                                               </div>                              <div id="side">                   <div class="side"><div id="panel_Profile" class="panel"><ul class="panel_head"><span>个人资料</span></ul><ul class="panel_body profile"><div id="blog_userface">    <a href="http://my.csdn.net/Alvin_Lam" target="_blank">    <img src="http://avatar.csdn.net/0/5/C/1_alvin_lam.jpg" title="访问我的空间" style="max-width:90%"/>    </a>    <br />    <span><a href="http://my.csdn.net/Alvin_Lam" class="user_name" target="_blank">Alvin_Lam</a></span></div><div class="interact">    <a href="javascript:void(0);" class="attent" id="span_add_follow" title="[加关注]"></a> <a href="javascript:void(0);" class="letter"  title="[发私信]" onclick="window.open('http://msg.csdn.net/letters/model?receiver=Alvin_Lam','_blank','height=350,width=700');_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_sixin'])"></a>  </div><div id="blog_medal">                <div id="bms_box">                                            <a  target="_blank">                                                    <img src="http://c.csdnimg.cn/jifen/images/xunzhang/xunzhang/chizhiyiheng.png" onmouseover="m_over_m(this,4)" onmouseout="m_out_m()" alt="2" >                                            </a>               </div></div><ul id="blog_rank">    <li>访问:<span>49495次</span></li>    <li>积分:<span>961</span> </li>        <li >等级: <span style="position:relative;display:inline-block;z-index:1" >            <img src="http://c.csdnimg.cn/jifen/images/xunzhang/jianzhang/blog3.png" alt="" style="vertical-align: middle;" id="leveImg">            <div id="smallTittle" style=" position: absolute;  left: -24px;  top: 25px;  text-align: center;  width: 101px;  height: 32px;  background-color: #fff;  line-height: 32px;  border: 2px #DDDDDD solid;  box-shadow: 0px 2px 2px rgba (0,0,0,0.1);  display: none;   z-index: 999;">            <div style="left: 42%;  top: -8px;  position: absolute;  width: 0;  height: 0;  border-left: 10px solid transparent;  border-right: 10px solid transparent;  border-bottom: 8px solid #EAEAEA;"></div>            积分:961 </div>        </span>  </li>    <li>排名:<span>千里之外</span></li></ul><ul id="blog_statistics">    <li>原创:<span>44篇</span></li>    <li>转载:<span>25篇</span></li>    <li>译文:<span>0篇</span></li>    <li>评论:<span>4条</span></li></ul></ul></div><div class="panel" id="panel_Search">    <ul class="panel_head"><span>文章搜索</span></ul>    <ul class="panel_body" class="form_search">        <form id="frmSearch" action="http://so.csdn.net/search" class="form_search csdn-tracking-statistics" target="_blank"  data-mod="popu_306">        <span><input id="inputSearch" type="text" class="blogsearch" title="请输入关键字" /></span>        <input id="btnSubmit" type="button" value="搜索" title="search in blog" />        <input type="hidden" name="q" id="inputQ" />        <input type="hidden" name="t" value="blog" />        <a id="btnSearchBlog" target="_blank"></a>        </form>    </ul></div><script type="text/javascript">       $(function () {        $("#btnSubmit").unbind("click");        $("#btnSubmit").click(function () {                       search();        });        $("#frmSearch").submit(function () {                       search();            return false;        });        function search()        {            if ($("#inputSearch").val() == "") {                               alert("请录入搜索关键词!");                                         return false;            }            //var url = "http://so.csdn.net/so/search/s.do?q=" + encodeURIComponent($("#inputSearch").val()) + "&u=" + username + "&t=blog";                       var url = "https://www.baidu.com/s?wd=" + encodeURIComponent($("#inputSearch").val()) + "%20site%3Ablog.csdn.net"            window.location.href = url;        }       });</script><div id="panel_Category" class="panel"><ul class="panel_head"><span>文章分类</span></ul><ul class="panel_body">                     <li>                    <a href="/Alvin_Lam/article/category/2927773" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Linux</a><span>(28)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/2933879" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">mongo</a><span>(2)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/2934401" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Redis</a><span>(2)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/3068511" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">抓包工具</a><span>(14)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5896041" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">自动化测试</a><span>(11)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5896081" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">微信</a><span>(6)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5896213" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">iOS</a><span>(8)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5896215" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Android</a><span>(4)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5896219" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">测试工具</a><span>(21)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5896631" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">oracle</a><span>(1)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5953749" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">运维</a><span>(27)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/5953751" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Nginx</a><span>(1)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/6113556" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">MySQL</a><span>(3)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/6256864" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">SQL Server</a><span>(1)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/6330968" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Java</a><span>(3)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/6330969" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">Jmeter</a><span>(5)</span>                </li>                 <li>                    <a href="/Alvin_Lam/article/category/6890354" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">性能</a><span>(1)</span>                </li></ul></div><div id="panel_Archive" class="panel"><ul class="panel_head"><span>文章存档</span></ul><ul class="panel_body"><div id="archive_list"><!--归档统计--><li><a href="/Alvin_Lam/article/month/2017/04">2017年04月</a><span>(2)</span></li><li><a href="/Alvin_Lam/article/month/2016/12">2016年12月</a><span>(1)</span></li><li><a href="/Alvin_Lam/article/month/2016/08">2016年08月</a><span>(1)</span></li><li><a href="/Alvin_Lam/article/month/2016/07">2016年07月</a><span>(3)</span></li><li><a href="/Alvin_Lam/article/month/2016/06">2016年06月</a><span>(18)</span></li><li><a href="/Alvin_Lam/article/month/2016/03">2016年03月</a><span>(4)</span></li><li><a href="/Alvin_Lam/article/month/2016/02">2016年02月</a><span>(1)</span></li><li><a href="/Alvin_Lam/article/month/2016/01">2016年01月</a><span>(14)</span></li><li><a href="/Alvin_Lam/article/month/2015/12">2015年12月</a><span>(7)</span></li><li><a href="/Alvin_Lam/article/month/2015/11">2015年11月</a><span>(3)</span></li><li><a href="/Alvin_Lam/article/month/2015/10">2015年10月</a><span>(8)</span></li><li><a href="/Alvin_Lam/article/month/2015/03">2015年03月</a><span>(7)</span></li></div></ul></div><div id="hotarticls" class="panel tracking-ad" data-mod="popu_340"><ul class="panel_head">    <span>       阅读排行    </span></ul><ul class="panel_body itemlist"><li><a href="/alvin_lam/article/details/51567160" title="各类 HTTP 返回状态代码详解">各类 HTTP 返回状态代码详解</a><span>(6646)</span></li><li><a href="/alvin_lam/article/details/51567547" title="Linux环境PHP5.5以上连接SqlServer2008">Linux环境PHP5.5以上连接SqlServer2008</a><span>(5294)</span></li><li><a href="/alvin_lam/article/details/50528096" title="学习Wireshark(四):网络性能排查之TCP重传与重复ACK">学习Wireshark(四):网络性能排查之TCP重传与重复ACK</a><span>(3630)</span></li><li><a href="/alvin_lam/article/details/51567193" title="su: 无法设置用户ID: 资源暂时不可用">su: 无法设置用户ID: 资源暂时不可用</a><span>(2885)</span></li><li><a href="/alvin_lam/article/details/50528208" title="学习Wireshark(七):Statistics统计工具功能详解与应用">学习Wireshark(七):Statistics统计工具功能详解与应用</a><span>(1822)</span></li><li><a href="/alvin_lam/article/details/50528283" title="学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流">学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流</a><span>(1745)</span></li><li><a href="/alvin_lam/article/details/50528300" title="学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)">学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)</a><span>(1488)</span></li><li><a href="/alvin_lam/article/details/51567993" title="Linux环境搭建xampp+禅道">Linux环境搭建xampp+禅道</a><span>(1295)</span></li><li><a href="/alvin_lam/article/details/50528083" title="学习Wireshark(三):应用Wireshark IO图形工具分析数据流">学习Wireshark(三):应用Wireshark IO图形工具分析数据流</a><span>(1243)</span></li><li><a href="/alvin_lam/article/details/50717338" title="Appium Python API 中文版 By-HZJ">Appium Python API 中文版 By-HZJ</a><span>(1213)</span></li></ul></div><div id="hotarticls2" class="panel tracking-ad" data-mod="popu_341"><ul class="panel_head"><span>评论排行</span></ul><ul class="panel_body itemlist"><li><a href="/alvin_lam/article/details/50717338" title="Appium Python API 中文版 By-HZJ">Appium Python API 中文版 By-HZJ</a><span>(1)</span></li><li><a href="/alvin_lam/article/details/52033804" title="Jmeter+maven+Jenkins构建云性能测试平台(一)">Jmeter+maven+Jenkins构建云性能测试平台(一)</a><span>(1)</span></li><li><a href="/alvin_lam/article/details/52033850" title="Jmeter+maven+Jenkins构建云性能测试平台(二)">Jmeter+maven+Jenkins构建云性能测试平台(二)</a><span>(1)</span></li><li><a href="/alvin_lam/article/details/52033897" title="Jmeter+maven+Jenkins构建云性能测试平台(三)">Jmeter+maven+Jenkins构建云性能测试平台(三)</a><span>(1)</span></li><li><a href="/alvin_lam/article/details/49331349" title="【微信公众平台开发】php开发环境搭建设置(一)">【微信公众平台开发】php开发环境搭建设置(一)</a><span>(0)</span></li><li><a href="/alvin_lam/article/details/70881610" title="持续集成之Jenkins+Gitlab实现持续集成 [二]">持续集成之Jenkins+Gitlab实现持续集成 [二]</a><span>(0)</span></li><li><a href="/alvin_lam/article/details/44775915" title="Fiddler教程">Fiddler教程</a><span>(0)</span></li><li><a href="/alvin_lam/article/details/44244119" title="Redis 起步">Redis 起步</a><span>(0)</span></li><li><a href="/alvin_lam/article/details/44241389" title="mongo认识与使用">mongo认识与使用</a><span>(0)</span></li><li><a href="/alvin_lam/article/details/44218275" title="linux环境下DNS服务器配置教程">linux环境下DNS服务器配置教程</a><span>(0)</span></li></ul></div><div id="homepageArticles" class="panel tracking-ad" data-mod="popu_4"><ul class="panel_head"><span>推荐文章</span></ul><ul class="panel_body" id="ad_commend"><ul><li><a href="http://blog.csdn.net/blogdevteam/article/details/77651442" target="_blank">* CSDN日报20170828——《4个方法快速打造你的阅读清单》</a></li><li><a href="http://blog.csdn.net/blogdevteam/article/details/77647813" target="_blank">* CSDN博客模板调查问卷</a></li><li><a href="http://blog.csdn.net/yhaolpz/article/details/77366154"target="_blank">* 动手打造史上最简单的 Recycleview 侧滑菜单</a></li><li><a href="http://blog.csdn.net/sweettool/article/details/77018506" target="_blank">* TCP网络通讯如何解决分包粘包问题</a></li><li><a href="http://blog.csdn.net/dc_726/article/details/77728729" target="_blank">* 程序员的八重境界</a></li><li><a href="http://blog.csdn.net/pangpang123654/article/details/77720036" target="_blank">* 四大线程池详解</a></li></ul></ul></div><div id="newcomments" class="panel"><ul class="panel_head"><span>最新评论</span></ul><ul class="panel_body itemlist">    <li>            <a href="/alvin_lam/article/details/52033850#comments">Jmeter+maven+Jenkins构建云性能测试平台(二)</a>    <p style="margin:0px;"><a href="/yxb1231" class="user_name">yxb1231</a>:好帖,LZ都放下修改后的jar包吗?    </p>    </li>    <li>            <a href="/alvin_lam/article/details/50717338#comments">Appium Python API 中文版 By-HZJ</a>    <p style="margin:0px;"><a href="/xiaojiawen" class="user_name">xiaojiawen</a>:厉害,我正在学    </p>    </li>    <li>            <a href="/alvin_lam/article/details/52033804#comments">Jmeter+maven+Jenkins构建云性能测试平台(一)</a>    <p style="margin:0px;"><a href="/wangjinlong_" class="user_name">wangjinlong_</a>:mark之    </p>    </li>    <li>            <a href="/alvin_lam/article/details/52033897#comments">Jmeter+maven+Jenkins构建云性能测试平台(三)</a>    <p style="margin:0px;"><a href="/wangjinlong_" class="user_name">wangjinlong_</a>:mark,今天太晚了,明天再研究    </p>    </li></ul></div>    </div>    <div class="clear">    </div>                   <div class="tracking-ad" data-view="true"  data-mtp="63" data-order="40" data-con="ad_content_1260" style="width: 200px; height: 400px;">                         <div id="nav_show_top_stop" style="width: 200px;height: 500px;z-index:1000">                             <div id="cpro_u2734128">                                  <!-- 投放代码 -->                               <script type="text/javascript" src="http://mpb1.iteye.com/fapbswjpcdh.js"></script>                             </div>                             <div id="cpro_u3031287">                                  <!-- 投放代码 -->                                 <script type="text/javascript" src="http://mpb1.iteye.com/cxpdpgmzyaedgm.js"></script>                             </div>                         </div>                   </div>                <script type="text/javascript">                    setTimeout(function () {                        var naviga_offsetTop = 0;                        function naviga_stay_top() { var scrollTop = jQuery(document).scrollTop(); if (scrollTop > naviga_offsetTop) { jQuery("#nav_show_top_stop").css({ "position": "fixed" }); jQuery("#nav_show_top_stop").css({ "top": "0px" }); } else { jQuery("#nav_show_top_stop").css({ "position": "fixed" }); jQuery("#nav_show_top_stop").css({ "top": naviga_offsetTop - scrollTop + "px" }); } }                        function onload_function() { naviga_offsetTop = jQuery("#nav_show_top_stop").position().top; jQuery(window).bind("scroll", naviga_stay_top); jQuery(window).bind("mousewheel", naviga_stay_top); jQuery(document).bind("scroll", naviga_stay_top); jQuery(document).bind("mousewheel", naviga_stay_top); } jQuery(document).ready(onload_function);                    }, 200);                </script>                               </div>               <div class="clear">            </div>        </div>            <script type="text/javascript" src="http://passport.csdn.net/content/loginbox/login.js"></script><script type="text/javascript">    $(function () {        function __get_code_toolbar(snippet_id) {            return $("<span class='tracking-ad' data-mod='popu_167'><a href='https://code.csdn.net/snippets/"                    + snippet_id                    + "' target='_blank' title='在CODE上查看代码片'  style='text-indent:0;'><img src='https://code.csdn.net/assets/CODE_ico.png' width=12 height=12 alt='在CODE上查看代码片' style='position:relative;top:1px;left:2px;'/></a></span>"                    + "<span class='tracking-ad' data-mod='popu_170'><a href='https://code.csdn.net/snippets/"                    + snippet_id                    + "/fork' target='_blank' title='派生到我的代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/ico_fork.svg' width=12 height=12 alt='派生到我的代码片' style='position:relative;top:2px;left:2px;'/></a></span>");        }                $("[code_snippet_id]").each(function () {            __s_id = $(this).attr("code_snippet_id");            if (__s_id != null && __s_id != "" && __s_id != 0 && parseInt(__s_id) > 70020) {                __code_tool = __get_code_toolbar(__s_id);                $(this).prev().find(".tools").append(__code_tool);            }        });        $(".bar").show();    });</script>    </div>            <script type="text/javascript" src="http://static.blog.csdn.net/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>           <script src="http://static.blog.csdn.net/scripts/csdn_blog_detail.min.js" type="text/javascript"></script>            <script type="text/javascript" src="http://c.csdnimg.cn/blog/csdn_public_blog_detail.min.js?20170719001"></script>    <script type="text/javascript" src="http://medal.blog.csdn.net/showblogmedal.ashx?blogid=4966343"></script>  <div id="a52b5334d" style="width: 1px; height: 1px; display: none;">                    <script id="adJs52b5334"></script>                    <script>document.getElementById("adJs52b5334").src = "http://ads.csdn.net/js/opt/52b5334.js?t=" + Math.random();</script>   </div>              <div class="pop_CA_cover"  style="display:none"></div>    <div class="pop pop_CA"  style="display:none">          <div class="CA_header">            收藏助手            <span class="cancel_icon"  id="fapancle"  onclick="$('.pop_CA').hide();$('.pop_CA_cover').hide();"></span>          </div>          <iframe src="" id="fa" frameborder="0" width="100%" height="360"  scrolling="no" ></iframe>    </div>        <script type="text/javascript">            $(function () {                var fromjs = $("#fromjs");                if (fromjs.length > 0) {                    $("#fromjs .markdown_views pre").addClass("prettyprint");                    prettyPrint();                    $('pre.prettyprint code').each(function () {                        var lines = $(this).text().split('\n').length;                        var $numbering = $('<ul/>').addClass('pre-numbering').hide();                        $(this).addClass('has-numbering').parent().append($numbering);                        for (i = 1; i <= lines; i++) {                            $numbering.append($('<li/>').text(i));                        };                        $numbering.fadeIn(1700);                    });                    $('.pre-numbering li').css("color", "#999");                }            });            $(".markdown_views a[target!='_blank']").attr("target", "_blank");            //$(".toc a[target='_blank']").attr("target", "");            setTimeout(function () {                $(".toc a[target='_blank']").attr("target", "");            }, 500);        </script></body></html>