Jmeter接口测试总结

🍅 视频学习:文末有免费的配套视频可观看

🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快

Jmeter介绍&测试准备

Jmeter介绍:Jmeter是软件行业里面比较常用的接口、性能测试工具,下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库。

前期准备:测试前,需要安装好Jmeter以及jdk并配置好jdk环境变量。

JDK下载地址:Java Downloads | Oracle

Jmeter下载地址:Apache JMeter - Download Apache JMeter

Jmeter为免安装版本,下载后进行解压,双击bin目录下面的jmeter.bat文件即可启动jmeter .

启动jmeter之后,会看到左侧有一个“测试计划”,测试计划可以理解为一套测试环境,测试计划下面可以添加不同的线程组,相当于不同的测试套。线程组下面可以添加具体的测试用例脚本。

添加线程组的流程:右键点击测试计划->点击“添加”->点击Threads(Users)->点击线程组。

五种请求介绍:这里介绍get/post/带cookie/带Header/上传文件五种请求的测试。

get请求:get请求是最简单的请求方式,输入正确的域名地址或者IP地址 ,添加路径和请求方式,启动后即可。

第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求。

第二步:右键点击线程组->点击添加->监听器->查看结果树。

第三步:点击请求->输入ip地址或者域名->选择请求方式为GET->输入路径->点击启动按钮。

第四步:点击查看结果树->查看执行结果

post请求:post请求跟get的区别除了请求方式不同之外,还需要添加请求体,请求体内容多半为json格式。

第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
第三步:点击请求->输入ip地址或者域名->选择请求方式为POST->输入路径->输入请求参数->点击启动按钮。

第四步:点击查看结果树->查看执行结果——同get请求

带cookie的请求:该请求需要添加HTTP Cookie管理器。

第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
第三步:右键点击线程组->点击添加->配置元件->HTTP Cookie管理器->点击Cookie管理器添加Cookie值。

第四步:点击请求->输入ip地址或者域名->选择请求方式为POST->输入路径->输入请求参数->点击启动按钮。——同POST请求

第五步:点击查看结果树->查看执行结果——同get请求

带Header的请求:该请求需要添加HTTP信息头管理器。

第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
第三步:右键点击线程组->点击添加->配置元件-HTTP信息头管理器->填写信息头内容

第四步:点击请求->输入ip地址或者域名->选择请求方式为GET->输入路径->点击启动按钮。——同GET请求

第五步:点击查看结果树->查看执行结果——同get请求

文件上传的请求:需填写上传文件的路径。

第一步:右键点击线程组->点击添加->点击Sampler->点击HTTP请求——同get请求
第二步:右键点击线程组->点击添加->监听器->查看结果树。——已添加的话,这步可以省略。
第四步:点击请求->输入ip地址或者域名->选择请求方式为POST->输入路径->点击Files Upload->点击添加按钮->点击浏览->点击本地文件->输入参数名称->输入MIME类型->点击启动按钮。


第五步:点击查看结果树->查看执行结果——同get请求

其他功能介绍

参数化:所谓参数化就是我们可以将需要传入的参数写到某个配置文件中,配置好参数 ,即可使用配置文件内的参数。

第一步:添加配置元件->CSV Data Set Config

第二步:本地新建一个user.txt的配置文件,输入用户名,密码,逗号隔开,将文件放到Jmeter安装路径的/bin目录下。

第三步:点击CSV Data Set Config,配置变量,输入文件名称,定义参数名称,逗号隔开。

第四步:新建请求,步骤同上面的post请求。点击请求名称->输入域名->选择请求方式->输入路径->名称地方输入变量名->值的地方输入在CSV Data Set Config里面配置的变量名->点击启动按钮->查看结果树。

函数助手:Jmeter具备一个函数助手的功能,里面集成了常见函数的使用,这里介绍下随机函数Random和时间函数time的使用。

函数助手__Random:点击菜单栏的选项->函数助手对话框->选择一个功能__Random->输入范围的最小值&最大值->点击“生成”按钮->将生成的函数变量带入到请求内。

函数助手__time:选项->函数助手对话框->选择一个功能__time->输入时间格式->点击“生成”按钮->将生成的函数变量带入到请求内。

关联:所谓关联就是让不同的请求之间的参数形成关联关系,比如说将上一个请求的出参,当作下个请求的入参,该方法可以让多个脚本都串连起来,从而达到连跑的效果。

新建请求->右键点击请求添加后置处理器->JSON Extractor

点击JSON Extractor->输入变量名称->输入json表达式(json的层级关系用.点号来区分)

新建新请求->传入变量值(传入上一个请求提取的参数),这样就将两个请求的参数关联起来了。

添加断言(响应断言):判断一个请求是否成功,除了校验返回码,有时候还要校验返回体的内容是否正确,jmeter可以添加断言来检查结果。

右键点击请求->添加->断言->响应断言

点击响应断言->选择测试的响应字段->选择匹配规格->添加匹配的字段

Jmeter操作数据库:jmeter还可以通过调用jdbc接口对数据库进行远程操作,这里以mysql为例。

前期准备:需准备好mysql的jdbc驱动包:mysql-connector-java-5.1.7-bin.jar。

驱动包下载地址:MySQL :: Download Connector/J

添加驱动包:点击测试计划->点击“浏览”->添加本地驱动包

添加线程组:右键点击测试计划->点击“添加”->点击Threads(Users)->点击线程组->修改线程组名称为“操作数据库”

添加JDBC连接配置:右键点击线程组->添加->配置元件->JDBC Connection Configration

配置JDBC连接参数:定义变量名->输入DatabaseURL->JDBC驱动类->数据库用户名->数据库用户密码。

  • URL:jdbc:mysql://${host+port}/${database_name}?allowMultiQueries=true&characterEncoding=utf-8(host、port、database_name换成对应的值),allowMultiQueries=true是允许多次查询,characterEncoding=utf-8是为了防止中文乱码的情况。
  • JDBC驱动类:com.mysql.jdbc.Driver(固定)
  • Username:数据库的用户名
  • Password:数据库用户密码

添加JDBC请求:右键点击线程组->添加->Sampler->JDBC Request

配置请求:点击JDBC请求->输入配置的变量名->选择查询类型(Callable代表支持所有的sql语句)->输入数据库语句。

添加查看结果树->启动->查看执行结果(返回结果为绿色代表执行成功)。

Jmeter使用常见问题

jmeter jdbc 中文乱码:连接池url后面添加characterEncoding=utf-8

接口返回体内容有乱码情况:

  • 进入jmeter的/bin目录,打开jmeter.properties
  • 找到"#sampleresult.default.encoding=ISO-8859-1"
  • 去掉#,将ISO-8859-1修改成utf-8
  • 重启jmeter

win10系统上传文件接口报错的问题:将需要上传的文件直接放到jmeter安装目录的/bin目录下。

同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看就行,希望对你有所帮助!【公众号:互联网杂货铺】免费领取软件测试资料。

【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode:1706. 球会落何处(Java 模拟)

目录 1706. 球会落何处 题目描述: 实现代码与解析: 原理思路: 1706. 球会落何处 题目描述: 用一个大小为 m x n 的二维网格 grid 表示一个箱子。你有 n 颗球。箱子的顶部和底部都是开着的。 箱子中的每个单元格都有一个对角线…

ubuntu 20.04 使用 webrtc-streamer自动退出,报错GLIBC 问题解决方法

文章目录 前言Ubuntu 20.4中使用webrtc-streamer报错总结 前言 前端vue2 项目需要播放海康的视频流,本地启动起来了,现在需要的服务器上部署,服务器是Ubuntu 20.04,下面是部署时遇到的问题及解决方法,总耗时2天。 不知…

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models导读

通过生成一系列中间推理步骤(即“思维链”)显著提高大型语言模型进行复杂推理的能力 这篇论文探讨了如何通过生成一系列中间推理步骤(即“思维链”)显著提高大型语言模型进行复杂推理的能力。研究人员使用一种简单的方法——思维…

司铭宇老师:汽车销售培训:汽车销售员培训:汽车销售技巧培训:汽车销售技巧和话术

汽车销售培训:汽车销售员培训:汽车销售技巧培训:汽车销售技巧和话术 汽车销售是一项充满挑战性的工作,它需要销售人员具备良好的沟通技巧、谈判技巧以及产品讲解能力。在这篇文章中,我们将详细探讨汽车销售中的技巧和话…

iOS推送通知

文章目录 一、推送通知的介绍1. 简介2. 通知的分类 二、本地通知1. 本地通知的介绍2. 实现本地通知3. 监听本地通知的点击 三、远程通知1. 什么是远程通知2. 为什么需要远程通知3. 远程通知的原理4. 如何做远程通知5. 远程通知证书配置6. 获取远程推送要用的 DeviceToken7. 测试…

Spring Security 存储密码之 JDBC

Spring Security的JdbcDaoImpl实现了UserDetailsService接口,通过使用JDBC提供支持基于用户名和密码的身份验证。 JdbcUserDetailsManager扩展了JdbcDaoImpl,通过UserDetailsManager接口提供UserDetails的管理功能。 当Spring Security配置为接受用户名/密码进行身份验证时,…

5|领域建模实践(上):怎样既准确又深刻地理解业务知识?

上节课咱们完成了事件风暴,梳理了系统的行为需求。但你可能也发现了,其实还有些微妙的业务概念还没有澄清,这就要靠领域建模来完成了。 建立领域模型是 DDD 的核心。要建好领域建模,需要理论和实践相结合。由于我们的模型有一定的…

vue3+elementPlus pc和小程序ai聊天文生图

websocket封装可以看上一篇文章 //pc端 <template><div class"common-layout theme-white"><el-container><el-aside><div class"title-box"><span>AI Chat</span></div><div class"chat-list&…

【软件测试】学习笔记-构建并执行 JMeter 脚本的正确姿势

有些团队在组建之初往往并没有配置性能测试人员&#xff0c;后来随着公司业务体量的上升&#xff0c;开始有了性能测试的需求&#xff0c;很多公司为了节约成本会在业务测试团队里选一些技术能力不错的同学进行性能测试&#xff0c;但这些同学也是摸着石头过河。他们会去网上寻…

一天吃透计算机网络面试八股文

面试网站&#xff1a;topjavaer.cn 目录&#xff1a; 网络分层结构三次握手两次握手可以吗&#xff1f;四次挥手第四次挥手为什么要等待2MSL&#xff1f;为什么是四次挥手&#xff1f;TCP有哪些特点&#xff1f;说说TCP报文首部有哪些字段&#xff0c;其作用又分别是什么&…

idea结合git回到某个提交点

概述&#xff1a;在IntelliJ IDEA中&#xff0c;你可以使用Git工具来回到某个提交点。 第一步&#xff1a;打开idea&#xff0c;打开git的管理面 可以看到&#xff0c;由于我的大改动&#xff0c;导致现在出问题了&#xff0c;所以我准备回退到某一版本。 点击左下角的git 点…

使用IntelliJ IDEA快速搭建springboot 基础模板项目

使用IntelliJ IDEA快速搭建springboot 基础模板项目&#xff01;今天和大家分享一下&#xff0c;如何使用IntelliJ IDEA里面的maven插件&#xff0c;来快速搭建一个简单的Springboot基础项目。 第一步&#xff0c;菜单里面找到&#xff0c;文件-》新建-项目。如图。我们勾选了是…

这是一片测试文章

这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 真的是测试文章 -111122225555444433333333222211111 dddddaaa

sklearn 学习-混淆矩阵 Confusion matrix

混淆矩阵Confusion matrix&#xff1a;也称为误差矩阵&#xff0c;通过计算得出矩阵的结果用来表示分类器的精度。其每一列代表预测值&#xff0c;每一行代表的是实际的类别。 from sklearn.metrics import confusion_matrixy_true [2, 0, 2, 2, 0, 1] y_pred [0, 0, 2, 2, 0…

高中数学:集合

一、基本概念与关系 1、元素 2、集合 集合中元素的特性 1、确定性。2、无序性。3、互异性。 3、空集&#xff0c;用∅符号表示 4、元素与集合的关系是属于关系&#xff0c;用∈符号表示 5、集合与集合的关系是包含关系。用⊆或者⊊符号表示 子集与真子集。 A⊊B > A⊆B 反之…

Microsoft Remote Desktop for Mac(远程桌面连接)激活版

Microsoft Remote Desktop是一款由微软开发的远程桌面连接工具&#xff0c;它允许用户从另一台计算机或移动设备远程连接到Windows桌面或服务器。 以下是该软件的一些主要特点和功能&#xff1a; 跨平台支持&#xff1a;Microsoft Remote Desktop支持Windows、macOS、iOS和Andr…

数据结构(顺序表)

文章目录 一、线性表1、线性表1.1、线性表的定义1.2、线性表的操作 2、顺序表2.1、顺序表的实现--静态分配2.2、顺序表的实现--动态分配2.2、顺序表的特点 3、顺序表的基本操作3.1、插入操作3.2、删除操作3.3、查找操作3.2、按位查找3.2、按值查找 一、线性表 1、线性表 1.1、…

第二百八十八回

文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取文件类型"相关的内容&#xff0c;本章回中将介绍如何播放视频.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用…

Docker Registry(镜像仓库)

什么是Docker Registry 镜像仓库负责存储&#xff0c;管理和分发镜像&#xff0c;并且提供登入认证能力&#xff0c;建立仓库的索引。镜像仓库管理多个repositoy&#xff0c;repositoy通过命名来区分。每个repository包含一个或多个镜像&#xff0c;镜像通过镜像名称和标签&am…

k8s从初识到上天系列第二篇:kubernetes的组件和架构

&#x1f609;&#x1f609; 欢迎加入我们的学习交流群呀&#xff01; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、SpringSecurity、Docker、Grpc、各种MQ、Rpc、SpringCloud等等很多应用和源码…