• jmeter_02test_plan_测试计划参数


    • 转载自  https://www.cnblogs.com/poloyy/tag/Jmeter/default.html?page=4
    • 测试计划描述了 Jmeter 在执行时,一系列的步骤
    • 一个完整的测试计划包含了一个或多个【线程组、逻辑控制器、采样器、监听器、定时器、断言和配置元素】
    • 配置树中的元件

      • 树中的每一个控件都能通过右边内容区显示
      • 树中的每一个控件都能在树中随意拖动

     

    运行测试计划

    • 可以通过ctrl+r运行测试计划
    • 通过右侧的数字:活动线程数/线程总数,这仅适用于本地运行的测试;
    • 使用客户端-服务器模式时,它们不包括在远程系统上启动的任何线程【分布式压测时,master机不会显示所有远程salve机的线程总数】

    仅在调试测试计划时,才应该使用上面的 GUI 模式【界面模式】,如果实际运行负载测试的时候,应该使用CLI模式【命令行模式、无界面模式】

    Thread Group的简单理解

    • 线程组是一个测试计划的开始点
    • 在一个测试计划中的所有元件都必须在某个线程组下
    • 线程组决定 Jmeter 执行测试计划的线程数

     j

    Thread Group提供的主要作用

    • 设置每次的线程数
    • 设置ramp-up period
    • 设置执行测试的次数

    Thread Group的独立性

    每个线程都会独立的运行测试计划,互不干扰,多个线程用于模仿对服务器的并发访问。

    在取样器错误后要执行的动作

    默认:继续

    建议:继续

    假设一个HTTP Sampler报错了,后面还有其他请求,最好肯定是继续执行下去啦

    线程属性值

    设置的线程属性值是【预期压力值】

    而聚合报告是【压力测试的实际结果】

    线程数

    • Jmeter java进程下启动的线程,用来模拟真实用户数1线程数 = 1用户数
    • windows下,2g的 java内存,1m 的栈空间,最大启动线程数=1000
    • Linux下,2g的 java内存,1m 的栈空间,最大启动线程数=2000
    • 在Jmeter中,先启动线程,再运行线程,后释放线程【启动线程并运行,释放线程】
    • 线程数建议不超过1000

    Ramp-Up时间(秒)

    • 预期线程组的所有线程从启动-运行-释放的总时间
    • ramp up=0时,表示瞬时加压,启动线程的时间无限趋近于0
    • 特别注意:在负载测试的时候,尽量把ramp up设置大一些,让性能曲线平缓,容易找到瓶颈点

    循环次数

    • 每个线程循环执行的次数,默认一次【便于理解:线程的迭代次数、重复发起请求的次数】
    • 如果设置为永远,那么 jmeter 将以最大的可能去发送请求,以此测试出最大并发数
    • 备注:如果 ramp-up 时间内,所有线程不能启动运行完的话,时间则会顺延下去

    • Ramp-up 设置注意事项

      Ramp-up需要设置足够长的时间来避免在测试刚开始时工作量过大

      • 假如需要大量线程的话,不建议设置成0,0 属于瞬时加压【过小的 ramp-up period 】
      • 如果设置 0,Jmeter 将在测试开始时就启动全部线程并立即发送请求,这样很容易让服务器达到饱满状态,且瞬间会增加很大的负载量,容易让服务器超载,这样是不合理的;
      • 不合理的原因并不是因为平均压力值过高,而是因为所有线程都在初始状态时一起并发访问,从而引起不正常的初始访问峰值,可以通过 Jmeter 的聚合报告看到这种情况

    Ramp-up还必须足够短,保证最后一个线程在第一个线程完成之前开始运行

    • 如果 Ramp-up 过大,则会降低访问峰值的负载,即没有达到预期的压力峰值,无法获取准确的服务器最大负载情况【过大的 ramp-up period 】
    • 具体的表现为:一些线程还没有启动,初期启动的部分线程已经结束了【导致实际并发量并会小于预期并发量】

    如何确定一个合理的ramp-up period

    • 首先,让初始点击率接近平均点击率,前提是确定合理的访问量
    • 初始的 ramp-up period = 平均点击率= 总线程/点击率;假如线程数=100,点击率=10次/s,则ramp-up period = 100/10 = 10s

    延迟创建线程直到需要 (没用过)

    延迟创建线程,直到线程被需要、采样器开始执行时才会被创建,避免资源浪费

    请求是request,每秒请求是 request persecond ,也就是RPS,这是压力。
    TPS是服务端的处理能力,是衡量服务器的性能指标,不要和rps混在一起哦。
    请求数决定不了TPS,唯一能决定TPS的是服务器

     ----------------------------------------------------------------------------------------------

    独立运行每个线程组(例如在一个组运行结束后启动下一个)

    默认:不勾选,默认各线程组并行、随机执行

    作用:勾选后,用于控制测试计划中的多个线程组的执行顺序,保证顺序执行各线程组

    用户定义的变量

    • 这里用户添加的变量,相当于全局变量,所有线程组都共用
    • 一般添加一些系统常用的配置
    • 一般不建议在测试计划上添加变量,因为不方便启用(disable)和禁用(enable)

    特别注意

    • 线程组中的取样器执行顺序:默认是从上到下执行
    • 交替控制器、随机控制器、随机顺序控制器、循环控制器可以改变取样器的执行顺序

     

  • 相关阅读:
    Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
    【转】MySQL数据丢失讨论
    【摘】 pt-query-digest工具一解
    【摘】Mysql备份还原数据库之mysqldump实例及参数详细说明
    【原】redis插件安装
    【摘】linux中fstab解说
    【原】mysql慢日志分析
    【原】带宽、流量单位换算关系
    【转】Linux查看内存大小和插槽
    【转】bind
  • 原文地址:https://www.cnblogs.com/pythonwork/p/15149754.html
Copyright © 2020-2023  润新知