day32-测试之性能测试工具JMeter的线程组、参数化和断言

目录

一、线程组

        1.1.线程组的介绍

                1).作用

                2).特点

                3).线程组分类

                        3.1).普通线程组

                        3.2).setUp线程组

                        3.3).tearDown线程组

        1.2.线程组属性

二、参数化

        2.1.JMeter参数化常用方式

        2.2.用户定义的变量

        2.3.用户参数

        2.4.CSV数据文件设置

        2.5.函数方式参数化(counter)

三、断言

        3.1.作用

        3.2.断言的概念

        3.3.常用断言

        3.4.响应断言

        3.5.JSON断言

                1).应用场景

                2).添加

                3).配置

        3.6.持续时间断言

                1).应用场景

                2).添加

                3).配置

四、今日学习思维导图

一、线程组

        1.1.线程组的介绍

                1).作用

                        通过配置线程组中的线程数来模拟用户。线程数就是用户数,线程组就是用户组

                2).特点

                        2.1).设定线程数 (模拟多人操作)

                        2.2).取样器(请求)和逻辑控制器必须依赖线程组才能使用

                        2.3).线程组可以添加多个,多个线程组可以并行或串行

                                1.并行:默认情况下线程组为并行执行

                                2.串行:在测试机会下勾选”独立运行每个线程组“

                        2.4).线程组下可以添加其他元件下组件

                3).线程组分类

                        3.1).普通线程组

                                用于执行业务测试的脚本

                        3.2).setUp线程组

                                用于测试前的预处理操作,在所有的线程组中最先执行

                        3.3).tearDown线程组

                                用于测试后的后置处理(恢复环境、数据)的操作,在所有的线程组中最后执行

        1.2.线程组属性

                1).线程数:模拟虚拟用户数

                2).Ramp-up时间:虚拟用户启动所需要的时间

                3).循环次数:

                        3.1).配置指定次数:控制脚本循环执行的次数

                        3.2).配置循环永远

                                1.需要调度器配置使用

                                2.运行时间:脚本执行的时间

                                3.延迟启动时间:脚本等待特定的时间才能开始运行

                4).线程数m和循环次数n的关系

                        4.1).如果同时配置,实际发送的HTTP请求数应该为m*n

                        4.2).虽然发送请求的次数相同,但是不能相互替换

                                1.线程数:代表并发用户数,体现服务器的负载量

                                2.循环次数:代表执行时间

二、参数化

        2.1.JMeter参数化常用方式

                1).用户定义的变量

                2).用户参数

                3).CSV Data Set Config

                4).函数

        2.2.用户定义的变量

                1).方式一

                        1.1).添加方式:测试计划-->线程组-->配置元件-->用户定义的变量

                        1.2).配置:参数名+参数值

                        1.3).使用:在HTTP请求的取样器中引用定义的变量.${参数名}

                2).方式二

                        2.1).配置:在测试计划中配置用户定义的变量

                        2.2).使用:在HTTP请求的取样器中引I用定义的变量.${参数名}

        2.3.用户参数

                1).添加

                        线程组--->前置处理器--->用户参数

                2).配置

                        2.1).参数:添加变量

                        2.2).参数值:添加用户--针对每个用户配置不同的参数值

                3).使用

                        在HTTP请求的取样器中引I用定义的变量.S{参数名}

        2.4.CSV数据文件设置

                1).添加

                        线程组--配置元件--CSV数据文件设置

                2).编写CSV数据文件(.cSV作为后缀)

                        2.1).多个参数写为多例,其中用逗号分隔

                        2.2).多组参数值,则使用多行来设置

                3).配置

                        3.1).文件名:填写CSV文件的路径,建议使用相对路径

                        3.2).文件编码:UTF-8

                        3.3).变量名称:从CSV数据文件读取的数据需要保存的变量名,有多个变量时用逗号分隔

                        3.4).是否忽略首行:是否从CSV数据文件第一行开始读取

                        3.5).分隔符:要求与CSV数据文件中多列的分隔符一致

                        3.6).遇到文件结束符是否再次循环:默认TRUE

                        3.7).遇到文件结束符是否停止线程:当前一个参数为FALSE,该参数有效,一般设置为TRUE

        2.5.函数方式参数化(counter)

                1).添加

                        工具--函数助手对话框--上面函数选择counter--生成$[_counter(false,)}

                2).counter

                        2.1).TRUE:每个用户使用独立的计数器

                        2.2).FALSE:每个用户使用全局的计数器

                3).使用

                        在取样器中使用${_counter(false,》来使用即可

                4).应用场景

                        当需要参数化的数据只有唯一性要求,但是对具体的参数值无明确要求时,建议使用函数方式

三、断言

        3.1.作用

                让脚本自动化执行的过程中,能够自动的判定执行结果是否正确,需要添加断言

        3.2.断言的概念

                1).断言:让程序判断预期结果和实际结果是否一致。

                2).提示:JMeter断言是在请求的返回层面增加一层判断机制:因为请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性。

        3.3.常用断言

                1).响应断言

                2).JSON断言

                3).持续时间断言(Duration Assertion)

        3.4.响应断言

                1).添加

                        线程组---HTTP请求--断言--响应断言

                2).配置

                        2.1).测试字段:需要检查的字段

                        2.2).模式匹配规则:需要使用什么规则来进行检查

                                且、或者、非

                        2.3).测试模式:需要校验的值

                                填写多个值

        3.5.JSON断言

                1).应用场景

                        适用于返回的HTTP响应为JSON格式

                2).添加

                        线程组--HTTP请求--断言--JSON断言

                3).配置

                        3.1).JSON PATH:$.内容

                        3.2).勾选"Additonal assertvalue”

                        3.3).在expectedvalue里填写期望值

        3.6.持续时间断言

                1).应用场景

                        适用于性能测试时,检查HTTP请求的响应时间是否超过预期值

                2).添加

                        线程组--HTTP请求--断言--断言持续时间

                3).配置

                        预期时间

四、今日学习思维导图

  • 24
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值