取样器的执行顺序:从上往下
函数助手对话框:__V setProperty __P 函数助手中帮助
函数跨线程组:
用户定义变量:在这里写入一个变量名phone,变量值为函数对话框中设置的变量,将变量名写入到http请求中的${phone},在注册和登录接口中拿到的phone是同一个值
用户参数:但用用户参数的变量名放在注册和登录接口的参数中,获取到的phone不是同一个这里拿到的全局性的,每个线程每跑一次都会动态获取到一个值
前置处理器->用户参数:在这里写入一个变量名phone,变量值为函数对话框中设置的变量,将变量名写入到http请求中的${phone}
注册和登录取到的phone都不一样,定义出来的是全局性的,同一个线程组下每个线程获取一次,用户参数中值都会计算出来,即都会动态取这个值
用户定义变量:注册和登录取到的phone都一样,再将用户定义的变量接受随机函数,再将用户定义的变量写到接口中
同一个线程组下只有初始化的时候计算一次值,在线程组该值不会变的
CSV数据文件设置中线程共享模式:
当前线程组:用户定义变量
当前线程:用户参数,每次线程都会计算一次
概念:
线程组:
线程:
常用函数的处理:
random:随机数
time:如果参数为当前日期,那么公式为${__time(yyyy-MM-dd,)}或者${__time(YMDHMS,)},
格式化生成时间格式 2018-06-01 11:08:23:787 :${__time(yyyy-MM-dd HH:mm:ss:SSS,time)}
精确到毫秒级,13位数1543234323232:${__time(,)}
精确到秒级别,10位数:${__time(1000,)}
__V:两个变量参数的拼接,一般在读取数据库场景中用的多但一个函数加一个字符串不需要 ${__V(${变量1}_${变量2})}
密码加密的处理:digest函数,例如MD5加密
setProperty:设置属性,属于全局变量,可以实现跨线程组,属性可以跨,变量不能跨
P或者property:获取属性
time:生成时间戳
1个线程组循环100次与100个线程组循环1次有什么区别,对服务器压力的话是不是是一样的效果?
有,因为一个线程组不断循环,终究是线性顺序执行的,这属于压力测试范畴;而后者100个同时启动,属于并发性测试,对CPU冲击性更大,也是你说的“压力”的本质。
在不考虑 压力测试中的内存泄漏时,处理后者的“压力”必然是更大的