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# 编程世界的奇妙之旅的第七节。今天,我们要探索的是一个神秘而强大的宝藏——三元判断符 ? :。别怕,它听起来复杂,但实际上比找宝藏还简单! 场景设定:宝藏的选择…...
FlinkCDC实战:将 MySQL 数据同步至 ES
📌 当前需要处理的业务场景: 将订单表和相关联的表(比如: 商品表、子订单表、物流信息表)组织成宽表, 放入到 ES 中, 加速订单数据的查询. 同步数据到 es. 概述 1. 什么是 CDC 2. 什么是 Flink CDC 3. Flink CDC Connectors 和 Flink 的版本映射 实战 1. 宽表查…...
debug小记
红框: 步过:遇到方法不想进入方法 绿框:代码跑在第几行也可以看见 蓝框:可以显示变量的值,三种方式都可以看变量的值...
Qt C++ 显示多级结构体,包括结构体名、变量名和值
文章目录 mainwindow.hmainwindow.cppstructures.hmain.cpp QTreeView 和 QStandardItemModel 来实现。以下是实现这一功能的步骤和示例代码: 定义多级结构体: 假设你有一个多级结构体,如下所示: struct SubStruct {int subValue…...
【JAVA】旅游行业中大数据的使用
一、应用场景 数据采集与整合:全面收集旅游数据,如客流量、游客满意度等,整合形成统一数据集,为后续分析提供便利。 舆情监测与分析:实时监测旅游目的地的舆情信息,运用NLP算法进行智能处理,及…...
【AI+网络/仿真数据集】1分钟搭建云原生端到端5G网络
导语: 近期智慧网络开放创新平台上线了端到端网络仿真能力,区别于传统的网络仿真工具需要复杂的领域知识可界面操作,该平台的网络仿真能力主打一个小白友好和功能专业。 https://jiutian.10086.cn/open/jiutian.10086.cn/open/ 端到端仿…...
微服务-01【续】
1.OpenFeign 上篇文章我们利用Nacos实现了服务的治理,利用利用RestTemplate实现了服务的远程调用。但是远程调用的代码太复杂了: 而且这种调用方式,与原本的本地方法调用差异太大,编程时的体验也不统一,一会儿远程调用…...
测试工程师八股文01|Linux系统操作
一、Linux系统操作 1、gzip tar和gzip结合使用 $ tar czf b.tar.gz *txt 以gzip方式打包并且压缩 $ tar xzf b.tar.gz -C btar 以gzip方式解压并解包,如果 btar 目录不存在,则需要先手动创建该目录。 代码第二行:如果没有指定 -C …...
【Qt】qt基础
目录 一、使用Qt Creator创建qt项目 二、项目文件解析 三、Qt中创建图形化界面的程序的两种方法 四、对象树 五、Qt中处理打印乱码问题的利器:qDebug() 一、使用Qt Creator创建qt项目 1.选择项目模板 选中第一类模板Application(Qt应用程序,包含普…...
UniScene:Video、LiDAR 和Occupancy全面SOTA
论文: https://arxiv.org/pdf/2412.05435 项目页面:https://arlo0o.github.io/uniscene/ 0. 摘要 生成高保真度、可控制且带有标注的训练数据对于自动驾驶至关重要。现有方法通常直接从粗糙的场景布局生成单一形式的数据,这不仅无法输出多样化下游任务…...
TensorFlow深度学习实战(1)——神经网络与模型训练过程详解
TensorFlow深度学习实战(1)——神经网络与模型训练过程详解 0. 前言1. 神经网络基础1.1 神经网络简介1.2 神经网络的训练1.3 神经网络的应用 2. 从零开始构建前向传播2.1 计算隐藏层节点值2.2 应用激活函数2.3 计算输出层值2.4 计算损失值2.4.1 在连续变…...
怎么做网站和艺龙对接/58同城黄页推广
本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每…...
大连中山区网站建设/大庆黄页查询电话
前言 首先说明,对于JavaScript这门脚本语言,我是个菜鸟。虽然也写过不少JavaScript代码,但一直是不求甚解,直到最近才开始系统学习这门语言。学习的原因是我即将毕业,过了年就要正式工作了,而我要入职的职位…...
承德做网站设计的/百度云资源链接分享群组
实现的思想: 1、当鼠标放在图片上面的时候触发mouseover mouseenter两个事件(图片变得透明)2、当鼠标离开图片的时候触发mouseleave mouseout两个事件(图片变为不透明) <!DOCTYPE html PUBLIC "-//W3C//DTD …...
可以做平面设计兼职的网站/seo权重优化软件
201. 数字范围按位与 给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。 示例 1: 输入:left 5, right 7 输出:4 示例 2…...
海尔网站建设水平/一键seo提交收录
方案(模式)是一个属于某个用户的所有对象的统称。 当你建立表空间、用户,并且建立了对象(如表、存储过程...)后,你就有了方案。 也就是这些对象的统称。 我曾经测试过oracle自带的hr方案,用system/manage连接,呵呵,当…...
公司网站维护流程/互联网广告代理可靠吗
已同步到个人博客,欢迎访问。 如果使用了Webpack进行了文件的组织、编译,就可以使用require.context令组件实现自动化注册。 这个过程需要在创建Vue实例之前(new Vue({}))之前完成,例如src/main.js require.context …...