回复 113# syyzsy
你好。我想问一个关于性能测试的问题。
场景是这样的:有一个系统,这个系统对外只能提供一个服务,即响应用户GET请求的服务。一般是用过发送一个GET请求,然后获得到相应的内容后,就与服务器断开链接了。
比如说对这个系统进行性能测试,并发6000的时候,系统的吞吐量为12000TPS,并发7000的时候吞吐量为11000TPS,而且返回的结果中有503的出现。作为一个测试人员,如果单纯的把这些数据给产品运营人员的话,他们也无法从这里得到什么。我认为产品人员希望得到的是一秒钟有多少用户的请求。由于目前的测试工具一个线程的并发,这个线程发送的请求是在上一个请求响应完成之后,这个并发的线程才会发送下一个请求的。而实际场景中,用户之间的请求并没有时间关系。像这种情况,怎么来衡量系统的抗负载能力呢。说7000我觉得不合适,说11000也不合适。怎么样才能模拟那种1秒钟来N个请求,下一秒再来N个请求,而这后面的N个请求和前面的N个请求没有关系,无论前面的N个请求服务器响应没有,下面都会有N个请求发送过来的。
你有两个问题,第一个问题是系统的并发用户数,第二个问题是如何模拟随机的并发请求。 对于第一个问题,在做性能评测的时候,每秒钟系统到底能承受多大的压力不需要你在打压的时候就按照每秒钟发送多少个请求这样来模拟。你的需求是想要得到系统每秒钟的并发用户数是多少,首先你已经大致知道7000个并发用户可能是最大并发用户数,所以场景可以这样设计:你可以采用每隔5分钟加200~500个并发用户,到达6500~7000个用户后稳定运行30分钟。场景执行完毕后根据测试数据分析得到什么时候多少用户时系统没有返回错误,此时的用户数就是你的并发用户数。 对于第二个问题,请求固定(N个),如何模拟随机并发。这个可以通过集合点+参数设置来做到,添加集合点为N个,参数设置为随机取值就可以了。 |