JMeter接口测试

一、接口测试基础

1.为什么要做接口测试?

(1) 前后端分离

(2) 项目一般都不是独立的,经常要调用外部的项目。项目和项目之间交互数据,通过接口交换。

(3) 安全考虑

2.接口测试测什么?

USB接口:数据传递的正确性(参数),输出结果的正确性,以及各种容错处理和权限控制。

项目接口:参数,结果,容错处理,权限。

3.接口测试工具?

Jmeter, Postman, Apifox, Apipost等

二、Jmeter安装配置以及核心目录详解

jmeter基于java语言来开发,java需要jdk环境。

1.安装jdk并且配置jdk的环境变量。

2.jmeter只需要解压就可以使用了。

D:\apache-jmeter-5.5\bin双击jmeter.bat文件就可以启动和使用。

backups:自动备份的目录

bin:jmeter.bat启动文件,jmeter.propties核心配置文件

extras:存放和第三方集成的构建文件,Ant+Jenkins会用到

lib:存放jar包

三、jmeter组件和作用域详解

10大组件(元件):

1.测试计划:容器

2.线程组:1-N用户

3.配置元件:接口配置,协议,接口服务器IP,接口服务器端口

4.前置处理器:在接口请求之前的操作

5.逻辑控制器:判断条件成立才请求接口,循环请求

6.定时器:延迟请求接口

7.取样器:发送请求

8.后置处理器:在接口请求之后的操作

9.断言:判断接口是否成功

10.监听器:收集测试结果

组件的作用域(非常重要):

结论一:组件可以作用于父组件,得出:如果我的组件只想作用于一个组件,那么就放到这个组件下面

结论二:组件可以作用于平级兄弟组件。

结论三:组件可以作用于平级兄弟组件之下的子组件。

四、Jmeter接口测试实战

场景一:我一个人负责所有的接口:项目规模不大

http:80

https:443

接口文档一般是开发给的,如果没有那就需要抓包。

请求:

  • 请求方式: get,post,put,delete

  • 请求路径:

  • 请求参数:

    • 查询字符串参数:直接在路径后面以?传,多个参数之间用&分开。

    • json参数:在消息体数据传

    • 文件参数:在文件上传传递

  • 请求头:

    • accept

    • x-requesed-with (注:原图拼写如此,通常应为 x-requested-with)

    • cookies

响应: 查看结果

五、接口关联

注意:access_token每一次请求之后都是会变的。不是固定的。

下一个接口需要用到上一个接口的access_token参数===接口关联

接口关联:

方式一:jsonpath实现接口关联:提取json数据,表达式写法:

$ 根节点

. 取子节点的值

分两步走:

在第一个接口使用jsonpath表达式取值:$.access_token

在下一个接口使用${变量名}使用值。

方式二:正则表达式实现接口关联:提取文本数据,表达式写法:

<input type="hidden" name="csrf_token" value="647c4ae98dfa90e7"/>

取值:647c4ae98dfa90e7

左边界+取值+右边界(必须唯一):name="csrf_token" value="(.*?)"

相关推荐
banyoyo5 天前
jmeter测试使用方法
jmeter
汪汪8888886 天前
jmeter压测下载功能影响本地内存的方案
jmeter
跨境数据猎手6 天前
跨境电商系统JMeter 和 Gatling 分工
jmeter
han68898 天前
jmeter操作数据库
数据库·jmeter
川石课堂软件测试10 天前
涨薪技术|0到1学会性能测试第8课-Analysis分析图
服务器·数据库·python·sql·jmeter·mysql·容器
川石课堂软件测试10 天前
JMeter异步接口测试实战
数据库·python·jmeter·mysql·kubernetes·测试用例·prometheus
zuozewei12 天前
第02篇-k6-脚本结构与生命周期
软件测试·jmeter·性能测试·k6·ai 编程
fen_fen12 天前
Jmeter5.1.1连接oracle数据库的错误复盘
数据库·jmeter·oracle
测试开发技术13 天前
AI时代我们要如何玩抓包测试:Reqable + AI Agent
软件测试·人工智能·测试工具·接口测试·agent·抓包
川石课堂软件测试16 天前
自动化测试|持续集成Git使用详解
git·python·jmeter·mysql·ci/cd·容器·kubernetes