线程组设置
1、Name
这个线程组名称
2、action to be taken after a sampler error
在取样器发生错误后要执行的动作(取样器,真正发起请求的元件)
(1)continue,继续
(2)start next thread loop,一个测试计划可以有多个线程组,且到不干扰,当一个线程组发生错误时,直接往下执行,自上而下。
(3)stop thread,停止线程
(4)stop test,停止测试
(5)stop test now
3、Thread properties线程属性设置
(1)Number of Threads(users):线程数(仅仅只是模拟用户量的并发数),若是需要不同用户,需要参数化用户。
(2)Ramp-Up Period(in seconds):启动用户的时间,加速时间(启动所有线程所需的时间),例如用户数为5个,这里是10s,每个用户启动的时间为10/5=2,每2s启动1个用户。
(3)Loop count (Forever):循环次数,设置数值来决定用户循环的次数
(4)Delay thread creation until needed:延迟线程创建,直到需要线程才会创建,不勾选就是启动所有线程,到时间了采样器才执行请求。
(5)Scheduler:如果设置了这个,forever就不会起作用,受下面配置项控制:
--Duration:持续时间,,结束时间失败
--Startup delay:启动延迟,与启动时间矛盾
--start time:启动时间
--end time:结束时间
定时器
1、线程组-》定时器-》固定定时器
断言
响应结果乱码
在user.properties文件中添加
sampleresult.default.encoding=UTF-8
测试机中存在大量TIME_WAIT状态
性能测试机每次通过TCP访问server都会占用一个本地端口,导致time_wait状态过多,并且不释放,导致新的TCP连接去寻找新的端口。如果windows提供的65536个端口全部用完,就会出问题。
解决办法:
在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,添加名为TcpTimedWaitDelay的DWORD键
1、LISTEN:等待从任何远端TCP和端口的连接请求。
2、SYN_SENT:发送完一个连接请求后等待一个匹配的连接请求。
3、SYN_REVD:接收到连接请求以后,等待连接请求确认。
4、ESTABLISHED:表示一个打开的连接,可以进行数据传输。
5、FIN_WAIT_1,FIN_WAIT_2:这两个状态的真实含义都是表示等待对方FIN报文,FIN_WAIT_1状态实际上是当socket在established状态时,它紫禁惊雷主动关闭连接,向对方发送了FIN报文,此时该socket进入FIN_WAIT_1.而当对方回应ACK报文后,则进入到FIN_WAIT_2状态。
6、TIME_WAIT:表示接收了对方的FIN报文,并发送出来ACK报文,就等2MSL后即可回到CLOSED状态。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入TIME_WAIT状态,而无须经过FIN_WAIT_2。
7、CLOSING:这种状态比较特殊,表示你发送FIN报文后,并没有收到对方的ACK报文,反而却收到了对方的FIN报文,因为可能双方同时close一个socket。
8、CLOSE_WAIT:当对方close一个socket后发磅FIN报文给自己,然后回应一个ACK报文给对方,此时进入close_wait状态。女足查没有数据再发送过来,就可以发送FIN报文给对方,。
9、LAST_ACK:被动关闭后,发磅FIN报文后,最后等待对方的ACK报文(超时自动关闭)。