IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> JMeter使用教程(一) -> 正文阅读

[开发测试]JMeter使用教程(一)

Apache JMeter是Apache组织开发的一款开源软件,是典型的纯Java开发的应用程序,可以在不同平台比如Windows、Linux或macOS系统上进行软件测试。JMeter主要用于应用程序的功能负载测试以度量软件的性能,也可以用于其他类型的测试比如接口测试,API测试等。

01测试计划

一个测试计划用来定义这次要测试的内容。

保存后的测试计划是一个.jmx文件。

可以导入已有的测试计划jmx文件;

可以在测试计划中添加其他各个组件,完成测试;

?

1.1配置

独立运行每个线程组勾选后,独立运行每个线程组,确保线程组1的执行一定在线程组2之前;不勾选,运行时测试计划下所有线程组同时执行;

主线程结束后运行tearDown:默认是从上到下执行;交替控制器、随机控制器、随机顺序控制器和循环控制器等可以改变取样器的执行顺序;

函数测试模式:如果选中此项,监听组件如“查看结果树”配置了保存到一个文件中,那么jmeter会将每次请求结果保存到文件中,不建议勾选;

添加目录或jar包到ClassPath:可以引入测试项目特有的jar等。

1.2操作

运行、清除

[启动]:执行测试计划下所有启用状态的节点。

[清除]:清除运行结果。

02线程组

【添加线程组】测试计划->添加->线程->线程组

线程组:模拟一定数量的并发用户发送请求,在线程组下配置用户要进行的操作(如添加http请求)

虽然有三个添加线程组的选项,名字不一样,?创建之后,其界面是完全一样的。

1)?setup 线程组

可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

2)?teardown 线程组

可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

3) 线程组

这个就常用添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

配置信息

[线程属性]:相当于要模拟的虚拟用户数,以及启动线程的时间,循环的次数。

[线程数]:虚拟用户数。

[Ramp-Up 时间]:多长时间启动全部线程,单位秒。如配置为1,即表示在1秒结束前启动完所有线程。每个线程启动的延迟时间=线程数,如线程数是1,即表示每隔1秒启动1个线程。如果要模拟测试绝对并发,可以把Ramp-Up 时间配置为0。

[循环次数]:即每个线程发送请求的次数。勾选永远,即一直执行,直到强制停止。

[在取样器错误后要执行的动作]:默认选择继续、启动下一个进程循环、停止线程、停止测试、立刻停止测试。

[调度器]:勾选后可以配置线程组持续时间、启动延迟。

?

03取样器

取样器:模拟各种请求,如http请求等。

【添加取样器】线程组->添加->取样器

目前最常用的是HTTP请求

04断言

可以添加断言配置测试的期望值,执行时jmeter会判断请求响应的结果是否与期望值一致。

【添加断言】测试计划/线程组/请求->添加->断言(有多种断言方式)

断言中有很多类型,我们常用的是响应断言

4.1响应断言

响应断言编辑页面,可选择断言应用范围和要测试的响应字段,匹配规则等。

(1)Apply to(应用范围?):?Main sample and sub-samples,Main sample only , Sub-samples only ,Jmeter Variable 一共4种。

大多数勾选“,Main sample only”?就足够了,因为一个请求,实质上只有一个请求。

(2)响应字段:响应文本,响应代码,响应信息,响应头,请求头,URL样本,文档(文本),请求数据一共8种

  • 响应文本:?服务器响应文本,一般普通http响应,通常勾选这个

  • 响应代码:http响应代码,

例如:101,102,404,505等
  • 响应信息:http响应代码对应的响应信息

例如:OK, Found

????????HTTP/1.1 200 Ok

????????HTTP/1.1 302 Found
  • 头:响应头信息

例如:? ?????????????

? Cache-Control:private

????Connection:Keep-Alive

 ?Content-Encoding:gzip

? ??Content-Length:84?

  Content-Type:text/html;charset=utf-8

 ?Date:Sun, 27?Jul 2021?08:08:03 GMT
? ? Expires:Sun, 27?Jul 2021?08:08:03 GMT
? ??Server:BWS/1.0
? ??Vary:Accept-Encoding
  • 请求头:请求头信息

例如:? ?????????????

????Accept:text/plain, */*; q=0.01
 ?Accept-Encoding:gzip, deflate, sdch
 ?Accept-Language:zh-CN,zh;q=0.8
 ?Connection:keep-alive
 ?Cookie:XXX
 ?Host:www.baidu.com
 ?Referer:https://www.baidu.com/
 ?X-Requested-With:XMLHttpRequest

(3)模式匹配规则:包括、匹配、相等、字符串、否、或者

  • ?包括:返回结果包括指定的内容,支持正则匹配

例如:

????响应字段为:响应文本

 ?模式匹配规则:匹配

 ?断言为:1、success ? ?2、[a-z]+

 ?当返回值为:{"msg":"login success."}?, 这两个断言都是ok的,返回true
  • 匹配:   

????????????(1)?相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同

   (2)?正则匹配 。用正则表达式匹配返回结果,但必须全部匹配。即正则表达式?必须能匹配整个返回值,而不是返回值的一部分。

? 例如:

????响应字段为:响应文本

????模式匹配规则:匹配

????断言为:1、{"msg":"login success."},2、\{"msg":"[a-z]+ success\."\} ,3、[a-z]+

????当返回值为:{"msg":"login success."}? ?,断言1 2 是ok的, 断言3是false,原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。
  • 相等?:?返回结果与指定断言完全一致

  • 字符串:与?“包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串?

例如:

????响应字段为:响应文本

????模式匹配规则:匹配

????断言为:1、success ? ?2、[a-z]+

????当返回值为:{"msg":"login success."}?, 断言1返回true, 但断言2返回false
  • 否:就相当于取反。如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true


🎙?我是一个热衷分享测试干货的软件测试工程师
🎆欢迎点赞 👍 收藏、留言 📝 如有错误敬请指正!
??获取更多干货,可以关注公众号:软件测试开发区

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:12:24  更:2022-08-06 11:12:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:48:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码