jmeter用户自定义变量的实际使用
jmeter的自定义变量可以让我们随机选取变量,从而达到在性能测试过程中可以随机选取变量的目的。但是在实际使用中发现一个问题,并不试用于所有场景,比如登录
我的自定义变量如图:
在登录表单中的随机变量取值方式为:
运行完后结果为:
可以看到,两个用户有一个登录成功,有一个失败,这是因为在取值时${__RandomFromMultipleVars(user1|user2)},用户名是随机取一个,而密码${__RandomFromMultipleVars(password1|password2)}也是随机取一个,而密码与用户名取的时候是独立的,有可能取到的用户名与密码不匹配,这是只有两个用户,要是用户多的话可能会导致大量的登录失败。此种情况有两种解决方案,
第一:
不使用${__RandomFromMultipleVars(password1|password2)}这个方法来取变量,${__V(user${__threadNum})},换为这个方法,这个方法取的时候是第一个用户的__threadNum就是1,这样就能取到user1,密码同理也是取到password1,这样就能保证密码与用户名完全匹配了。
第二:
不用用户自定义变量,而是从csv文件中读取,在csv中取值是按行从左到右取值的,把一个用户名密码写在同一行,这样取值的时候也能保证用户名与密码保持一致。