从0开始Jmeter接口测试实战

news2024/9/28 3:23:32

在之前的文章中给大家介绍过接口测试文档和接口测试用例示例,本文基于Jmeter工具给大家介绍一下如何实现接口测试用例:包括发起Http请求,绕过登陆,验证响应。JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外,JMeter在接口测试方面也有广泛的应用。

接口测试用例示例
在这里插入图片描述

 

组织测试用例

Jmeter是绿色安装,官网(https://jmeter.apache.org/download_jmeter.cgi)下载安装包以后解压即可使用。打开Jmeter,命名测试计划,在测试计划下新建线程组,在线程组下编写接口请求,保存Jmeter测试计划为Jmeter脚本(.jmx文件)。

一个Jmeter测试计划下可以有多个线程组,一个Jmeter线程组下可以有多个Jmeter请求

Jmeter测试计划对应手工测试用例的Suite,Jmeter线程组对应手工测试用例的TestCase,Jmeter请求对应手工测试用例的Test Step

根据接口测试用例,编写出如下测试脚本大纲:
在这里插入图片描述

发起Http请求

Http请求包含三部分,Jmeter使用Sampler->Http请求 发起Http请求

请求行(HTTP协议和请求的URL,在Http请求中编写)

请求头(头信息,选填,可在Http信息头管理器中编写请求头信息)

请求体(POST请求有请求体信息,GET请求的参数在请求行当中,在Http请求中编写)

以新增用户成功为例,主要编写如下信息:

测试服务器信息:协议,服务器名称或IP,服务器端口号

接口信息:接口路径和接口方法

接口请求参数
在这里插入图片描述

绕过登陆

服务端通常都有认证授权机制,在成功发起接口请求并且获取结果以前是需要绕过登陆的,根据不同的认证授权机制,Jmeter提供了不同的组件支持,本示例是通过Cookie绕过登陆。通过Cookie绕过登陆需要添加HttpCookie管理器,在Cookie管理器中添加相应的Cookie信息,可以通过Chorme工具抓取Cookie信息。


在这里插入图片描述
在这里插入图片描述

 

断言响应结果

发起Http请求是为了获取响应结果并进行数据验证,Jmeter提供了多种断言组件(响应断言,Json断言,Beanshell断言),本文基于Json断言实现响应报文的校验。选中Http请求,右键添加JSON Assertion,提取响应报文的内容并判定响应报文和预期的结果是否一致,此处通过验证响应消息为“保存会员成功”来验证请求成功的执行并返回结果。


在这里插入图片描述

获取接口测试运营结果

运行Jmeter脚本,通过添加监听器监听测试结果,通常用查看结果树来监听测试结果,详情如下:
在这里插入图片描述

至此,一个简单的Jmeter脚本就编写完毕,在实际的接口测试实现过程中,还需要考虑参数化,多接口的参数传递,数据库的处理,同学们可以参照官网示例不断学习,后续公众号也会继续讲解~ 

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

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

相关文章

Python|Pyppeteer操作浏览器,弹出文件选择框,实现自动选择“指定文件”(14)

前言 本文是该专栏的第14篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 使用pyppeyeer操作浏览器的时候,可能有时候会遇到这样的情况,如下图所示: 通过程序脚本自动点击某个按钮之后,触发一个弹出框,需要输入对应的文件路径。经验丰富的同学,可能会想到…

深入浅出 - 单例模式

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

【MySQL】幽深不可测,登此方觉心

详解Mysql安装教程 一、MySQL基础 1、MySQL是什么? MySQL是一种用关系型数据库管理系统的软件。它是一种开源数据库,可以利用它来存储、管理和访问各种类型的数据。MySQL可用于多种应用程序,包括网站、电子商务系统、移动应用程序、企业级应用程序等…

Clickhouse物化视图原理和使用详解

前言 ClickHouse广泛用于用户和系统日志查询场景中,主要针对于OLAP场景,为业务方提供稳定高效的查询服务。在业务场景下,数据以不同的格式、途径写入到clickhouse。用传统JOIN方式查询海量数据,通常有如下痛点: 每个查询的代码冗…

【Java】ConcurrentHashMap1.8源码保姆级解析

目录 ConcurrentHashMap 1.8的优化 初始化流程 扩容流程 读取数据流程 计数器的实现 ConcurrentHashMap 1.8的优化 存储结构的优化 数组链表 -> 数组链表红黑树 写数据加锁的优化 扩容的优化(协助优化) 计数器的优化 LongAddr -> Cell[] 分…

力扣算法练习(二)

主要参考自力扣官网解法 1.最长回文子串(5) 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出:"bab"…

【Java】JVM学习(七)

JVM调优 堆空间如何设置 在分代模型中,各分区的大小对GC的性能影响很大。如何将各分区调整到合适的大小,分析活跃数据的大小是很好的切入点。 活跃数据的大小:应用程序稳定运行时长期存活对象在堆中占用的空间大小,也就是Full …

Git安装及使用图文教程详解(附带安装文件)

Git安装及使用图文教程详解(附带安装文件) 原创:丶无殇  2023-06-26 文章目录 下载安装下载安装验证安装成功版本查看 基础指令Git常用指令【首次必须】设置签名用户、邮箱1.初始化本地仓库2.查看本地库状态3.创建文件4.添加文件至暂存区5…

【DCT变换】Python矩阵运算实现DCT变换

一、前言 DCT变换(离散余弦变换) 是数字图像处理过程中广泛采用的一种操作,用于将空域的图像转换为频域表示,从而能够更有效地进行压缩、滤波和特征提取等处理。它在许多应用领域中发挥着重要的作用,尤其在图像和视频…

感知机(Perceptron)的原理及实现

1.感知机(Perceptron)的原理及实现 声明:笔记来源于《白话机器学习的数学》 感知机是接受多个输入后将每个值与各自权重相乘,最后输出总和的模型。 单层感知机因过于简单,无法应用于实际问题,但它是神经网络…

一文让你搞定接口测试

一、什么是接口测试? 所谓接口,是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据库的对接。而接口测试,则是通过接口的不同情况下的输入,去对比输出,看看是否满足接口规范所规定的功能、…

二叉树知识小结

思维导图: 一,树 树,这是一种对计算机里的某种数据结构的形象比喻。比如这种: 这种: 这种: 这几种都是树形结构。在百度百科中对树形结构的定义如下: 树形结构指的是数据元素之间存在着“一对多”的树形关系…

津津乐道设计模式 - 建造者模式详解(教你如何构造一个专属女友)

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…

接口测试断言详解(Jmeter)

接口测试是目前最主流的自动化测试手段,它向服务器发送请求,接收和解析响应结果,通过验证响应报文是否满足需求规约来验证系统逻辑正确性。接口的响应类型通过Content-Type指定,常见的响应类型有: • text/html &…

Android Jetpack Compose之轻松添加分隔线:Divider组件

引言: 在构建用户界面时,有效地组织和分隔内容是至关重要的。这就是Android Jetpack Compose的Divider组件派上用场的地方。在这篇博客中,我们将详细了解Divider组件的功能和用法,并通过示例展示如何将其融入您的Compose UI。 Je…

自动化测试和性能测试面试题精选

自动化测试相关 包含 Selenium、Appium 和接口测试。 1. 自动化代码中,用到了哪些设计模式? 单例模式工厂模式PO模式数据驱动模式 2. 什么是断言? 检查一个条件,如果它为真,就不做任何事,用例通过。如果…

8年资深测试总结,自动化测试成功实施,你不知道的都在这...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 什么项目&#xf…

python:并发编程(二十七)

前言 本文将和大家一起探讨python并发编程的实际项目:Locust性能测试(篇一,共N篇),系列文章将会从零开始构建项目,并逐渐完善项目,最终将项目打造成适用于高并发场景的应用。 本文为python并发…

分支定价算法求解VRPTW问题(代码非原创)

参考文献:微信公众号“程序猿声”关于分支定价求解VRPTW的代码 A tutorial on column generation and branch-and-price for vehicle routing problems 框架 对于VRPTW问题,先做线性松弛,调用列生成算法(一种解决大型线性规划问…

Docker网络之Network Namespace

Docker网络中相关的命令非常少,但需要掌握的底层原理却又非常多。 1.Network Namespace Docker网络底层原理是Linux的Network Namespace,所以说对于Linux Network Namespace的理解对Docker网络底层原理的理解就显得尤为重要了。 2.需求 通过手工的方式…