软件测试学习笔记-使用jmeter进行接口测试

使用jmeter之前首先需要安装jdk,配置其环境变量,然后再安装jmeter

软件测试学习笔记-使用jmeter进行接口测试

        • [1. 断言](#1. 断言)
          • [1. 响应断言](#1. 响应断言)
          • [2. JSON断言](#2. JSON断言)
        • [2. 参数化](#2. 参数化)
          • [1. 用户定义的变量](#1. 用户定义的变量)
          • [2. CSV参数化](#2. CSV参数化)
        • [3. 接口关联](#3. 接口关联)
        • [4. 连接数据库](#4. 连接数据库)
1. 断言

对某个接口其中一些信息进行判断是否符合预期结果中的值。

1. 响应断言

首先需要添加线程组、HTTP请求、查看结果树,然后在HTTP请求选择断言,选择响应断言。

  1. HTTP请求里的信息为:
    协议:https、服务器名称或IP:www.baidu.com、端口号:443、HTTP请求选择get、路径为空、内容编码:UTF-8
    这不是一个接口,只是一个静态页面。
  2. 响应断言中添加断言,输入内容为:百度一下
  3. 运行,选择查看结果树种结果为:通过
2. JSON断言

对某个接口返回的json数据进行判断其中是否存在某个值,如访问如下接口

接口地址为:https://music-api.tonzhon.com/search/m/我的梦

分析该接口,得出信息为:

请求协议:https

服务器名称或ip:music-api.tonzhon.com

端口号:443

请求方式:Get

请求路径:/search/m/%E6%88%91%E7%9A%84%E6%A2%A6

在jmeter中HTTP请求填入信息如下:

其查看结果树中响应数据为:

判断其返回数据结果列表中第一个元素是否有:"我的梦",json匹配代码为:$.data.songs[0].name

断言通过,也的的确确有我的梦字段,需要注意的是json判断中需要选中:Additionally assert value

2. 参数化
1. 用户定义的变量

步骤:

  1. 添加线程组
  2. 添加用户定义的变量,格式:变量名-变量值
  3. 添加HTTP请求,引用定义的变量名。格式:${变量名}
  4. 查看结果树

如下:

用户定义的变量

HTTP请求:

查看结果树:

2. CSV参数化

支持的文件格式有csv,txt

文件名:就是需要读取的数据文件,支持csv、txt

变量名称:可以随便取,多个变量之间用英文逗号隔开

忽略首行:默认值为False,就是不忽略首行,如果数据文件第一行不是数据,而是数据名,此值需要设置为True

分隔符:csv文件默认为==,(英文逗号)==,如果是txt文件,取决于txt文件中各个数据之间间隔符号

使用的是txt文件

HTTP请求,只是举例而已

查看结果树的运行结果:

可以看到请求参数的值为从txt文件中读取的数据值

3. 接口关联

关联:当请求之间有依赖关系,比如一个请求的入参是另一个请求的返回数据,这个时候就需要用到关联进行处理。

jmeter中常用的关联方法有json提取器、正则表达式提取器

如使用接口:http://www.weather.com.cn/data/sk/101010100.html,获取这条接口的城市名,然后以该城市名百度进行搜索一下。

使用json提取器,在这条接口下添加后置处理器-->json提取器

第二个请求中参数数据如下:

运行结果为:

虽然第2请求出现了302请求重定向问题,但是不可否认的是,第2个请求参数数据值来源于第1个请求响应结果。

4. 连接数据库

首先需要在测试计划下添加mysql连接jar包,

然后添加jdbc connection configuration组件,配置对应mysql路径、驱动类、数据库用户名、数据库密码。

然后添加jdbc request组件,输入对应的sql语句即可

运行结果,查看结果树中的数据为:

如果想把查询语句的条件引用变量,可以使用如下,首先把Query Type选择Prepared Seelct Statement,然后在下边输入Parameter values输入值,Parameter types输入类型即可,我用的是变量的形式,如下:

结果为:

相关推荐
AI_零食2 分钟前
开源鸿蒙跨平台Flutter开发:密码生成器应用
网络·学习·flutter·华为·开源·harmonyos·鸿蒙
智者知已应修善业5 分钟前
【51单片机1,左边4个LED灯先闪烁2次后,右边4个LED灯再闪烁2次:2,接着所用灯一起闪烁3次,接着重复步骤1,如此循环。】2023-5-19
c++·经验分享·笔记·算法·51单片机
fengci.14 分钟前
LilCTF2025web(前半部分)
开发语言·网络·学习·php
zhangrelay16 分钟前
蓝桥云课一分钟-绚丽贪吃蛇-后续-cmake
笔记·学习
世人万千丶17 分钟前
Flutter 框架跨平台鸿蒙开发 - AR寻宝探险游戏应用
学习·flutter·游戏·华为·开源·ar·harmonyos
承渊政道19 分钟前
【优选算法】(实战攻坚BFS之FloodFill、最短路径问题、多源BFS以及解决拓扑排序)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
漠缠21 分钟前
缠论核心公理:走势终完美
学习·程序人生
arvin_xiaoting23 分钟前
OpenClaw学习总结_IV_认证与安全_3:Authorization与Policies详解
学习·安全
EnglishJun23 分钟前
ARM嵌入式学习(二十)--- 杂项设备、Platfrom总线和设备树源文件(dts)
学习
知识分享小能手24 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB 安全完全指南(19)
学习·安全·mongodb