Jmeter进行http接口测试

devtools/2025/1/23 15:01:44/

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

1、jmeter-http接口测试脚本

jmeter进行http接口测试的主要步骤(1.添加线程组 2.添加http请求 3.在http请求中写入接口的URL,路径,请求方式,参数 4.添加查看结果树 5.调用接口,查看返回值)

图片https://i-blog.csdnimg.cn/blog_migrate/1e63b36c071bd59f84a91cd6b1e33bf3.png" width="1025" />

针对接口添加header在如下途径添加:

图片https://i-blog.csdnimg.cn/blog_migrate/9eaf862c3b540002d3d5dd8c35f51eb5.png" width="819" />

图片https://i-blog.csdnimg.cn/blog_migrate/3a8bd26f1636a9d925ae98688e7f4139.png" width="957" />

jmeterhttp接口测试添加cookie:

图片https://i-blog.csdnimg.cn/blog_migrate/0a225ad5a89681f1c7dcd41f06f7bcb3.png" width="982" />

图片https://i-blog.csdnimg.cn/blog_migrate/8ed719a4210260951e3ec2e69343d3fb.png" width="1013" />

2、jmeter-webservice脚本

进行webservice测试的一般步骤

1、在soapui中新建已经soap项目,导入wsdl地址,获取到请求报文、SOAPAction和请求url(在soapui的raw中能找到)

2、打开jmeter新建一个线程组

3、新建一个SOAP/XML-RPC Request

4、把url、soapaction和请求报文写到soaprequest中5、调用接口、查看返回值)

图片https://i-blog.csdnimg.cn/blog_migrate/96d7a67b2ef83cfa9719a364de64e1c7.png" width="932" />

图片https://i-blog.csdnimg.cn/blog_migrate/3e6663b258fd25e479b856d19c8b32ab.png" width="996" />

图片https://i-blog.csdnimg.cn/blog_migrate/94bcfeec69c6e9abaed86d34897d72fe.png" width="1006" />

3、jmeter-参数化

参数化的作用:调用接口入参时。有时要求参数经常变化,如果每次去修改就会变得很繁琐,这时候就需要把经常变化的值改变为提前编辑好的文档或函数中,便于调用时使用不同的值。

Jmeter参数化的方式有三种:

1)用户定义的变量(这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的)。

在线程组中添加一个用户定义的变量,然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。

图片https://i-blog.csdnimg.cn/blog_migrate/016c850976b57a705b4669ebfecee434.png" width="557" />

在脚本中获取参数化的值

图片https://i-blog.csdnimg.cn/blog_migrate/6ea9c64dd41f42fc2d77d1659b7877d2.png" width="557" />

2)函数生成器(函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数)。

函数助手的话,可以按照规则生成一些参数,比如说随机数取当前时间,最常用的就是这两种。

随机数__Random,可以在你指定的一个范围内取随机值

取当前时间__time,如果在有一些需要传时间的情况下可以使用,日期格式是:yyyy-MM-dd HH:mm:ss   年-月-日-小时:分钟:秒

取唯一id,__UUID,这个就是每次会生成一个随机的uuid,都是唯一的。

利用函数助手可以按照规则生成一些参数。

图片https://i-blog.csdnimg.cn/blog_migrate/6be50906797799a197b9a184e068e566.png" width="558" />

图片https://i-blog.csdnimg.cn/blog_migrate/e7737bfe9b69cf8eb02d57e09032c374.png" width="557" />

图片https://i-blog.csdnimg.cn/blog_migrate/a95ff57d1b85d1babf0c19a303254c12.png" width="557" />

图片https://i-blog.csdnimg.cn/blog_migrate/75d7693e9f1a83baefaf83d547802928.png" width="557" />

3)从文件中读取(文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码都是我们事先注册好的)

从文件中读取的有3个步骤:

1、读取文件

2、取文件内容里面的参数,给它一个名字

3、使用值(从文件读取的话,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的)。

图片https://i-blog.csdnimg.cn/blog_migrate/b7d30e640f27bc7b78ca0ea290a04322.png" width="557" />

4、jmeter断言

断言的作用是用来查看返回结果是否正确,如果正确就代表这个请求的返回值是正确的,如果没有的话就代表这个请求的结果和我们预期的不一致,这样我们就可以通断言来检查返回结果,测试是否通过。

图片https://i-blog.csdnimg.cn/blog_migrate/f0977feb08a50248e0031db27068b616.png" width="557" />

图片https://i-blog.csdnimg.cn/blog_migrate/6ae6994e1b9a4f2f2ceb7611e0539fd3.png" width="557" />

5、jmeter关联

关联作用是由于后面操作需要用到前面服务器返回的结果,所以将该值保存传递过来以便使用。

Jmeter中的关联一般通过正则表达式提取器来完成(如果有特殊的jar包也可)

图片https://i-blog.csdnimg.cn/blog_migrate/fedf5546ad34545aea3a386a568ccd4c.png" width="557" />

图片https://i-blog.csdnimg.cn/blog_migrate/5d42f763e2fe0a854e0fea31d7765990.png" width="558" />

关联的值在其他请求引用时,直接使用${name}即可,name就是你关联的时候设置的变量名。

6、jmeter操作数据库mysql

操作数据库的步骤:

1. 导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql。

2、创建数据库连接配置,mysql的url、端口号、账号、密码

3、写sql,执行sql 

4、查看结果

Jmeter导入jdbcjar包

图片https://i-blog.csdnimg.cn/blog_migrate/d1f3309d967fa7e373e5b3e1c57913cc.png" width="558" />

配置mysql连接

图片https://i-blog.csdnimg.cn/blog_migrate/448861a345c74a6f9c524bbdf067d614.png" width="558" />

(1)添加一个JDBC Connection Configuration

(2)配置mysql连接池的名称,后面发sql请求的时候指定连接哪里

(3)数据库的url:jdbc:mysql://192.168.1.116:3307/bugfree?allowMultiQueries=true

(4)数据库驱动:这里就是指定连接什么类型的数据库,mysql、oracle、SqlServer等等

(5)账号密码

Jmeter执行sql

图片https://i-blog.csdnimg.cn/blog_migrate/88abf4a22852d47c76f100f8981e4fa4.png" width="557" />

查看sql结果

图片https://i-blog.csdnimg.cn/blog_migrate/56d6b24690db842ba4233c43c2ab4a99.png" width="557" />

图片https://i-blog.csdnimg.cn/blog_migrate/5c58c543ac3f224f3e880ef1e9358dc2.png" width="557" />

7、Linux下运行jmeter压测

我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上把脚本做好,然后在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。

sh jmeter.sh -n –t a.jmx -l res.jtl

-n代表以没有图形化界面启动,-t代表后面是测试脚本,a.jmx也就是我们做好的jmeter脚本,-l代表测试结果 res.jtl就是测试结果文件,查看结果的话,在查看结果树视图中导入这个res.jtl就可以查看到测试结果了

8、jmeter添加负载机

我们在压测的时候,可能并发比较大, 一台机子已经启动不了那么多并发了,这个时候我们就要使用多台机子一起来发压力,就要添加压力机,添加压力机怎么添加呢,首先要在做压力机的机子上启动jmeter的代理,然后做为控制机的机子上添加上压力机的ip即可。

Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server。

然后在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加压力机的时候,在配置文件里面找到remote_hosts添加ip,然后重启jmeter就可以看到远程压力机了

jmeter 添加压力机:

1、先在其他的负载机(另外的电脑)上启动jmeter-server(jmeter-server.bat windows) (jmeter-server.sh mac、linux)主控机和负载机

2、修改主控机jmeter的配置文件,找到remot_hosts,然后把负载机的ip加入到里面就好了remot_hosts=127.0.0.1,192.168.1.2:1099,192.168.1.3:1099默认jmeter-server的端口号是1099,如果说负载机上的端口号改了,那么你在这里也得改

3、启动时候要选择远程全部运行ps:如果有参数化文件,那么在负载机同样的位置上也得有一个参数化文件。

图片https://i-blog.csdnimg.cn/blog_migrate/75a82b308c93d2739c365c4bcfa1d77a.png" width="557" />

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

https://i-blog.csdnimg.cn/direct/ac1bc2ae8cf34fa195d90bc6177a93f2.png" width="541" />

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

https://img-blog.csdnimg.cn/direct/30849e3c746a4ecca0dba1f21f75f83f.jpeg" />


http://www.ppmy.cn/devtools/152912.html

相关文章

【一个按钮一个LED】用STM32F030单片机实现苹果充电器的定时装置

文章目录 前言一、要实现的功能1、循环定时2、倒计时3、指示灯提示4、使用场景二、实现方法1、使用方法2、电路设计三、程序代码和成品1.定时中断子程序2.键值处理3.主函数总结前言 笔者前几年买苹果手机、IPAD配的适配器是A1443型号,这种5V1A,USB-A口、小功率的适配器,苹果…

【技巧】优雅的使用 pnpm+Monorepo 单体仓库构建一个高效、灵活的多项目架构

单体仓库(Monorepo)搭建指南:从零开始 单体仓库(Monorepo)是一种将多个相关项目集中管理在一个仓库中的开发模式。它可以帮助开发者共享代码、统一配置,并简化依赖管理。本文将通过实际代码示例&#xff0…

【Linux系统】—— 编译器 gcc/g++ 的使用

【Linux系统】—— 编译器 gcc/g 的使用 1 用 gcc 直接编译2 翻译环境2.1 预处理(进行宏替换)2.2 编译(生成汇编)2.3 汇编(生成机器可识别代码)2.4 链接2.5 记忆小技巧2.6 编译方式2.7 几个问题2.7.1 如何理…

linux下fcntl的概念和使用

fcntl 是 Linux 系统调用之一,用于执行各种与文件描述符相关的操作。它提供了对打开文件的控制,包括复制文件描述符、设置文件状态标志、获取和设置文件描述符标志等。fcntl 的功能非常广泛,可以用来实现多种不同的任务,如锁文件、…

Spring注解篇:@RestController详解

全文目录: 开篇语前言摘要概述源码解析使用案例分享代码分析使用场景优缺点分析测试用例 应用场景案例优缺点分析核心类方法介绍测试用例测试用例分析使用场景优缺点分析测试用例 小结总结文末 开篇语 哈喽,各位小伙伴们,你们好呀&#xff0c…

工作流引擎Camunda与LiteFlow核心组件对比

以下为 Camunda 7 和 LiteFlow 详细的介绍,包括它们的核心组件和用途。 1. Camunda 7 详细介绍 Camunda 7 是一个基于 BPMN 2.0 标准的企业级工作流和决策自动化平台。它被广泛应用于复杂业务流程的管理和执行,其核心目标是通过流程自动化来提升企业效…

洛谷题目 P1271 【深基9.例1】选举学生会 题解

题目传送门: P1271 【深基9.例1】选举学生会 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 前言: 大家应该都知道,这道题不是很简单吗?就一个排序,就能写完,为什么还写呢?(作者心里话&…

linux 根目录下结构

/ 虚拟目录的根的目录,通常不会在这里放置文件 /bin:存放频繁使用的命令,二进制文件,存放了很多用户级的GNU实用工具。 /boot:引导目录,存放引导文件,包含启动Linux所需的核心文件。 /dev:设…