day12 接口测试 ——入门→精通→实战(1)
【没有所谓的运气🍬,只有绝对的努力✊】
目录
1、接口测试分类
1.1 内部接口:
1.2 外部接口:
2、目前接口架构设计
2.1、基于SOAP架构,
2.2、基于RPC架构,
2.3、基于RestFul架构,
2.3.1 请求行、请求头、请求体
2.3.2 响应行、响应头、响应体
3、市面上的接口测试工具
4、Jmeter简介、安装、环境变量的配置
5、Jmeter目录介绍
6、Jmeter常用组件
6.1 jmeter常用组件
6.2 顺序:!!!
6.3 作用域:!!!
7、Jmeter执行接口测试
step1:
step2:编写接口测试用例。
step3:使用接口测试工具执行
step4:
8、Jmeter接口测试——案例1
9、Jmeter接口关联
9.1 使用正则表达式实现接口关联
9.2 使用json提取器表达式实现接口关联
10、Jmeter实现业务闭环
11、Jmeter动态参数处理
12、Jmeter断言(见day11 性能测试(3))
13、Jmeter接口测试调试方案
14、CSV参数化处理
15、必须带请求头的接口
16、没有接口文档录制功能操作
17、BeanShell组件
17.1 Jmeter里面有哪些 BeanShell呢?
17.2 内置变量和语法规则
17.2.1 log打印日志
17.2.2 vars表示:JmeterVariables,操作Jmeter变量
18、Jmeter执行数据库操作(Jmeter直连数据库)
18.1 案例:使用jemter从数据库中获取用户名和密码,放入登录接口里面。!!!!!
19、Jmeter非GUI(界面)方式运行
面1:Git和SVN的区别:
面2:详细分析 请求头、请求行、请求体 里面各个字段的含义和内容。
面3:查看结果树里面,取样器结果的各个参数字段含义。
1、接口测试分类
1.1 内部接口:
测试对被测系统各个子模块之间的接口;或被测试系统提供给内部系统使用的接口。(只需测正例)
1.2 外部接口:
1、被测系统调用外部的接口。(只需测正例)
2、系统对外提供的接口。
接口测试重点:
检查接口参数传递的正确性;
接口功能的正确性;
输出结果的正确性;
以及对各种异常情况的容错处理;
以及权限控制;
分页处理;
调用次数的限制;
2、目前接口架构设计
2.1、基于SOAP架构,
基于XML规范。基WebService协议。特点:接口地址以 ?wsdl结尾
2.2、基于RPC架构,
基于dubbo协议,thrift协议,SpringCloud微服务。
2.3、基于RestFul架构,
基于json规范,基于http协议。
RestFul规则:
- 接口地址:http:/127.0.0.1/user,get(查询用户),post(新增用户)put(修改用户),delete(删除用户)
- json数据格式:只有两种数据类型。键值对{key:value}、数组[arr1,arr2]
2.3.1 请求行、请求头、请求体
cookie :客户端→服务器的。
2.3.2 响应行、响应头、响应体
set-cookie:服务器→客户端的 只在第一次请求。
3、市面上的接口测试工具
主流的两种工具:
(1)方式1:Jmeter+Ant+Git+Jenkins
(2)方式2:Postman+Newman+Git+Jenkins
其他工具:soapui 、apipost、fiddler、charies
4、Jmeter简介、安装、环境变量的配置
基于java语言的压力测试工具,可以做接口测试、也可以做性能测试。
安装:jdk1.8以上、配置环境变量。
Jmeter——接口测试、性能测试;
5、Jmeter目录介绍
backups:脚本的备份目录,格式jmx
bin目录:存放jmeter的启动脚本、配置文件、模版文件。
jmeter.bat 启动jmeter
jmeter.properies :核心的配置文件
docs目录:离线的帮助文档。
extras目录:存放第三方的集成构成文件,集成Ant。Jenkins。
lib目录:存放jar包。
licenses目录:许可证文件。
6、Jmeter常用组件
6.1 jmeter常用组件
(1)测试计划。 起点。所有组件的容器。
(2)线程组。 代表一定数量的用户
(3)取样器。 向服务器发送请求的最小单元
(4)逻辑控制器。 结合取样器实现一些复杂的逻辑。
(5) 前置处理器。 在请求之前的工作。
(6)后置处理器。 在请求之后的工作。
(7) 断言。 用于判断请求是否成功。
(8)定时器。 负责在请求之间的延迟间隔,固定,高斯,随机。
(9)配置元件。 配置信息
(10)监听器。 负责收集结果。
6.2 顺序:!!!
测试计划→线程组→配置元件→前置处理器→定时器→取样器→后置处理器→断言→监听器
6.3 作用域:!!!
必须组件:测试计划、线程组、取样器。
辅助组件:除了必须组件外。
辅助组件作用于父组件,同级组件,以及同级组件下的所有子组件。
7、Jmeter执行接口测试
step1:
拿到api接口文档(Fiddler抓包)、熟悉接口业务、接口地址、鉴权方式、入参、出参、错误码。
step2:编写接口测试用例。
测试思路:
正例:输入正常的入参、查看接口成功返回。
反例:
鉴权:空、错误、鉴权过期、鉴权次数限制.......
参数:空、类型错误、长度错误、错误码的覆盖。
其他:黑名单、分页、
step3:使用接口测试工具执行
step4:
Jmeter + Ant + Git + Jenkins 实现持续集成输出接口测试报告,通过电子邮件发送。
8、Jmeter接口测试——案例1
目前市面上的鉴权码获取方式:
(1)通过接口获取,appid、secret
(2)登陆之后自动生成。username、password
案例:
1、登录接口,获取token
2、创建用户接口,传入token和其他参数
9、Jmeter接口关联
9.1 使用正则表达式实现接口关联
9.2 使用json提取器表达式实现接口关联
10、Jmeter实现业务闭环
增、改、删、查。
11、Jmeter动态参数处理
随机数字:${__Random(10000,99999,)}
随机字符串:${__RandomString(6,abcdefg1234567,)}
上述随机的数值,可以通过函数助手得到。
12、Jmeter断言(见day11 性能测试(3))
更加详细:day11 性能测试(3)——Jmeter 断言+关联-CSDN博客
13、Jmeter接口测试调试方案
1、通过【查看结果树】里面的请求信息和响应信息。
2、使用【调试取样器】。
3、Jmeter 结合Fiddler实现调试。(在没有接口文档,只能通过抓包去获取。)
14、CSV参数化处理
login.csv文件准备
读取csv文件
15、必须带请求头的接口
添加HTTP信息头管理器:
16、没有接口文档录制功能操作
1、如果没有接口文档的情况下,可以使用Jmeter的脚本录制的功能。
2、使用Jmeter自带的http代理服务器实现。(把Jmeter作为代理)
(1)设置端口、设置存放的位置。
(2)设置本机的代理请求。
17、BeanShell组件
BeanShell 是一种完全符合java语法规则的脚本语言。
java包括:javase、javaee、javame。
17.1 Jmeter里面有哪些 BeanShell呢?
(1) 前置处理器:Beanshell 预处理程序。
(2)定时器:BeanShell
(3)采样器BeanShell
(4)后置处理器:BeanShell
(5)断言:BeanShell
(6)监听器:BeanShell
17.2 内置变量和语法规则
17.2.1 log打印日志
17.2.2 vars表示:JmeterVariables,操作Jmeter变量
(1)用户定义的变量
(2)正则表达式提取的变量、JSON提取器提取的变量
【BeanShell里面 获取变量】
【BeanShell里面 设置变量】必须在一个线程组里面使用。
18、Jmeter执行数据库操作(Jmeter直连数据库)
1、准备数据库驱动包:Jmeter直连数据库,jar包下载-CSDN博客
2、放到jmeter里面的 lib/ ext 目录里面
3、新建 JDBC connection (详细见:day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器-CSDN博客)
4、新建 JDBC request
18.1 案例:使用jemter从数据库中获取用户名和密码,放入登录接口里面。!!!!!
19、Jmeter非GUI(界面)方式运行
面试题,下面的面试题,是在视频课里面,老师提到的,说有的面试可能会被问到这些细节。有时间我再整理。
面1:Git和SVN的区别:
主要有以下几个方面:
(1)版本控制方式:
①git是分布式版本控制系统。每个开发者的计算机上都有一个项目的完整副本,包含所有分支和版本历史。开发者可以在本地进行多数操作,如提交、创建分支和合并分支等,不依赖网络连接。
②svn是集中式版本控制系统。所有的历史版本都保存在中央服务器上,开发者需要依赖中央服务器来获取历史版本信息。
(2)数据存储方式:
git存储每个文件的内容和变更记录,优化存储且克隆时通过比较快。它使用SHA-1哈希算法确保代码完整性。
svn按照原始文件存储,体积较大,且所有资源控制在.svn中。
(3)适用场景
git更适合需要高灵活性和快速迭代的项目,尤其是处理大型仓库或大量历史记录时更为高效。
svn适用于小型项目或团队。
面2:详细分析 请求头、请求行、请求体 里面各个字段的含义和内容。
面3:查看结果树里面,取样器结果的各个参数字段含义。
相关文章:

day12 接口测试 ——入门→精通→实战(1)
【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、接口测试分类 1.1 内部接口: 1.2 外部接口: 2、目前接口架构设计 2.1、基于SOAP架构, 2.2、基于RPC架构, 2.3、基于RestFul架构, 2.3.1…...
伏羲0.07(文生图)
为了使0.06代码能够有效运行并输出项目目录及所有文件,我们在代码中添加一些额外的功能。 项目目录结构 项目目录结构如下: text_to_image_project/ │ ├── config.yaml ├── data/ │ ├── train_data.csv │ └── test_data.txt ├── mod…...
scala的泛型特质的应用场景
//泛型特质的应用场景 //作比较找出最大值 //定义一个函数,用来求List元素中的最大值参考代码:object Test4 {def getMax[T](list:List[T])(implicit ev:T > Ordered[T]): T {list.reduce((a:T,b:T)> if(a>b) a else b)}def main(args: Array…...

Win10环境vscode+latex+中文快速配置
安装vscodelatex workshop 配置: {"liveServer.settings.donotVerifyTags": true,"liveServer.settings.donotShowInfoMsg": true,"explorer.confirmDelete": false,"files.autoSave": "afterDelay","exp…...
【vue2】el-select,虚拟滚动(vue-virtual-scroller)
需求背景 vue2+element-ui项目中,当el-select中数据量较大时(超出5000个dom节点),会导致页面加载和渲染卡顿、el-select下拉列表延迟展开。 在现在的el-select的基础上使用分页或者虚拟列表的形式去处理大量的下拉菜单,可以保证页面的正常渲染及el-select的…...
【ETCD】[源码阅读]深度解析 EtcdServer 的 processInternalRaftRequestOnce 方法
在分布式系统中,etcd 的一致性与高效性得益于其强大的 Raft 协议模块。而 processInternalRaftRequestOnce 是 etcd 服务器处理内部 Raft 请求的核心方法之一。本文将从源码角度解析这个方法的逻辑流程,帮助读者更好地理解 etcd 的内部实现。 方法源码 …...

【RabbitMQ】RabbitMQ中核心概念交换机(Exchange)、队列(Queue)和路由键(Routing Key)等详细介绍
博主介绍:✌全网粉丝21W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【AI知识】过拟合、欠拟合和正则化
一句话总结: 过拟合和欠拟合是机器学习中的两个相对的概念,正则化是用于解决过拟合的方法。 1. 欠拟合: 指模型在训练数据上表现不佳,不能充分捕捉数据的潜在规律,导致在训练集和测试集上的误差都很高。欠拟合意味着模…...

计算机毕设-基于springboot的航空散货调度系统的设计与实现(附源码+lw+ppt+开题报告)
博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...

视图、转发与重定向、静态资源处理
目录 视图 默认视图 视图机制原理 自定义视图 请求转发与重定向 静态资源处理 视图 每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性 可以通过 order 属性指定解析器的优先顺序,order 越小优先级越高 默认是最低优先级,Integer.MAX_…...

优选算法——分治(快排)
1. 颜色分类 题目链接:75. 颜色分类 - 力扣(LeetCode) 题目展示: 题目分析:本题其实就要将数组最终分成3块儿,这也是后面快排的优化思路,具体大家来看下图。 这里我们上来先定义了3个指针&…...

【Linux系统】文件系统
Windows 和 Linux 的文件系统: windows:NTFS —> NTFS:磁盘大于目录:目录是磁盘的一部分。ubuntu :EXT4 —> EXT4: 目录大于磁盘:磁盘是目录的一部分。 Windows文件系统的特点 基于分区的文件系统: Windows…...

javaweb的基础
文章的简介: 页面的展示(HTML)页面的修改、绑定、弹窗(js的dom、bom等)页面的请求(Ajax) 1、在HTML中用标签和css样式实现了浏览器页面。 2、用JS实现页面内容(图片,复选框、文本颜色内容)的修改和弹框&…...

家里养几条金鱼比较好?
金鱼,作为备受喜爱的家庭水族宠物,其饲养数量一直是众多养鱼爱好者关注的焦点。究竟养几条金鱼最为适宜,实则需要综合考量多方面因素,方能达到美观、健康与和谐的理想养鱼境界。 从风水文化的视角来看,金鱼数量有着诸…...
写作词汇积累:差池、一体两面、切实可行极简理解
差池 【差池】可以是名词,是指意外的事或错误。 【差池】也可以是形容词,是指参差不齐、差劲或不行。 1. 由于操作不当,导致这次实验出现了【差池】,我们需要重新分析原因并调整方案。(名词,表示意外的事…...

移远EC200A-CN的OPENCPU使用GO开发嵌入式程序TBOX
演示地址: http://134.175.123.194:8811 admin admin 演示视频: https://www.bilibili.com/video/BV196q2YQEDP 主要功能 WatchDog 1. 守护进程 2. OTA远程升级 TBOX 1. 数据采集、数据可视化、数据上报(内置Modbus TCP/RTU/ASCII,GPS协…...
LEED绿色建筑认证最新消息
关于LEED绿色建筑认证的最新消息,可以从以下几个方面进行概述: 一、认证体系更新与发展 LEED认证体系不断更新和完善,以更好地适应全球绿色建筑的发展趋势。例如,LEED v4能源更新已通过投票,并于2024年3月1日全面启用…...

SpringBoot中集成常见邮箱中容易出现的问题
本来也没打算想写得。不过也是遇到一些坑,就记录一下吧,也折腾了小半天 1.maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>2…...

webstorm开发uniapp(从安装到项目运行)
1、下载uniapp插件 下载连接:Uniapp Tool - IntelliJ IDEs Plugin | Marketplace (结合自己的webstorm版本下载,不然解析不了) 将下载到的zip文件防在webstorm安装路径下,本文的地址为: 2、安装uniapp插…...

C# 探险之旅:第七节 - 条件判断(三元判断符):? : 的奇妙冒险
嘿,勇敢的探险家们!欢迎来到 C# 编程世界的奇妙之旅的第七节。今天,我们要探索的是一个神秘而强大的宝藏——三元判断符 ? :。别怕,它听起来复杂,但实际上比找宝藏还简单! 场景设定:宝藏的选择…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...