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

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

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

        • 1. 断言
          • 1. 响应断言
          • 2. JSON断言
        • 2. 参数化
          • 1. 用户定义的变量
          • 2. CSV参数化
        • 3. 接口关联
        • 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/%E6%88%91%E7%9A%84%E6%A2%A6
分析该接口,得出信息为:

请求协议: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输入类型即可,我用的是变量的形式,如下:
在这里插入图片描述
结果为:
在这里插入图片描述

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

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

相关文章

DP第一天:力扣● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

● 理论基础 DP大约五种问题: 动规基础(斐波那契数列、爬楼梯);背包问题;股票问题;打家劫舍;子序列问题。 要搞清楚: DP数组及其下标的含义;DP数组如何初始化&#x…

DiskGenius v4.30专业版下载

DiskGenius是一款专业级的数据恢复软件,算法精湛、功能强大,用户群体广泛;支持各种情况下的文件恢复和分区恢复,恢复效果好;文件预览、扇区编辑、加密分区恢复、Ext4分区恢复、RAID恢复等高级功能应有尽有,…

C++设计模式-简单工厂模式,工厂方法模式,抽象工厂模式

目录 简单工厂模式,工厂方法模式,抽象工厂模式 附: 简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式:根据字符串参数返回对象。 工厂方法模式:创建一维对象,即一个工厂创建…

Vue3+TS+Vite+Pinia最全学习总结

VUE3介绍 vue2和vue3之间的区别 因为需要遍历data对象上所有属性,所以如果data对象属性结构嵌套很深,就会存在性能问题。因为需要遍历属性,所有需要提前知道对象上有哪些属性,才能将其转化为getter和setter,所以vue2中无法将data新…

嵌入式Linux:main函数的使用方法

和单片机开发一样,在Linux中,C语言程序的执行通常从main函数开始。main函数是程序的入口点,当程序启动时,操作系统会调用main函数来执行程序的主要逻辑。 不同于单片机开发,通常设置main函数没有参数,Linu…

一起畅玩!幻兽帕鲁服务器1分钟开服,不服来战!

玩转幻兽帕鲁服务器,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

Docker方式创建keepalived连接MGR集群

记录一下简单的搭建步骤以便后期查验 目录 前言步骤1. 安装环境2. 重新制作镜像3. 导入新镜像4. 创建容器 前言 假设已经搭建了MySQL8的MGR集群方式(一主两从)。 MGR本身有故障转移重新选举新的主节点功能,但是上游的应用程序需要自己手动修…

Facebook的社交影响力:用户行为解析与趋势

在当今数字时代,社交媒体已经成为人们日常生活中不可或缺的一部分,而Facebook作为全球最大的社交平台之一,其社交影响力愈发显著。本文将深入分析Facebook的社交影响力,解析用户行为,同时探讨当前和未来的社交趋势。 社…

vue项目线上页面刷新报404 解决方法

一.修改配置文件 nginx.conf ,并重新加载或重启 我的nginx版本是1.9.9 location / {try_files $uri $uri/ /index.html; }原因: 打包后的dist下只有一个 index.html 文件及一些静态资源,这个是因为Vue是单页应用(SPA),只有一个…

学习Spring的第十三天

非自定义bean注解开发 设置非自定义bean : 用bean去修饰一个方法 , 最后去返回 , spring就把返回的这个对象,放到Spring容器 一 :名字 : 如果bean配置了参数 , 名字就是参数名 , 如果没有 , 就是方法名字 二 : 如果方法产生对象时 , 需要注入数据 , 在方法参数设置即可 , …

《深入浅出Go语言》大纲

目录 为什么选择《深入浅出Go语言》? 基础核心模块 为什么选择《深入浅出Go语言》? 🚀 全面的基础知识体系 从环境搭建开始,对Go语言核心知识点进行深入探讨,深度挖掘每个基础知识的本质,为后续深入学习…

SOME/IP SD 协议介绍(四)服务发现通信行为

服务发现通信行为 启动行为 服务发现将根据服务实例处于以下三个阶段之一: • 初始等待阶段 • 重复阶段 • 主要阶段 一旦系统启动并且用于服务实例的接口连接已建立,服务发现将进入该服务实例的初始等待阶段。 在进入初始等待阶段并在发送第一条服…

VScode+PlatformIO 物联网Iot开发平台环境搭建

1.vscode (1)安装platformIO插件 (2)新建项目或导入已有的arduino项目 Name:需要填写你项目的名称; Board:点开是一个下拉框,但是可以输入你想要的开发板,这里选择&quo…

你所不知道的关于库函数和系统调用的那些事

系统调用和库函数的区别 相信大家在面试或者刷面试题的时候经常能看到这样的问题,“简述一下系统调用和库函数的区别”。 系统调用是操作系统提供给用户的接口,能让用户空间的程序有入口访问内核。而库函数数一组标准函数,比如复合 POSIX 或…

Git 入门指南:从新手到高手的完全指南

Git是一种强大的分布式版本控制系统,广泛应用于软件开发中。它的使用不仅可以帮助开发团队更好地管理代码,还可以提高团队协作效率和代码质量。随着软件开发的不断发展,版本控制成为了程序员必备的一项技能。 Git作为最流行的分布式版本控制系…

90.网游逆向分析与插件开发-游戏窗口化助手-项目需求与需求拆解

内容参考于:易道云信息技术研究院VIP课 上一个内容:实现物品使用策略的功能-CSDN博客 项目需求: 在游戏窗口化时,可以在游戏之外弹出一个窗口,可以隐藏或者显示游戏窗口,显示游戏人物的基本状态&#xff…

LeetCode--代码详解 2.两数相加

2.两数相加 题目 难度:中等 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数…

gerrit(1) | gerrit 简介

gerrit(1) | gerrit 简介 1. 目的 之前用过 gitlab CI/CD, github actions, 以及公司的配置管理员配置的 jenkins。 github 的 MR, github 的 PR, 虽然在用, 但仅限于参与开源项目或公司内的开源项目, OEM 项目中完全没在用。 …

【JavaScript + CSS】随机生成十六进制颜色

效果图 实现 <template><div class"year_area"><div class"year_list"><el-row :span"24"><div :class"showAll"><el-col :span"5" v-for"(item, index) in defaulList" :key&…

Shell脚本是一种用来自动化执行一系列命令的文本文件

Shell脚本是一种用来自动化执行一系列命令的文本文件。它可以包含一系列的Shell命令和控制结构,用于实现特定的功能或任务。 以下是一些使用Shell脚本的常见情况: 自动化任务:可以使用Shell脚本编写自动化任务,例如备份文件、定时执行命令等。 系统管理:通过Shell脚本可以…