性能测试之JMeter-实践3

怎么使用controller

14. 性能测试也要遵守实际用户操作场景的。现在有个用户场景是这样的,某用户login web端,查看了4次user list和6次endpoints list,编写jmeter脚本,看这整个操作的性能怎么样

分析: 要使用jmeter的循环控制器组件。login 1次-使用Only Once Controller,user list4次-使用Throughput Controller或是Loop Controller,endpoint 6次-使用Throughput Controller或是Loop Controller

14-1. login 1次: Thread Group -> Add -> Logic Controller -> Only Once Controller, 并将之前写的launch portal, user name authenticate 和 password authenticate放在controller下面

14-2. user list 4次:

a. 使用Throughput Controller (直译是吞吐量控制器,它是用来控制该控制器下面元件的执行次数,与控制吞吐量的功能无关),要和Thread Group一起用

a-1: Thread Group -> Add -> Logic Controller ->Throughput Controller, 并将之前写的user list相关的组件放在controller下面。Thread Group的Loop Count填写为10,Throughput Controller的Percent Executions模式填写40(意思是线程循环次数的40%)

 执行脚本,看看每个请求执行的次数 (我把endpoint list给disable了,如果没有disabled的话,它的执行次数应该和线程循环数是一样的,10次)

a-2. 执行次数计算还有下面几种方法:

  • 使用Throughput Controller下的Percent Executions模式:(就是上面的例子,只不过我的线程数是1)
    • 执行次数 = 线程数 * 线程的循环次数(Thread Group下的Loop Count)*  吞吐量的百分比   //这种算法和Throughput Controller下的Per User勾不勾选没有关系
  • 使用Throughput Controller下的Total Executions模式:
    • 当勾选Per User时:
      • 当线程数*循环次数>=线程数*吞吐量次数时,执行次数=线程数*吞吐量
      • 当线程数*循环次数< 线程数*吞吐量次数时,执行次数=当线程数*循环次数
    • 当不勾选Per User时:
      • 线程数*循环次数<=吞吐量时,执行次数=线程数*循环次数
      • 当线程数*循环次数>吞吐量时,执行次数=吞吐量

 b. 使用Loop Controller, 下面直接写次数(执行次数=线程的循环次数*controller的循环次数),如果想执行4次,就直接线程循环次数1,controller循环系数4

14-3. 照上面的写法写出endpoint list执行6次的脚本

posted @ 2019-03-08 10:34  Catherine-Wang  阅读(111)  评论(0)    收藏  举报