性能测试基础--jmeter02(数据驱动/逻辑控制器/聚合报告)

一.DDT数据驱动

     基础配置:线程组--添加--配置元件--CSV Data Setting

           

         文件名称中文件的格式:可以使用txt方式也可以使用csv的方式,但是尽量使用txt的方式

主要是因为编码的不一致,csv文件的编码不是utf-8,txt的文件编码是utf-8,如果使用csv文件配置写的是utf-8就会导致csv文件变慢。

        文件的路径:默认使用的是绝对路径,是csv/txt文件所在的位置,也可以配置相对路径,可以是jmeter的bin路径下,也可以是jmeter的所在的脚本位置,所以文本保存在这两个路径下可以直接写文件名;或者使用./文件名的写法,这种写法可以跨平台。

       使用csv进行测试的时候坚决不用csxread函数。

       是否使用引号:必须是一对英文的引号。

       遇到文件结束符再次循环:当设置成true,如果循环次数大于文件里面的数据,此时循环次数=文件中里面的数据的个数,当设置成false,如果循环次数大于文件里的数据,此时文件中数据读取完成以后,会重新从文件中开头就行读取,直到达到循环次数。

       遇到文件结束符停止线程:当设置成true,如果线程数大于文件里面的数据,此时线程数=文件中里面的个数,达到以后就会将线程给停掉,当设置成false,如果线程数大于文件中的数据,此时文件中数据读取完成以后,会重新从文件中开头进行读取,直到满足到最大线程数。

二.逻辑控制器

     循环控制器

          路径:线程组--添加逻辑控制器--循环控制器

          定义:在此循环控制器下的请求设置了循环多次就会调用多次

        

     for each控制器            

          路径:线程组--添加逻辑控制器--foreach控制器

          定义:可以对里面的参数进行不同数据调用进行循环,类似V函数的拼接,常用于变量名称中带有_变量的引用

        

     if条件控制器          

          路径:线程组--添加逻辑控制器--if条件控制器

          定义:默认情况下,条件框中要使用_jexl3或者_groovy这个函数,函数的结果为true或者false,决定了此循环控制器下面的取样器是否执行,这个表达式的编写可以使用函数助手进行编写

          

         

       备注:如果不勾选interpret condition as variable express  这个选项就是把条件框中的表达式当成js脚本进行执行,根据执行结果的真假进行判断是否执行条件控制器下面的请求

       

     事务控制器

          路径:线程组--添加逻辑控制器--事务控制器

          定义:默认情况下,一个取样器就是一个事务,如果要控制多个取样器在一个事务中,必须要勾选Generate parent sample----这样才能把多个请求控制在一个事务中。

         常见问题:性能测试中需要勾选Generate parent sample选项么??

          1.   性能测试中先做单接口的性能测试,再做多接口的性能测试

          2.   多接口的性能测试需要勾选进行合并

          3.    性能测试中,需要测试出单个接口的性能测试指标,然后多个接口的性能测试指标,然后勾选此选项合并得到业务场景的性能指标 

     临界控制器        

          路径:线程组--添加逻辑控制器--临界控制器

          定义:主要用来严格控制请求顺序,锁名称默认是global_lock,是一个固定的锁,将性能测试的并发执行变成串行。将固定锁变成动态锁,获取多把锁使用${__threadNum}函数将锁名称命名为这个。

         

     仅一次控制器:    

          路径:线程组--添加逻辑控制器--仅一次

          定义:一个线程用户只会执行一次,并发用户数假设设置10个,不管循环次数设置多少次,其下挂载的取样器只会运行十次;并发用户数假设设置10个,不管运行时间设置多久,其下挂载的取样器只会运行十次。

                    

三.聚合报告

      在性能测试中经常会添加聚合报告去查看对应的性能指标,但是看聚合报告中对应的结果数据也是有条件的:

         1.没有网络瓶颈:因为看聚合报告的时候会将吞吐量看成是tps,但是吞吐量跟tps只有在网络没有瓶颈的时候才相同(吞吐量:衡量网络的能力指标,tps是从一个事务发出到网络最后回来是一个事务的响应时间,在网络没有瓶颈的时候,吞吐量是等于tps的)

             怎么判断没有网络瓶颈呢??

              聚合报告的最后两列,接收/发送是吞吐率,假设网络的1MB那最大的带宽就是1MB=1*1024kb=1024/8KB=128KB/s ;最大通过的是128kB/s,吞吐率小于这个就是没有网络瓶颈。

         2.并发用户数不变:在整个测试过程中国并发用户数不变才有参考的价值,如果是在做负载测试,这个时候并发用户数是在不断的变化的,这个时候聚合报告里面的吞吐量就没有参考价值

         3.聚合报告中有参考的响应时间是90%的响应时间

      

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值