使用jmeter模拟加密接口请求

突然写好的脚本运行不通过了,自己抓包一看,请求报文都做了加密处理,跟开发确认后的确是加密了,问清楚了加密方式跟处理方法,接下来就开始用jmeter模拟,由于jmeter本身并没有加密功能,但是它是java开源项目可以扩展,我让开发将他的加密类从eclipse中导出来打成jar包,放在jmeter安装文件夹lib文件夹中,然后就开始写脚本了,这里要用到beanshell Sampler,在beanshell Sampler中写java代码使用刚才放入jmeter中扩展的jar包中的加密方法,将加密后的内容保存在变量中,然后在http请求脚本中读取引用来使用


首先,在测试计划中引用jar文件


由于我的请求中需要一个单据时间是终端生成给过去的,于是这里我得使用前置处理器 BeanShell PreProcessor去创建日期参数,在请求报文中使用




引用开始导入的jar包中的加密方法对报文进行加密处理,并引用前面生成好的时间变量 orderDate,将加密后的字符串保存在变量 md5中


扫描二维码关注公众号,回复: 4408728 查看本文章



接下来就是模拟请求报文了



tenderId是我请求这个接口前,必须先请求“单品创建”接口新建一个单品成功后,后台返回过来的数据,这两个接口数据是有关联的,直接用断言将请求“单品创建”接口返回的数据剥离出来在这个接口中关联起来(断言是基础,这里不多解释),开始时间startDate,我直接使用了jmeter的时间函数取了当前时间作为参数,endDate时间是引用前面BeanShell PreProcessor中准备好的参数关联,最后&h=${md5} 拼接关联成功,请求成功,打完收工。


总结:首先要了解接口之间相关联的业务,可以自己抓包理解,也可以向开发询问(这个更重要),总之搞清这中间的处理过程是最重要的,写好的接口脚本跑起来有问题了,不要慌忙,抓个包对比了解下,一切尽在掌控中,多亏之前有过几个月的开发经验,不然这些东西也研究不透彻。

猜你喜欢

转载自blog.csdn.net/t20423187/article/details/78855674