之前工作中测性能时遇到一个接口,其参数之一是需要每次生成一个不重复的签名,最后是用jmeter+java实现的,记录一下:
前提:接口类型是post,实现功能是增加积分。由于功能的特殊性,肯定不能随意增加积分,所以后台制定了一套规则,每次增加积分都会要求生成一个不重复唯一的签名。在测这个功能的性能时就需要模仿大量不同的用户集中去增加积分,于是需要构造非常多的不重复的签名去发起请求。
实现:利用后台提供的生成签名的jar包和算法,用java代码实现生成签名,返回到一个变量中。所用到的jar包要放在jmeter的安装目录的/lib/ext中
图一
图二
图三
如图3,在增加积分的这个http请求下添加前置处理器---》beanshellProprocessor。beanshell中写入java代码,将返回的字符串定义到变量json中,vars.put("json",jsonStr)。另外在beanshell中勾选中reset interpreter,表示在每次请求前重新运行beanshell中的代码; 在图一中定义好json变量,方便后面http请求中去找这个变量。图二中body data中引用这个变量就行了${json}。
接下来就是常规的设计测试场景,开始性能测试。