(六)简单编写性能脚本

HTTP 是通过 Socket 来使用 TCP 的,Socket 做为套接层 API,它本身不是协议,只规定了 API。

通常在JMeter 中写 TCP 脚本,就是直接调用 Socket 层的 API。TCP 脚本和 HTTP 脚本最大的区别就是,TCP脚本中发送和接收的内容完全取决于 Socket server 是怎么处理的,并没有通用的规则。

在这里插入图片描述

一.编写Jmeter脚本

  • 创建线程组
    在这里插入图片描述

    • Number of Threads(users):我们都知道这是 JMeter 中的线程数,也可以称之为用户数
    • Ramp-up Period(in seconds):递增时间,以秒为单位。指的就是上面配置的线程数将在多长时间内会全部递增完。如果我们配置了 100 线程,这里配置为 10 秒,那么就是 100/(10s*1000ms)=1 线程 /100ms;需要注意的是,在 10 线程启动的这个阶段中,对服务器的压力是一样的。如图:
      在这里插入图片描述
    • Loop Count :这个值指的是一个线程中脚本迭代的次数
    • Delay Thread creation until needed:这里有一个默认的知识点,那就是 JMeter 所有的线程是一开始就创建完成的,只是递增的时候会按照上面的规则递增。如果选择了这个选项,则不会在一开始创建所有线程,只有在需要时才会创建。 如果不选择,在启动场景时,JMeter 会用更多的 CPU 来创建线程,它会影响前面的一些请求的响应时间。 如果选择了的话,就会在使用时再创建,CPU 消耗会平均一些,但是这时会有另一个隐患,就是会稍微影响正在跑的线程。这个选项,选择与否,取决于压力机在执行过程中,它能产生多大的影响。如果你的线程数很多,一旦启动,压力机的 CPU 都被消耗在创建线程上了,那就可以考虑选择它,否则,可以不选择。
    • Scheduler Configuration:举例来说,如果设置了 Loop Count 为 100,而响应时间是 0.1 秒,那么 Loop Count * iteration duration(这个就是响应时间) = 100 * 0.1 = 10秒。 即便设置了 Scheduler 的 Duration 为 100 秒,线程仍然会以 10 秒为结束点。 如果没有设置 Scheduler 的 Duration,那么你会看到,在 JMeter 运行到 10 秒时,控制台中会出现如下信息:
        INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-10
  • 创建HTTP Sampler
    在这里插入图片描述
  • 可以通过Method选择方法类型
  • 手工编写 HTTP 脚本时,要注意以下几点:
    • 要知道请求的类型,我们选择的类型和后端接口的实现类型要是一致的
    • 业务的成功要有明确的业务判断
    • 判断问题时,请求的逻辑路径要清晰
  • 编写TCP脚本

    • 创建TCP Sampler
      在这里插入图片描述
    • 输入配置和要发送的消息
      在这里插入图片描述
  • 相应断言

    • 定义: 断言指的就是服务器端有一个业务成功的标识,会传递给客户端,客户端判断是否正常接收到了这个标识的过程。
      在这里插入图片描述
  • 长短链接

    • 长短连接的选择取决于业务的需要,如果必须用短链接,那可能就需要更多的 CPU 来支撑;要是长连接,就需要更多的内存来支撑(用以保存 TCP 连接)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章