在使用jmeter进行接口测试时往往需要一些变化的参数作为请求数据。比如:注册时使用的用户名、手机号;修改数据时,当前的时间等待这些需要不断变化的参数。
我们的接口自动化测试不可能每次运行的时候来手动进行修改数据,这时候,把参数变成每次执行可变才是我们需要做的。
在jmeter中,我们可以通过jmeter自带的函数助手进行我们的参数控制。
可以通过工具-函数助手对话框,打开函数助手。
也可以直接点击页面中文件册图标打开函数助手。
对于函数助手的使用大家可以通过下面链接进行查看。
https://www.cnblogs.com/renshengruxi/p/13387365.html
我这里简单举几个小例子:
随机数:${__Random(1,99999,)}
这个函数是表示在1~99999数字中随机选一个数。
有了这个函数,我们就可以给我们的电话号码字段进行参数化了。
随机字符串:${__RandomString(6,qwertyuiopasdfghjklzxcvbnm,)}
这个函数括号中的6,表示取6个字符,后面的字母表就是说从这个字母表中取字符,当然你也可以加上数字、特殊符号等。
当前时间:${__time(yyyy-MM-dd hh:mm:ss,)}
这个函数表示获取当前时间作为参数。
接下来看看我是怎么使用的吧:
首先我在测试计划中加了一个用户定义的变量,这是作为全局的一个变量来使用。
作为全局变量,在底下的所有线程组下的接口,都可以使用上面的变量。
当然你不加用户定义的变量,也可以直接进行使用。只不过那样不方便管理。当我们的测试系统发生改变的时候,只需要维护用户定义的变量就可以了,而不用找到每个接口进行修改。
而且用户定义的变量不仅可以放函数助手的函数,也可以放固定的值。甚至可以放路径。
在我们做接口测试时,往往会需要文件上传的接口,如果只是本地测试还好,如果发生测试环境的变化,则需要修改上传文件的路径了。
比如:
我在本地调试接口的时候,上传路径是我本地的,但是放到服务器时,脚本中的路径就需要改成服务器的了。
这时我们不可能把所有的上传接口都改一遍,做成参数化以后,就可以维护参数化内的变量就可以 了。这样是不是方便多了?