1、用户定义的变量
当我们每次去调用接口都要手动修改手机号码,并且注册和登录接口都要同步修改,这样操作相当繁琐,针对这个问题我们使用用户定义的变量的工具进行优化。
添加:在线程组上:右键—>添加—>配置元件—>用户定义的变量
用户自定义变量是固定的,与下面的“用户参数”有点不同(比如:${__Random(1000,9999,)},多个虚拟用户请求时,生成的四位数都是固定同一个)
我们把注册和登录的手机号和密码都提取出来放到这里。
定义了之后,我们需要调用该参数,调用方式是在对应的取样器里,使用${key}的格式替换取样器请求体里的值,这样我们就可以每次只修改一次就可以在所有的接口上通用了。
虽然在此基础上已经得到了相应的优化,我们能不能做到每次运行的时候都不用去修改用户定义的变量里面的值呢?答案是可以的,这时候我们要使用到函数助手,构造相应的随机函数。
对于函数的各种用法,这里不做说明,可以通过函数助手的帮助去查看各个函数的使用方法。
我们通过函数助手来构造一个生成随机手机号的方法来替换用户定义的变量的值。
2、CSV数据文件设置
该方法也是参数化的一种场景,我们可以提前使用csv文件或者其它文本文件(txt、log、xml、json...)构造大量数据,然后再读取文件里面的内容引用到对应的接口当中去,这里要注意的是在国内csv我们使用excel编辑器保存后遇到中文会出现乱码的情况,因此需要进行转码后才能正常使用!
在线程组上:右键—>添加—>配置元件—>CSV数据文件设置
我们先构造测试数据:
然后配置CSV数据文件设置:
此时我们可以直接替换接口参数的值为该变量名称,但是不可以替换用户定义的变量的值,会引用不到。
执行结果如下:
我们如果设置并发量为5,则会依次读取每一行数据。
3、用户参数
在用户定义的变量中使用随机生成手机号的方式执行,它的执行原理是在整个线程组执行会话之前创建一次后,执行过程中的所有线程都会去使用这个值,并不是每个线程组使用时都会随机生成不一样的值,所以在并发测试中,遇到这种情况就不行了,因此我们可以用户参数的工具来使得每个线程组调用的时候都能随机生成一个随机数。
·用户参数是随机生成的,于上面的“用户自定义变量”有点不同(比如:${__Random(1000,9999,)},多个虚拟用户请求时,生成的四位数都是随机生成的)
· 使用${名称}进行调用参数
在线程组上:右键—>添加—>前置处理器—>用户参数
我们可以将上面用户定义的变量中由函数助手生成的函数拿到用即可。
我们将接口参数化替换。
设置并发为10,查看结果:
作者:守护往昔