06. test plan测试计划详细讲解
2024年10月28日大约 4 分钟
06. test plan测试计划详细讲解
测试计划的作用
- 测试计划描述了 Jmeter 在执行时,一系列的步骤
- 一个完整的测试计划包含了一个或多个【线程组、逻辑控制器、采样器、监听器、定时器、断言和配置元素】
测试计划添加or删除元件
- 通过右键点击树中的元件,选中要添加的元件
- 也可以通过合并(merge)或打开(open)从文件中加载和添加元件
配置树中的元件
- 树中的每一个控件都能通过右边内容区显示
- 树中的每一个控件都能在树中随意拖动
运行测试计划
- 可以通过ctrl+r运行测试计划
- 通过右侧的数字:活动线程数/线程总数,这仅适用于本地运行的测试;
- 使用客户端-服务器模式时,它们不包括在远程系统上启动的任何线程**【分布式压测时,master机不会显示所有远程salve机的线程总数】**
特别注意
仅在调试测试计划时,才应该使用上面的 GUI 模式**【界面模式】,如果实际运行负载测试的时候,应该使用CLI模式【命令行模式、无界面模式】**
暂停运行测试计划
两种暂停方式
停止线程(ctrl + .)【硬中断】
关闭线程(ctrl + ,)【软中断】
硬中断:由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断 软中断: 1.通常是硬中断服务程序对内核的中断; 2.为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成 差别 ①硬中断是由外部事件引起的因此具有随机性和突发性; 软中断是执行中断指令产生的,无面外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的。 ②硬中断的中断响应周期,CPU需要发中断回合信号(NMI不需要); 软中断的中断响应周期,CPU不需发中断回合信号。 ③硬中断的中断号是由中断控制器提供的(NMI硬中断中断号系统指定为02H); 软中断的中断号由指令直接给出,无需使用中断控制器。 ④硬中断是可屏蔽的(NMI硬中断不可屏蔽); 软中断不可屏蔽。
stop threads
- 许多采样器(Samplers)都是可中断的,这意味着可以提前终止活动采样
- stop命令将检查所有线程是否已在默认超时(即5000 ms = 5秒)内停止
- 如果有线程还没被停止,则会发送一条信息;此时可以再发送一次 stop 命令,但如果还是失败的话,就得退出 Jmeter 来清理
特别注意
上述说的默认超时可以通过Jmeter属性来改变 jmeterengine.threadstop.wait 【jmeter安装目录 / bin / jmeter.properties】
shutdown threads
- 线程会在当前运行任务结束后停止,不会中断活动线程正在执行的任务
- 会出现一个【正在停止测试】的窗口(如下图),直到所有线程都运行完成了才会关闭
- 如果停止时间太久,也可以直接发stop命令
注意点
- 在Linux CLI模式下,是没有快捷键来停止线程运行的,所以Jmeter 在 CLI模式下会监听特定端口上的命令(默认端口4445,可以通过 jmeterengine.nongui.port 修改)
- 如果 4445 端口被占用了(比如,另一个Jmeter实例用了),Jmeter 会自动选择备用端口;
- Jmeter 将尝试监听下一个更高的端口,直到到达Jmeter属性 jmeterengine.nongui.maxport 为止,该属性默认为4455
在CLI模式下,如何停止线程执行
在bin目录下,运行脚本
- stoptest.cmd / stoptest.sh 【硬中断】
- shutdown.cmd / shutdown.sh 【软中断】
**注意,**只有在同一个 host 下运行的脚本,Jmeter 才会接受
[jmeter stop shutdown Start no pauses]
- Stop : 它会直接的把接下来进行的所有线程直接停掉
- Shutdown: 在当前线程运行结束后,才会去把剩下的还没有执行的线程全部结束掉
- Start no pauses: 无停顿启动运行测试计划 1,可以忽略定时器 2,再启动时运行更快