记录今天工作碰到的一个问题。
在常用的一个jmeter线程组中,原有一个作用域是全局的用户参数 ${name}。
在其中一个http请求中我想覆盖name这个变量,于是在这个http请求下新建了一个用户定义的变量name。
运行后发现没有覆盖成功,本来以为name会取“王一”这个用户定义的变量的值,实际上取的是用户参数中的值“李心妍”。
搜索后发现:
- 用户定义的变量:所有数据只会初始化一次,在启动运行时获取一次值,在运行过程中,不再动态获取。
- 用户参数:在运行过程中,每次使用该参数都会动态获取一次值。
所以,用户定义的变量比用户参数先创建,实际上是用户参数覆盖了用户定义的变量。
发现问题原因后,创建了前置处理器-用户参数,添加name变量,成功覆盖原用户参数的name变量值。