使用jmeter测试登录及参数化
在测试用户登录时,测试用户登录时需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问。
这里介绍3种参数化的方式:用户参数、CSV Data Set Config、函数助手
一. 通过“添加前置处理器—>用户参数”参数化
1.1 设置方式:添加→前置处理器→用户参数,设置如下:
![](https://www.0419af.com/wp-content/uploads/2023/02/1675326881-46a309f1022ff0c.png)
![](https://www.0419af.com/wp-content/uploads/2023/02/1675326884-46a309f1022ff0c.png)
说明:username是参数名称,用户_1/用户_2/用户_3是参数的3个值。仅对于多线程时,每个线程会取其中一个值,若线程超过3个,则会重复取这3个值中的一个。若设置为1个线程,则此参数化方法无效。
1.2 在需要参数化的请求上,获取参数化变量
将我们添加的参数化名称通过${}的方法取值
![](https://www.0419af.com/wp-content/uploads/2023/02/1675326886-46a309f1022ff0c.png)
接下来我在线程组设置的用户数为3,点击执行
执行完毕后,查看结果,可以查看设置参数的请求对应的请求一栏,找到它的取参,参数化成功。如下图所示:
二. 通过“CSV Data Set Config”参数化
2.1 新建txt文件,在文件中编写你想参数化的值,值之间以逗号进行分割
2.2 首先将之前添加的用户参数化给禁用,然后添加csv数据文件设置
2.3 选择你创建的参数文件txt
说明:ecycle on EOF?:是否循环读取参数文件内容。默认设置为 true。通常在 线程组的线程数 * 线程组的循环次数 > 参数文件行数时,才需要将此项设置为 true。
Sotp thread on EOF?:当读取到参数文件末尾时,是否停止读取线程。默认为 false。当 Recycle on EOF? 设置为 true 时,此项不起任何作用。当且仅当 Recycle on EOF? 为 false 时,此项配置才生效。
若为 false,此时线程会继续读取,但是会请求错误,因此时读取的数据为 EOF。
2.4 在需要参数化的请求上,获取参数化变量
执行完毕后,查看请求结果,可以查看参数化成功,如下图所示:
三. 通过“函数助手”参数化
3.1 新建txt文件,准备参数化数据
3.2 打开选项->函数助手对话框
3.3 使用__CSVRead参数化
打开函数助手,选择函数_CSVRead。选择好文件(例如:参数化数据test.txt)
点击生成,复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以了,点击运行会调用相应路径下的参数文件
执行完毕后,查看请求结果,可以查看参数化成功,如下图所示: