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:查看结果树里面,取样器结果的各个参数字段含义。

        

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

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

相关文章

程序的调试

一名优秀的程序员也是一名出色的侦探,每一次调试都是尝试破案的过程 目录 前言 一、什么是调试? 二、调试 1.调试是什么 2.基本步骤 三、调试注意事项 1.怎么写出易于调试的代码 assert(断言) const 2.常见错误 总结 前言 主要是怎么调试,调…

FPGA实现GTP光口数据回环传输,基于Aurora 8b/10b编解码架构,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 GT 高速接口解决方案 3、工程详细设计方案工程设计原理框图用户数据发送模块基于GTP高速接口的数据回环传输架构GTP IP 简介GTP 基本结构GTP 发送和接收…

25.DDD数量关系

学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 关系型数据库的数量关系领域模型的数量关系实现聚合数量关系聚合内聚合间具体说明代码 数量关系是本质吗?领域对象之…

每天40分玩转Django:Django视图和URL

Django视图和URL 一、课程概述 学习项目具体内容预计用时视图基础函数视图、类视图、视图装饰器90分钟URL配置URL模式、路由系统、命名URL60分钟请求处理请求对象、响应对象、中间件90分钟 二、视图基础 2.1 函数视图 # blog/views.py from django.shortcuts import render…

语言模型(序列模型)

终于快要毕业了,乘着还在还在研究室,把最后一章sequence模型也学完吧。 Sequence Model 一:基础知识1:符号的定义2:词典(Vocabulary) 与编码(Encoding) 二:RNN(Recurrent Neural Networks) 循环神经网络1&…

【自然语言处理与大模型】使用llama.cpp将HF格式大模型转换为GGUF格式

llama.cpp的主要目标是在本地和云端的各种硬件上以最小的设置和最先进的性能实现LLM推理。是一个专为大型语言模型(LLM)设计的高性能推理框架,完全使用C和C编写,没有外部依赖,这使得它可以很容易地被移植到不同的操作系…

npm : 无法加载文件 D:\nodejs\npm.ps1

问题描述 npm run serve 启动一个Vue项目,报错如下: npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/? LinkID135170 中的 about_Execution_Policies。…

线程池+线程安全+常见锁

目录 一、线程池1、日志与策略模式2、线程池设计3、线程安全的单例模式(1)单例模式的特点(2)饿汉实现方式和懒汉实现方式(i)饿汉方式实现单例模式(ii)懒汉方式实现单例模式&#xff…

数据结构6.4——归并排序

基本思想: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个…

revit转gltf,revit转3dtiles,如何将Revit模型转为3DTiles格式并在Cesiumjs中高效可视化

Revit模型导出gltf、glb与3dtiles有多种方式,但一般的商业工具收费普遍较高:Cesiumlab导出3dTile格式数据,Cesiumlab暂时可试用3天,会员版收费每年800;BimAngleEngine导出3dTile格式数据BimAngleEngine暂时可试用30天&…

可视化建模与UML《部署图实验报告》

一、实验目的: 1、熟悉部署图的基本功能和使用方法。 2、掌握使用建模工具软件绘制部署图的方法 二、实验环境: window11 EA15 三、实验内容: 根据以下的描述,绘制部署图。 网上选课系统在服务器端使用了两台主机,一…

在CentOS中安装和卸载mysql

在CentOS7中安装和卸载mysql 卸载mysql1、查看是否安装过mysql2、查看mysql服务状态3、关闭mysql服务4、卸载mysql相关的rpm程序5、删除mysql相关的文件6、删除mysql的配置文件my.cnf 安装mysql1、下载mysql相关的rpm程序2、检查/tmp临时目录权限3、安装mysql前的依赖检查3、安…

使用ERA5数据绘制风向玫瑰图的简易流程

使用ERA5数据绘制风向玫瑰图的简易流程 今天需要做一个2017年-2023年的平均风向的统计,做一个风向玫瑰图,想到的还是高分辨率的ERA5land的数据(0.1分辨率,逐小时分辨率,1950年至今)。 风向,我分为了16个&…

软考:工作后再考的性价比分析

引言 在当今的就业市场中,软考(软件设计师、系统分析师等资格考试)是否值得在校学生花费时间和精力去准备?本文将从多个角度深入分析软考在不同阶段的性价比,帮助大家做出明智的选择。 一、软考的价值与局限性 1.1 …

Qt绘制仪表————附带详细说明和代码示例

文章目录 1 效果2 原理3 编码实践3.1 创建仪表属性类3.2 设置类属性3.3 绘制图案3.3.1 设置反走样3.3.2 绘制背景3.3.3 重新定义坐标原点3.3.4 绘制圆环3.3.5 绘制刻度线3.3.6 绘制刻度线上的描述值3.3.7 绘制指针3.3.8 绘制指针数值和单位3.3.9 控制指针变化 扩展福利参考 1 效…

vue 纯前端预览pdf,纯前端实现pdf加水印下载文件也带水印,防止pdf下载

效果图 1.pdf预览 原理:主要是利用pdfh5这个插件来完成的 使用方法: 1.页面需要有一个容器例子: 2.下载pdfh5插件 npm install pdfh5 (注意:webpack5之后不会下载polyfill 需要手动下载 所以引入pdfh5的时候会报错) 解决方案:下载 node-polyfill-webpack-plugin npm i…

重生之我在异世界学编程之C语言:深入文件操作篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 函数递归与迭代 引言正文一、为什么要用文件二、文…

linux-16 关于shell(十五)date,clock,hwclock,man,时间管理,命令帮助

想显示一下当前系统上的时间该怎么显示?有一个命令叫做date,来看date命令,如下图, 第一个星期几对吧?然后是月日小时分钟秒,最后一个是年对吧?CST指的是它的时间格式,我这个可以先姑…

严蔚敏老师,一路走好

Hey,小伙伴们,今天我要和大家分享一个令人心痛的消息,但也是我们向一位伟大的学者致敬的时刻。:清华大学计算机教授、《数据结构》编著者严蔚敏 去世,享年 86 岁。她的离去,让无数学子和同行感到深深的哀痛…

Input Action (输入动作) 在虚幻引擎中常用的值类型

1. Digital (bool) 含义: Digital 类型代表一个离散的、二元的输入状态,它只有两种可能的值:true(按下,激活)或 false(未按下,未激活)。 用途: 最常用于表示按键或按钮的按下状态。 适合于开关类型的操作,比如: 跳跃(按键按下时跳跃,松开时不跳跃) 奔跑/行走切换 …