目录
说明
工具准备
- apache-jmeter-5.4.1
- jdk8 +
获取和我一样的测试工具
关注公众号获取和我一样测试工具。我已经将常用的包都放到一起,解压即可使用 Jmeter。
微信公众号关注:张家的小伙子
回复:jmeter
工具配置
jmeter 界面汉化配置
汉化步骤
jmeter 界面默认是英文,配置成中文。
- 打开 /bin/jmeter.porperties 文件,
- 将 默认的 language=en 改为 language=zh_CN 后,重启jmeter。
汉化结果图
案例1:测试接口
接口准备
spring mvc 项目创建一个接口,来模拟测试的目标接口。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Objects;
@RestController
@RequestMapping(value = "test")
public class TestController {
@GetMapping(value = "test")
public Object test() {
return new HashMap<String,Object>() {
{
put("message", "成功");
}};
}
}
线程组
添加线程组
配置线程组值
线程数(Number of Threads)
- 定义
这个值指定了要创建的虚拟用户(线程)的数量。每个线程都代表一个独立的用户,因此线程数越多,模拟的并发用户数也就越多。 - 使用场景
如果你想模拟 1000 个并发用户,就设置线程数为 1000。
Ramp-Up 时间(Ramp-Up Period)
- 定义
Ramp-Up 时间是指所有线程(虚拟用户)启动所需的时间,单位是秒。
例如,如果设置了 100 个线程,Ramp-Up 时间为 100 秒,那么每秒会启动一个线程,直到所有线程都被启动。Ramp-Up 时间设置得较长可以避免瞬间发起大量请求,从而导致服务器负载过高。 - 使用场景
如果你希望所有用户在 100 秒内启动,那么 Ramp-Up 时间应设置为 100 秒。
通过这种方式,你可以模拟逐步增加负载的场景。
循环次数(Loop Count)
- 定义
循环次数指定每个线程将执行的次数。如果设置为 1,则每个线程只执行一次。如果设置为 -1,则表示无限循环,直到测试结束时停止。 - 使用场景
如果你希望每个用户执行 10 次请求,可以将 Loop Count 设置为 10;如果希望每个用户一直执行,直到测试结束,则设置为 -1。
永远循环(Forever)
- 定义
这是一个复选框,当勾选时,线程将会不停地循环执行测试计划中的请求,直到测试手动停止。 - 使用场景
如果你正在进行压力测试,并且希望线程永远执行直到你手动停止,可以勾选此选项。
延迟(Delay)
- 定义
该选项可以为每个线程设置一个固定的启动延迟时间。这意味着每个线程启动时,会等待指定的时间,然后再开始执行请求。 - 使用场景
这种配置适合于模拟用户之间有间隔的启动情况。
http请求
添加http请求
配置HTTP请求值
协议 (Protocol)
- 定义
指定协议类型,可以选择 http