目录

jmeter性能测试2-模拟多用户登录

目录

jmeter性能测试2-模拟多用户登录

在录制完测试脚本后,参数都是静态的,如何模拟N个用户登录

1、创建一个CSV文件,里面有两列,用户名和密码。这些用户名和密码要系统里面实际已经存在了。可以创建任意多个。如下:

https://i-blog.csdnimg.cn/blog_migrate/3d6676f2827fab68cb4e367f8bac3884.png

线程组->添加->配置元件->CSV Data Set Config

https://i-blog.csdnimg.cn/blog_migrate/1d2c7bd692572fdd11617c94e890aa39.png

创建完后,选择存放用户名密码的csv文件,变量名:username,password。这样就会把csv文件的第一列读取到变量:username,第二列读取到:password

后面所有需要动态赋值的地方,使用${username} 和 ${password} 代替即可。语法就是这样。

线程组里面线程数量是多少,就会读取CSV文件里面的多少行出来

https://i-blog.csdnimg.cn/blog_migrate/cbfe7d9a357fdd3a4a611f4000612c05.png

比如:我们录制的登录请求是:/api/org/user/login

修改参数为动态:直接把原来的静态数据用${变量名称}代替即可

https://i-blog.csdnimg.cn/blog_migrate/9e4c14c59f51ac5215d45a0f506e3612.png

  1. 获取登录返回结果

很多时候,我们需要获取请求的返回结果,作为参数进行下一步请求。登录:就是获取登录成功后的token,然后添加到每个请求头。

这里以返回结果是json格式为例:

HTTP请求->添加->后置处理器->JSON提取器

https://i-blog.csdnimg.cn/blog_migrate/ba2334ca2642e696bfc46bf9b2a47878.png

意思就是把返回结果,的$.data放到变量admintoken里面,后面用到的地方直接${admintoke}

$表示根对象。语法就是这样。如果分多级可以这样写:$.data.user.userId

https://i-blog.csdnimg.cn/blog_migrate/4c42903baebcc6a95398a93f72e3184e.png

然后。后续所有需要登录验证的请求头上都改成动态获取的token,如下:

这个地方如果录制了很多http请求,可以用文本编辑器直接打开对应的.jmx文件,批量替换会快很多。

https://i-blog.csdnimg.cn/blog_migrate/9e067c1ff5ba3b76926f570c6cd0a9bb.png

这样就完成了登录。

当然,得先知道验证登录的机制,才能编写出脚本。否则都不知道怎么参数化

调试取样器

在上面,我们创建了很多变量。为了验证变量值是否正确。我们可以添加一个:调试取样器,将jMeter变量设置为True。这样就看到了每次变量的值

https://i-blog.csdnimg.cn/blog_migrate/d5ca6afee5030e5733a2519d394c2053.png