Jmeter接口测试总结

news2024/9/27 2:45:40

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

🍅 关注公众号【互联网杂货铺】,回复 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.coloradmin.cn/o/1414569.html

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

相关文章

PositiveSSL多域名通配符证书买一年送一月

SSL数字证书是一种安全协议,用于在网络通信中提供加密和身份验证服务,是保护网站安全的重要手段之一。PositiveSSL是Sectigo旗下的子品牌,经营着各种SSL证书,例如,单域名SSL证书、多域名SSL证书、通配符SSL证书和多域名…

Java通过模板替换实现excel的传参填写

以模板为例子 将上面$转义的内容替换即可 package com.gxuwz.zjh.util;import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.*; import java.util.HashMap; import java.util.Map; import java.io.IOException; impor…

RISC-V RVWMO 内存模型解释

RISC-V RVWMO 内存模型解释 引言 本文介绍 RISC-V RVWMO 内存模型。RVWMO 内存模型定义了什么样的全局内存顺序才是合法的。本引言部分将解释为什么会出现不合法的全局内存顺序,以及为什么需要内存模型。 首先引起乱序的全局内存顺序(指令重排序&…

AI作画工具 stable-diffusion-webui 一键安装工具(A1111-Web-UI-Installer)

安装 下载最新版本确保你的 NVIDIA 显卡驱动程序是最新的(起码不能太老)启动安装程序在欢迎屏幕上单击下一步在屏幕上,选择要安装的内容如果你已经安装了 Python 3.10 和 Git,那么可以取消选中如果你不知道这些是什么&#xff0c…

精品基于Uniapp+springboot助农管理系统App农产品积分购物商城

《[含文档PPT源码等]精品基于Uniappspringboot助农管理系统App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: 开发语言:Java 后台框架:springboot、ssm 安卓…

解析MySQL生产环境CPU使用率过高的排查与解决方案

引言 在生产环境中,MySQL作为一个关键的数据库组件,其性能对整个系统的稳定性至关重要。然而,有时候我们可能会遇到MySQL CPU使用率过高的问题,这可能导致系统性能下降,应用页面访问减慢,甚至影响到用户体…

数据结构与算法——队列

概述 计算机科学中,queue 是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。添加的一端称为尾,移除的一端称为头。 功能 插入offer(value : E) : boolean  取值并移除poll() : E  取值peek() : E  判断…

Redis案例-微信抢红包

Redis案例-微信抢红包 1、业务描述 ​ 微信红包,一个人能发红包,红包的分发规则,红包能被几个人抢,超过24小时没有人领取自动退回原账户,红包详情页面有每个人的抢红包记录,包括金额大小和时间&#xff0…

统计学-R语言-7.3

文章目录 前言总体方差的检验一个总体方差的检验两个总体方差比的检验 非参数检验总体分布的检验正态性检验的图示法Shapiro-Wilk和K-S正态性检验总体位置参数的检验 练习 前言 本篇文章继续对总体方差的检验进行介绍。 总体方差的检验 一个总体方差的检验 在生产和生活的许多…

使用BootStrapBlazor组件搭建Bootstarp风格的Winform界面

项目地址https://gitee.com/zhang_jie_sc/my-blazor-winforms 1.安装Bootstrap.Blazor.Templates 模板 在power shell中输入dotnet new install Bootstrap.Blazor.Templates::7.6.1,安装7.6.1是因为版本8以后就要强制使用net8.0了,很多语法不一样&…

了解WPF控件:ToggleButton和Separator常用属性与用法(十三)

掌握WPF控件:熟练ToggleButton和Separator常用属性(十三) ToggleButton 一个按钮类UI元素,它的特点是拥有两种状态:选中(Checked)和未选中(Unchecked)。当用户单击Togg…

pve8.1 安装、创建centos7虚拟机及配置

之前创建虚拟机centos7时,硬盘分配太大了,做成模板后无法进行修改了,安装完pve8.1后,强迫症犯了重新创建一下顺便记录一下配置过程。由于目前centos7还是生产用的比较多的版本所以本次还是安装centos7.9版本。 一、下载镜像 下载…

使用 CDC MinIO 汇入端为 CockroachDB 保持持久数据

CockroachDB 数据库迅速崭露头角,作为一个坚韧且可扩展的分布式 SQL 数据库。它从其昆虫名字的坚持不懈中汲取灵感,即使面对硬件故障,CockroachDB 也能保证高可用性。其分布式架构横跨多个节点,类似于其昆虫原型的适应性。 凭借强…

dos攻击与ddos攻击的区别

①DOS攻击: DOS:中文名称是拒绝服务,一切能引起DOS行为的攻击都被称为dos攻击。该攻击的效果是使得计算机或网络无法提供正常的服务。常见的DOS攻击有针对计算机网络带宽和连通性的攻击。 DOS是单机于单机之间的攻击。 DOS攻击的原理&#…

JavaScript学习-原型和原型链

原型和原型链 示例代码 //创建一个Person类 class Person {constructor(name) {this.name name;}drink() {console.log(喝水);} } //创建一个Teacher类,继承Person class Teacher extends Person {constructor(name, subject) {super(name);this.subject subjec…

详细解读vcruntime140_1.dll修复的手段,如何快速解决vcruntime140_1.dll丢失问题

当出现“无法找到vcruntime140_1.dll”或程序“未能正常启动”时,这通常指示系统中缺失了一个关键文件:vcruntime140_1.dll。作为Visual C Redistributable组件的一部分,这个小文件在很多用Visual Studio编译的C程序运行时发挥着重要作用。解…

go语言(十八)---- goroutine

一、goroutine package mainimport ("fmt""time" )func main() {//用go创建承载一个形参为空,返回值为空的一个函数go func() {defer fmt.Println("A.defer")func() {defer fmt.Println("B.defer")//退出当前goroutinefmt…

P1042 [NOIP2003 普及组] 乒乓球 Java版最简单题解!

为什么说最简单,因为本人就是一个算法小白,只学过一点数据结构,打算备战蓝桥杯的,网上说备战蓝桥杯就去刷洛谷,早有听闻洛谷很难,今天一看算是真的被打醒了,对于小白是真的太难了。(;༎ຶД༎ຶ…

在Idea中使用git查看历史版本

idea查git历史 背景查看步骤总结 背景 有好几次同事到我电脑用idea查看git管理的历史记录,每次都说我的idea看不了历史版本,叫我到他电脑上去看,很晕,为什么,原来是我自己把显示历史文件的视图覆盖了,下面我们来一起学…

Python open函数

在Python编程中,open()函数是一个重要的文件操作函数,用于打开文件并进行读取、写入、追加等操作。本文将深入探讨open()函数的用法、语法、文件模式、示例代码,并探讨其在实际编程中的应用场景。 什么是open()函数? open()函数…