一、下载安装jmeter
参考:jmeter下载安装
二、线程组
- 第一部分
在取样器错误后要执行的动作
取样器就相当于是postman发送请求接口,当接口请求失败时,要执行的动作:
- 继续:继续执行接下来的操作
- 启动下一进程循环:忽略错误,执行下一个循环
- 停止线程:退出当前线程,不再执行此线程的任务操作
- 停止测试:等待当前执行的采样器结束,接着结束整个测试
- 立即停止测试:直接停止整个测试
- 第二部分
- 线程数:即模拟用户数量
- Ramp-Up时间(秒):达到指定线程数所需要的时间。比如线程数为100,此处为5秒,100/5=20,那么相当于每秒启动20个线程,用时5秒达到100
- 循环次数:要循环的次数,如果勾选“永远”,会一直循环下去
- Same user on each iteration:表示每个迭代都用相同的线程。比如线程数为1,循环次数为5,那么创建好1个线程后,每次循环迭代都用这个线程,直到测试结束。如果不勾选,那么每次循环会销毁之前的线程,再创建1个新的线程,测试结束总共会经过5次创建销毁线程,浪费了计算机资源,线程多了甚至可能会影响性能测试结果,所以默认是勾选的。再比如这1个线程中有登录操作,加入cookie后,这个线程5次迭代下来用的都是这一个cookie
- 第三部分
- 延迟创建线程直到需要:勾选,当线程需要执行的时候才会被创建,如果不勾选,在计划开始的时候,所有的线程就都创建好了
- 调度器:
持续时间(秒),表示多少秒后,结束测试
启动延迟(秒):表示点击开始执行计划后,延迟多少秒,才真正开始执行
三、线程组添加组件介绍
- 取样器
发送接口请求,类似于代码中requests封装的请求接口方法。 - 逻辑控制器
控制语句的执行顺序。 - 前置处理器
在取样器发送接口请求之前,需要执行的操作,比如删除数据,恢复数据,生成数据等。 - 后置处理器
在取样器发送接口请求之后,需要执行的操作,比如恢复数据,或处理响应数据,提取需要的值等。 - 断言
判断是否返回了预期的结果。 - 定时器
一般用来延时发送接口请求,类似于代码中的强制等待sleep。 - 测试片段
相当于封装一段代码,供其他脚本使用。 - 配置元件
用于初始化变量,以便采样器使用。类似于自动化框架中的配置文件。 - 监听器
展示执行结果,打印日志信息等。
四、线程组组件的执行顺序与接口自动化对比
jmeter组件 | 接口自动化 |
---|---|
配置元件 | 读取配置文件 |
前置处理器 | setup等前置操作 |
取样器 | 发送接口请求 |
后置处理器 | 提取接口响应信息 |
断言 | 断言 |
监听器 | 控制台或日志查看 |
五、jmeter脚本录制
录制原理:浏览器本来是直接和web服务器建立连接的,jmeter录制时,是在浏览器和web服务器之间建立jmeter代理服务器,并生成本地CA证书,来欺骗浏览器,让浏览器将jmeter代理服务器认为是web服务器,从而发送请求。然后jmeter拦截并本地记录来自浏览器的请求,再发送给web浏览器,接收过程同理。
测试计划->添加->非测试元件->HTTP代理服务器