一文2500字从0到1使用JMeter进行接口测试教程!

news2024/11/18 1:36:59

安装

  1. 使用JMeter的前提需要安装JDK,需要JDK1.7以上版本
  2. 目前在用的是JMeter5.2版本,大家可自行下载解压使用

运行

  1. 进入解压路径如E: \apache-jmeter-5.2\bin,双击jmeter.bat启动运行

  1. 启动后默认为英文版本,可通过Options – Choose Language – Chinese(Simplified) 设置为中文版

JMeter进行接口测试流程

1.测试计划,可以理解为被测项目,下面可以添加一系列待测接口。

可自定义名称,便于自己理解。

2.线程组,在测试计划上鼠标右击 – 添加 – 线程(用户)- 线程组。

一个线程组可以当做一个虚拟用户组,线程组中每个线程都可以裂解为一个虚拟用户。这个在性能测试中会用到,接口测试暂时不用关注,默认值为1即可。

3.HTTP请求默认值,线程组上鼠标右击 – 添加 – 配置元件 – HTTP请求默认值

进行接口测试时需要填写协议,IP地址及端口号,为了避免重复操作,可在线程组下添加HTTP请求默认值,填入协议、IP地址和端口号,这样后续的HTTP请求中就不用每次都填写了。
 

4.HTTP信息头管理,线程组上鼠标右击 – 添加 – 配置元件 – HTTP信息头管理

如果请求参数非json格式,可以不用添加此元件。

该元件是针对传入参数为json格式,需添加名称为Content-Type,值为application/json

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。

如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受

可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛

分享他们的经验,还会分享很多直播讲座和技术沙龙

可以免费学习!划重点!开源的!!!

qq群号:1150305204【暗号:csdn999】

5.HTTP请求,线程组上鼠标右击 – 添加 – 取样器 – HTTP请求

HTTP请求主要包括请求方法、请求路径和请求参数。

由于协议、IP地址、端口号已经在HTTP请求默认值进行了设置,所以此处可以为空。

(1)传入非json格式的参数,可以直接在HTTP请求面板中【参数】下进行添加:填写参数名称与对应的值

(2)传入json格式参数,如果参数值存在中文的情况,内容编码需为utf-8格式,避免乱码情况的发生

6.断言,主要目的是检查接口是否访问成功。断言的方式比较多,包含响应断言、JSON断言,大小断言,JSR223断言等等,一共提供15种断言方式,一般常用的主要是响应断言,也可以用JSON断言。对于复杂的接口,可借助BeanShell断言。

这里主要介绍响应断言的用法。

HTTP请求上鼠标右击 – 添加 – 断言 – 响应断言

详情如图:

Apply to 指断言的作用范围,一般情况下发出一个请求只触发一个请求,所以默认勾选Main sample only即可。下面针对四种选项做个说明:

(1) Main sample and sub-samples:作用于主请求和子请求

(2) Main sample only:仅仅作用于主请求

(3) Sub-sample only:仅仅作用于子请求

(4) J Meter Variable:作用于j meter变量(输入框填写变量名称)

响应字段 主要包含响应文本、响应代码、响应信息、响应头、请求头、URL样本、文档(文本)、忽略状态、请求状态,下面针对每种方式做个说明:

(1) 响应文本,一般匹配返回的json数据,需要结合模式匹配规则进行校验

根据响应文本的测试模式”records”(*?)匹配到内容,只要包括这些内容,则判断接口执行通过。

(2) 响应代码,匹配返回码,如200,404,500等

(3) 响应信息,匹配响应信息,如OK, Sucess字样

(4) 响应头,匹配响应头

(5) 请求头,匹配请求头

(6) URL样本,匹配请求的url链接,如果有重定向则包含请求url和重定向url

(7) 文档(文本),匹配响应数据的文本格式

(8) 忽略状态,一个请求有多个响应断言,第一个响应断言选中此项时,如果第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。如果下一个断言成功则还是判定事务是成功的

(9) 请求数据,匹配请求数据

实际比较常用的是响应文本、响应代码、响应信息,这三种还是无法满足的则继续补充其他字段。

模式匹配规则,有包括、匹配、相等、字符串、否、或者。

(1) 包括,响应内容包括需要匹配的内容就表示响应成功,可结合正则表达式进行

(2) 匹配,响应内容要完全匹配需要匹配的内容就表示响应成功,可结合正则表达式进行

(3) 相等,响应内容要完全等于需要匹配的内容才代表响应成功,不支持正则表达式

(4) 字符串,响应内容包含需要匹配的内容才代表成功,不支持正则表达式

(5) 否,相当于取反,如果结果是True,勾选上“否”那结果就是False

(6) 或者,可以用于将多个断言模式进行连接,只要一个模式匹配,断言就代表成功

测试模式,其实就是填写自己的预期值。

7.监听器-察看结果树,主要用于查看接口执行情况,以树形结构显示接口访问结果,包含取样器结果、请求与相应数据。

线程组上鼠标右击 – 添加 – 监听器 – 察看结果树

监听器还包含其他形式如汇总报告、聚合报告、后端监听器等,接口测试主要用到的就是察看结果树。

通过察看结果树可以了解接口执行情况,如果执行失败需要看下错误信息。

至此,使用J Meter进行常用的接口测试就结束了,实际使用过程遇到的特殊情况可以及时反馈(其实和Postman测试接口大同小异~)

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1488546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于拖拽功能

文章目录 写在前面自己手动实现拖拽的demo技术细节:Js中拖拽(拉)事件(drag 和 drop)浏览器兼容性拖拽Api的介绍拖拽流程1.dragstart事件2.dragenter事件3.dragover事件4.drop事件(必须要dragover事件触发)5.dragend事件MDN关于拖拽的解析 相关…

独立游戏《星尘异变》UE5 C++程序开发日志2——创建并编写一个C++类

在本篇日志中,我们将要用一个C类来实现一个游戏内的物品,同时介绍UCLASS、USTRUCT、UPROPERTY的使用 一、创建一个C类 我们在UE5的"内容侧滑菜单"中,在右侧空白中右键选择"新建C类",然后可以选择一个想要的…

GEE代码条带问题——sentinel-1接缝处理的问题

问题 我有兴趣确定 NDVI 损失最大的年份。我创建了一个函数来收集所有陆地卫星图像并应用预处理。当我导出结果以识别 NDVI 损失最大年份时,生成的数据产品与陆地卫星场景足迹有可怕的接缝线。造成这种情况的原因是什么以及如何调整代码? sentinel1数据…

大模型基础应用框架(ReACT\SFT\RAG)创新及零售业务落地

如何将大语言模型的强大能力融入实际业务、产生业务价值,是现在很多公司关注的焦点。在零售场,大模型应用也面临很多挑战。本文分享了京东零售技数中心推出融合Agent、SFT与RAG的大模型基础应用框架,帮助业务完成大模型微调、部署和应用&…

华为数通方向HCIP-DataCom H12-821题库(多选题:61-80)

第61题 ACL 可分为如下哪些类别? A.用户自定义 ACL B.基本 ACL C.二层ACL D.高级ACL 【参考答案】ABCD 【答案解析】 A. 用户自定义 ACL (User-defined ACL): 这是用户根据自身需求自定义的 ACL,用于实现特定的访问控制策略。B.基本 ACL (Standard ACL): 基本 ACL 是基于源 …

逆向案例四、进阶,爬取精灵数据咨询前五十页数据

python代码示例: import csv import execjs import requests f open(精灵数据.csv,w,encodingutf-8,newline) csv_writer csv.DictWriter(f,fieldnames[标题,发布时间,新闻来源,详情页链接,转自,点击量,新闻作者,发布时间小时,]) csv_writer.writeheader() data [] for pa…

HTTP/2、HTTP/3分别解决了什么问题

总的来说就是HTTP/1.1是请求-响应模型导致队头阻塞问题,HTTP2是TCP层面导致队头阻塞问题 HTTP/2 多路复用,解决了HTTP/1.1队头阻塞问题 HTTP/1.1 的实现是基于请求-响应模型的。同一个连接中,HTTP 完成一个事务(请求与响应&…

【 10X summary report】怎么看?详细解读笔记

报告内容 在开始正式的分析之前,需要查看在对齐和计数过程中生成的任何总结统计信息。下图是由Cell Ranger工具创建的10X总结报告,在从10X scRNA-seq实验生成计数矩阵时会生成。 The left half of the report describes sequencing and mapping statist…

php开发项目 docx,pptx,excel表格上传阿里云,腾讯云存储后截取第一页生成缩略图

服务器或者存储上传的word,ppt和excel表格需要截取内容展示的时候,就需要管理后台每次上传文件时根据不同文件类型截取图片保存起来,并讲图片的地址保存到数据字段中.网上搜索了很多相关文章遇到的坑不少,经过2天时间终于完成了,将代码和遇到的问题完整记录下来. 本文用的…

基于SpringBoot+MYSQL的医护人员排班系统

基于springboot的医护人员排班系统录像 1、 前言介绍 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了医护人员排班系统的开发全过程。通过分析医护人员排班系统管理的不足,创建了一个计算机管理医护人员…

贪心 Leetcode 134 加油站

加油站 Leetcode 134 学习记录自代码随想录 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油…

企业内部培训考试系统题库导入功能设计

企业内部培训考试系统可自建题库,企业可以将已有的试题资源快速导入系统,系统具备智能选题功能,可以根据预设条件自动从题库中抽取试题,生成试卷,可以充分利用已有的教育资源,避免重复劳动,提高…

sc-MAVE

Deep-joint-learning analysis model of single cell transcriptome and open chromatin accessibility data单细胞转录组和开放染色质可及性数据的深度联合学习分析模型 在同一个细胞中同时分析转录组和染色质可及性信息为了解细胞状态提供了前所未有的解决方案。然而&#x…

[java] 23种设计模式之桥接模式

一、什么是桥接模式 桥接(Bridge)模式属于结构型设计模式。通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。 二、适用场景 当一…

计算机专业必看的十部电影

计算机专业必看的十部电影 1. 人工智能2. 黑客帝国3. 盗梦空间4. 社交网络5. Her6. 模仿游戏7. 斯诺登8. 头号玩家9. 暗网10. 网络迷踪 计算机专业必看的十部电影,就像一场精彩盛宴! 《黑客帝国》让你穿越虚拟世界,感受高科技的魅力《模仿游戏…

SDR架构 (一)为什么基带有I和Q路?

我之前做过自己的RTL-SDR。一直有一个疑惑。为啥rtl2832u芯片有一对差分I路,还有一对差分Q路。差分很好理解是为了抗干扰,但为啥要I和Q呢?并且我也知道不少人在自己修改的时候,保留I路对接在r820t2(跟原版一样&#xf…

重学SpringBoot3-@EnableConfigurationProperties注解

重学SpringBoot3-EnableConfigurationProperties注解 1. 引言2. EnableConfigurationProperties 的作用3. 使用示例4. 总结 1. 引言 Spring Boot 提供了一种便捷的方式来管理和校验应用程序的配置,即通过类型安全的配置属性。EnableConfigurationProperties 注解在…

【论文】Continuous Rapid Action Value Estimates阅读笔记

之前在阅读KR-UCT论文时,里面提到过与UCT结合的主要两种启发式方法旨在指导探索策略,通过使用渐进拓宽(PW)限制考虑的行动的数量,并使用快速行动价值估计(RAVE)选择最有前途的行动。因此找了一篇…

C++模板完整版

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp left…

[SpringCloud] OpenFeign核心架构原理 (一)

Feign的本质: 动态代理 七大核心组件 Feign底层是基于JDK动态代理来的, Feign.builder()最终构造的是一个代理对象, Feign在构建对象的时候会解析方法上的注解和参数, 获取Http请求需要用到基本参数以及和这些参数和方法参数的对应关系。然后发送Http请求, 获取响应, 再根据响…