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

jmeter-http接口测试脚本

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

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

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

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

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

      jmeterhttp接口测试添加cookie:

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

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

 3.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/0f460d2eda57976e47ef406e56f931ba.png" width="932" />

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

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

4.jmeter-参数化

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

Jmeter参数化的方式有三种:

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

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

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

在脚本中获取参数化的值

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

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

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

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

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

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

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

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

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

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

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

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

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

1、读取文件

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

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

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

5.jmeter断言

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

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

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

6.jmeter关联

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

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

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

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

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

7.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/965afc98355a864628bd6383ad15a5b6.png" width="558" />

配置mysql连接

图片https://i-blog.csdnimg.cn/blog_migrate/34732c2e5184244be9f0fedf53b6a227.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/292a6fab17525fcff2c891efe4afba47.png" width="557" />

查看sql结果

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

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

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

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

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

https://i-blog.csdnimg.cn/direct/bd1c10518f794e80bba58fa59bfc344c.png" width="757" />​

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

https://img-blog.csdnimg.cn/direct/15f11b9000784d40a96da05717b0d9b0.jpeg" width="634" />


http://www.niftyadmin.cn/n/5669550.html

相关文章

oracle dblink的使用并举例

Oracle Database Link(DB Link)是Oracle提供的一种功能,允许你在一个数据库中直接访问另一个远程或本地数据库的对象(如表、视图、序列等)。DB Link的设置简化了跨数据库操作,使得数据的集成和同步变得更加…

GIT仓库的简单创建和使用

初步学会了一些简单的git操作。接下来对这一次学习进行一次总结,其中也包括了在这次学习中踩中的坑,希望对你们有所帮助。 第一步:下载 这个东西可以直接到官网下载或者到阿里云去下载,这里不多赘述。 附:阿里云路径…

五分钟通关Nacos部署与应用

前言 本文适合刚接触nacos想上手实践的读者。 Nacos下载安装步骤 本次下载的版本为2.0.1 下载Nacos 方式一:进入官网下载压缩包 官网地址 方式二:使用wget命令下载 两种方式:第一种下载速度较慢 wget https://github.com/alibaba/nac…

小程序构建npm失败

小程序构建npm失败 项目工程结构说明解决方法引入依赖导致的其他问题 今天在初始化后的小程序中引入TDesign组件库,构建npm时报错。 项目工程结构说明 初始化后的项目中,包含miniprogram文件夹和一些项目配置文件,在project.config.json文件中…

VUE面试题(单页应用及其首屏加载速度慢的问题)

目录 一、单页应用 1.概念 2.单页面应用的优缺点 二、多页面应用: 1.概念 2.区别 三、SPA的实现 1.原理 2.方式: 3.Hash与History模式有什么区别 四、首屏加载速度慢如何优化 1.什么是首屏加载? 2.首屏加载慢的原因 3.如何解决…

代码随想录算法训练营第25天| 491.递增子序列、46.全排列、47.全排列 II

文章目录 491.递增子序列46.全排列47.全排列 II 491.递增子序列 leetcode 491.递增子序列 代码随想录 class Solution:def __init__(self):self.pathSet set()def backtracing(self, nums, res, path, startIndex, used):if len(path) > 2:temp tuple(path)if temp not …

GRU是门控循环单元是什么?

GRU是门控循环单元(Gated Recurrent Unit)的简称,它是循环神经网络(RNN)的一种变体。GRU旨在解决传统RNN中存在的长期依赖问题和反向传播中的梯度消失或梯度爆炸问题。与另一种流行的RNN变体LSTM(长短期记忆…

【变化检测】基于ChangeStar建筑物(LEVIR-CD)变化检测实战及ONNX推理

主要内容如下: 1、LEVIR-CD数据集介绍及下载 2、运行环境安装 3、ChangeStar模型训练与预测 4、Onnx运行及可视化 运行环境:Python3.8,torch1.12.0cu113,onnxruntime-gpu1.12.0 likyoo变化检测源码:https://github.c…