Jmeter基本使用

1. Jmeter元件及基本作用域

作用域:

1)取样器: 核心,没有作用域

2)逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用

3)其他元件:

  • 如果是某个取样器的子节点,则该元件只对其父节点起作用
  • 如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)

第一个案例:

2. 线程组的介绍

模拟用户,支持多用户操作

多个线程组可以串行执行, 也可以并行执行

线程组的分类:

  • setup线程组:前置处理,初始化
  • 普通线程组:编写脚本
  • teardown线程组:后置处理, 环境恢复等

案例分析:

添加HTTP请求(百度)

1)配置线程组为2, 循环次数为3,运行观察结果

2)配置线程组为3, 循环次数为2,运行观察结果

相同点:请求数量相同

不同:

  • 线程组:代表用户数,即性能测试的负载
  • 循环次数:代表时间,即性能测试时的运行时间

3. HTTP请求

向服务器发送http或者https的请求

百度,路径为/S,使用 HTTP协议

1) get请求,路径中添加参数wd=test

2) get请求,用参数列表来传递get请求的参数

3)post请求,参数列表来传递wd=test

4)post请求,消息体数据中添加参数为: wd=test

4. Jmeter参数化

本质:使用参数的方式来替代脚本中的固定的测试数据

实现方式:

1)定义变量(最基础)

2)文件定义的方式(所有测试数据都是固定的情况下)

3)数据库的方式(灵活,业务测试常用)

4)函数的方式(灵活,业务测试常用)

4.1 用户定义的变量

作用:定义全局变量

步骤:

1)添加线程组

2)添加 配置元件-用户定义的变量。格式: 变量名-变量值

3)HTTP请求,引用定义的变量名。格式:${变量名}

4)添加查看结果树

4.2 用户参数

作用:针对同一组参数,当不同的用户来访问时,可以获取到不同的值

步骤:

1)添加线程组,设置线程组为n(表示模拟的用户数)

2)添加前置处理器-用户参数

第一列添加多个变量名,后续每一列为一组用户的数据

3)添加HTTP请求,引用定义的变量名。格式:${变量名}

4)添加查看结果树

4.3 csv 数据文件设置

作用:当不同的用户,或者同一个用户多次循环时,都可以获取到不同的值

1)定义csv数据文件

2)添加线程组

3)添加配置元件-csv数据文件设置

4)添加HTTP请求,引用定义的变量名。 格式:${变量名}

5)添加查看结果树

4.4 函数

作用:自动生成不重复的数据,让每个用户每次循环都能取到不同的数据,且不需要提前定义

步骤:

1)添加线程组,设置虚拟用户数和循环次数

2)生成__counter 函数(工具-函数助手对话框)

3)添加HTTP请求,使用__counter函数。格式:${__counter(FALSE,)}

4) 添加查看结果树

5. Jmeter 断言

定义:检查实际的返回结果是否与预期结果保持一致

自动校验机制: 自动判断响应状态码(2xx:成功,4xx/5xx:失败)

jmeter断言:

  • 响应断言:对任意格式的响应数据进行断言
  • json断言:对json格式的响应数据进行断言
  • 持续时间断言:对响应时间进行断言

5.1 响应断言

使用场景:任意HTTP请求的响应结果,都可以使用响应断言

1) 添加线程组

2)添加HTTP请求

3)添加响应断言

测试字段:要检查的项; 模式匹配规则:比较方式; 测试模式:预期结果

4)添加查看结果树

5.2 JSON断言

使用场景:对HTTP请求的响应结果为json格式时,可以使用json断言

1)添加线程组

2)添加HTTP请求

3)添加json断言:

  • 填写Assert JSON Path exists :用于断言的json元素的路径,比如 $.data.location.name
  • Additionally assert value:勾选是使用某个值生成断言
  • Match as regular expression:使用正则表达式来断言

案例:https:/weather.cma.cn/api/now/54398

检查, 返回的json数据中, name对应的是顺义

5.3 断言持续时间

场景:测试HTTP请求的响应时间是否满足要求时,可以使用断言持续时间

1)添加线程组

2)添加HTTP请求

3)添加断言持续时间(单位:ms)

4)添加结果树

案例: 程序时间是否大于20ms

相关推荐

  1. jmeter 的beanshell使用

    2024-04-09 20:52:02       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 20:52:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 20:52:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 20:52:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 20:52:02       18 阅读

热门阅读

  1. 动态指定easyui的datagrid的url

    2024-04-09 20:52:02       15 阅读
  2. 使用asp查询数据库,返回json格式数据

    2024-04-09 20:52:02       13 阅读
  3. 數學實驗(Matlab 語言應用)實驗二+實驗三

    2024-04-09 20:52:02       14 阅读
  4. el-tree实现懒加载

    2024-04-09 20:52:02       13 阅读
  5. MySQL 中datatime 与 timestamp区别

    2024-04-09 20:52:02       11 阅读
  6. [阅读笔记] 电除尘器类细分市场2023年报

    2024-04-09 20:52:02       10 阅读
  7. 10. TypeScript面向对象的类(Class)

    2024-04-09 20:52:02       12 阅读
  8. 【前端基础】文字逐渐显示效果

    2024-04-09 20:52:02       13 阅读
  9. 组合模式:构建灵活的树形结构

    2024-04-09 20:52:02       12 阅读
  10. SpringBoot和SpringCloud,SpringCloudAlibaba版本依赖关系

    2024-04-09 20:52:02       10 阅读