Jmeter进行http接口测试,这一篇就搞定

news2024/9/23 15:22:39

jmeter-http接口测试脚本

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

图片

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

图片

图片

jmeter做http接口测试添加cookie:

图片

图片

3.jmeter-webservice脚本

进行webservice测试的一般步骤

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

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

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

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

图片

图片

图片

4.jmeter-参数化

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

Jmeter参数化的方式有三种:

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

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

图片

在脚本中获取参数化的值

图片

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

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

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

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

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

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

图片

图片

图片

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

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

1、读取文件

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

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

图片

5.jmeter断言

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

图片

图片

6.jmeter关联

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

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

图片

图片

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

7.jmeter操作数据库mysql

操作数据库的步骤:

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

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

3、写sql,执行sql

4、查看结果

Jmeter导入jdbcjar包

图片

配置mysql连接

图片

(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

图片

查看sql结果

图片

图片

8.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就可以查看到测试结果了

9.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:如果有参数化文件,那么在负载机同样的位置上也得有一个参数化文件。

图片

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

 

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

 

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

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

相关文章

【数据分享】《云南省统计年鉴》(2000-2023)

而今天要限时免费分享的数据就是2000-2023年间出版的《云南省统计年鉴》并以多格式提供免费下载。(无需分享朋友圈即可获取) 数据介绍 在过去的二十多年里,云南省作为中国西南的重要门户,经历了翻天覆地的变化。这些变化不仅…

《机器学习》—— 通过下采样方法实现银行贷款分类问题

文章目录 一、什么是下采样方法?二、通过下采样方法实现银行贷款分类问题三、下采样的优缺点 一、什么是下采样方法? 机器学习中的下采样(Undersampling)方法是一种处理不平衡数据集的有效手段,特别是在数据集中某些类…

YUM和NFS

文章目录 yum软件仓库的提供方式RPM软件包的来源Linux系统各家厂商用的安装源命令---yum 配置本地yum源具体操作 搭建ftp yum仓库环境具体操作实操环境服务端一、安装 vsftpd服务二、创建一个文件,并且挂载三、开启服务四、查看挂载 客户端五、备份六、搭建ftp yum仓…

Word--两列(两栏、多栏、多列)文档中间插入横跨两列(多列)的表格

最终效果如下图所示 最终效果展示图 即:在原本是两列(两栏、多栏、多列)显示的Word文档中,插入一个横跨两列的表格,并且不影响文字排列,表格上侧的文字自动排序,表格下侧的文字自动排序&#…

JUC阻塞队列(三):PriorityBlockingQueue

1、PriorityBlockingQueue 介绍 PriorityBlockingQueue 是一个优先级队列,它不满足队列的先进先出特点; PriorityBlockingQueue 会对队列的数据进行排序,排序规则是数据的优先级; PriorityBlockingQueue是基于二叉堆来实现优先级的…

鸿蒙(API 12 Beta3版)【DRM会话管理(ArkTS)】数字版权保护

DRM会话管理(MediaKeySession)支持媒体密钥管理及媒体解密等,MediaKeySession实例由系统管理里的MediaKeySystem实例创建和销毁。 开发步骤 导入相关接口,导入方法如下。 import { drm } from kit.DrmKit;导入BusinessError模块&…

巡检机器人的使用方法和维护保养

在当今快速发展的工业环境中,智能巡检机器人正逐渐成为提升运维效率和安全性的重要工具。旗晟机器人凭借其核心技术团队和多年的行业经验,推出了多款高效、智能的巡检机器人,旨在帮助企业实现设备运维的智能化升级。本文将介绍旗晟巡检机器人…

第1章-02-Python环境安装与测试

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲。 🎉欢迎 👍点赞✍评论⭐收…

ensp小实验(ospf+dhcp+防火墙)

前言 今天给大家分享一个ensp的小实验,里面包含了ospf、dhcp、防火墙的内容,如果需要文件的可以私我。 一、拓扑图 二、实训需求 某学校新建一个分校区网络,经过与校领导和网络管理员的沟通,现通过了设备选型和组网解决方案&…

JUC- Synchronized原理

对象头概念 以 32 位虚拟机为例 Klass Word:指向类对象的指针,标明这个对象的类型 普通对象 |--------------------------------------------------------------| | Object Header (64 bits) | |---------------…

第二十二讲 python中traceback 模块

目录 1. traceback 模块概述 2.捕获和记录异常 3.traceback 模块的函数 3.1 traceback.format_exc() 3.2 traceback.format_exception(etype, value, tb) 3.3 traceback.print_exc() 3.4 traceback.extract_tb(tb) 1. traceback 模块概述 traceback 模块提供了多种函数&#xf…

django实现手机号归属地查询

要在 Django 中创建一个手机归属地查询页面,前端部分通常包括一个输入框用于输入手机号码和一个按钮用于提交查询请求,随后在页面上显示查询结果。 1. 前端页面设计 在 Django 中,创建一个模板文件(例如 phone_location_query.h…

Linux 基础命令大全

Linux是一个功能强大、灵活的操作系统,为用户提供了稳定性、安全性和庞大的开发者和用户社区。它是个人和企业使用的流行选择。 当涉及到Linux基础命令时,以下是一些常用的命令及其功能介绍: 1.ls 查看目录 语法:ls [选项] [文件…

【知识分享】ubuntu22.04-ESP32环境搭建

文章目录 一、概要二、环境及工具介绍三、名词解释四、环境搭建 一、概要 手上有一块安信可的WIFI开发板,用的是乐鑫的ESP32模组。刚好最新装了双系统,貌似在Linux环境使用gcc编译器会快一些。     万事开头难,要在Linux环境下进行开发工…

探索数据结构:哈希表的分析与实现

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 哈希的引入 1.1. 哈希的概念 无论是在顺序结构还是在树形结构中&am…

mq-direct交换机

把消息分发给不同的人,不是所有人都收到 例如 已加入伙伴计划作者,发加入激励的消息,未加入伙伴计划的就发邀请的消息,不同的微服务发送不同的消息 交换机 direct交换机,要指定key,可以同时收到&#xf…

<数据集>鸟类识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:16287张 标注数量(xml文件个数):16287 标注数量(txt文件个数):16287 标注类别数:10 标注类别名称:[Chestnut Munia, Zebra Dove, Garden Sunbird, Collared Kingfish…

用基础项目来理解spring的作用

简介 spring官方的解释过于专业化,初学者可能比较难懂,接下来我将通过一个最基础的Java项目来尽可能的展示spring中的作用及spring的底层是如何来实现的。 项目结构 该项目是一个简单的JavaSE项目,没有maven或者tomcat等其他。只在控制台进…

【UE5】基于摄像机距离逐渐剔除角色

效果 步骤 1. 新建一个工程,在内容浏览器中添加第三人称游戏内容包 2. 找到第三人称角色的材质实例“MI_Quinn_01”并打开 找到材质实例的父项材质“M_Mannequin” 打开材质“M_Mannequin” 在材质图表中添加如下节点 此时运行效果如文章开头所示。 参考视频&#…

node版本8.x→16.x,前端维护火葬场,问题及解决方案总结

为了后续的工程开发,我需要升级我的node,在此之前我的node版本是8,这个版本太老了,从8升级到16的跨度太大,对于以前的许多项目,产生了非常多维护方面的问题,历时四天终于全部解决了,…