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


    
    
    
  
             

   

  
 

     
       
    利用JMeter的beanshell进行接口的加密处理 - Alvin_Lam的专栏
        - CSDN博客
    
    

    

   
    

    
        
       
       
        
    
      
         
    

    

    

    
    
    
 



    
     
         

  


     
            





     
        
关闭

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

标签: jmeter
652人阅读 评论(0) 收藏 举报
分类:

 最近项目中在做http协议的接口测试,其中接口请求报文数据有个字段值需要用到加密后的签名,即出于网络传输过程中,对数据安全的考虑,要对请求的数据进行特定的处理(加密),再进行请求。

     刚开始由于项目赶进度的需要,选择的做法是:让开发写个加密处理生成请求报文的代码,然后每次测试发送一次请求都用eclipse跑一遍该代码,测试数据的修改也是在代码中变更。这样跑一轮测试下来,测试同事都反映太累了。

     jmeter中的BeanShell,可以用来调用我们的工具类对数据进行处理,然后再进行相关的请求。自己刚好以前工作中使用过,于是就利用jmeterbeanshell来解决这个问题。

 

解决过程:

1、获取对应接口加密的工具类,并生成jar

    这个需要看测试人员是否具有代码查看的权限,如果没有权限,直接要求开发人员把该工具类的代码发过来即可。

    eclipse中建个Java工程,把得到的工具类代码导进去。然后再导出成jar包。

wKiom1dhEhKRL_5RAAHJEtHpgO8336.png

 

wKiom1dhEjKAgFlZAACa8FTB_GI666.png

 

 

2、把jar包放到${jmeter_home}\lib\ext

    将导出的jar包放到jmeterlib\ext目录里。也可以不放进该目录,然后在jmeter的测试计划直接引用即可。

wKioL1dhE3GyObqKAAAVofVMYWc764.png

 

 

3、创建jmeter脚本

    jmeter中创建一个项目,添加一个httprequest,在这个请求里添加一个BeanShell PreProcessor

wKioL1dhE4KxqiB7AAAg2o8temc576.png

 

     http请求中根据实际情况填写对应的数据:

wKiom1dhEpewI3ulAADLsog90JQ610.png

 

 

    BeanShellPreProcessor中导入我们的jar包,BeanShell PreProcessor中的两个方法是我们最常用到的:vars.get(String paramStr)vars.put(Stringkey,String value),前一个是从jmeter中获得变量值,后一个是将数据存到jmeter变量中。

wKioL1dhE7eiHhekAAECkCFbwfI183.png

说明:mac是需要签名加密的字段,在BeanShell PreProcessor中主要是利用加密的工具类对报文进行加密,得到加密后的mac值,然后在接口报文中调用mac即可。

 

 

4、执行jmeter脚本

     通过上述步骤脚本即可解决接口报文需要进行加密后才发送请求的测试处理。

 

未加密的请求结果:


 wKioL1dhE-GzUefdAABmQWHI0CI041.png

 

利用beanshell加密后的请求结果:


 wKioL1dhE_Sjp097AACcuJwLjac033.png

 

     

    至此,接口请求的加密处理已完成,不仅解决需通过代码生成请求报文的繁琐方法,还可以在此脚本的基础上,实现数据驱动的接口自动化测试,测试小伙伴们就可以愉快的进行测试了。

0
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:49495次
    • 积分:961
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:25篇
    • 译文:0篇
    • 评论:4条
    文章分类


你可能感兴趣的:(利用JMeter的beanshell进行接口的加密处理)