全栈性能测试教程之性能测试理论(一) mockserver应用

news2024/9/25 19:24:06

1、mockServer

1.1什么是mockServer

moco=替代     Server=服务

mocoServer即为测试替身的服务

主要针对于单元测试的应用,主要应用于解除单元测试之间的依赖

 

1.2mocoServer使用的场景

前端程序员

前端已经写好页面,但是后端的接口没有写好,

正确的姿势就是前端模拟后端的操作,具体方式如下

[
 {
     "request":
     {
     "method": "get",
     "uri": "/products"
   },
     "response":
 {
     "json":
 {
     "name": "我真帅",
     "type": "WEB",
     "version": "V1.0.0",
     "master": "aaaa",
     "description": "this is a test api"
       }
     }
   }
]

启动的命令为:

java -jar -moco-runner-0.10.0-standalone.jar http -p 12315 -c product.json

其中 -p 为制定端口 -c 为指定文件

启动成功的标识:

java -jar moco-runner-0.11.0-standalone.jar http -p 12306 -c product.json
#启动后的输出
14 ⼆⽉ 2022 09:46:13 [main] INFO Server is started at 12306
14 ⼆⽉ 2022 09:46:13 [main] INFO Shutdown port is 58954
14 ⼆⽉ 2022 09:47:27 [nioEventLoopGroup-3-3] INFO Request received:

后端程序员

举例说明A给B服务一个车牌号,那么B返回车辆的其他信息

[
  {
    "request":
    {
      "method": "post",
      "uri": "/parking",
      "json":
      {
        "park": "B250BA"
      }
    },
    "response":
    {
      "json":
      {
        "park": "B250BA",
        "in": "2022-2-14 00:00:00",
        "out": "2022-2-14 12:00:00",
        "money": "$250",
        "master": "jiachao"
      }
    }
  }
]

 然后我们在postman当中进行测试

 测试

在我们进行测试过程中,没有数据,解决方案如下

自己造数据

自己mock数据

具体方式如下

[
  {
    "request":
    {
      "method": "get",
      "uri": "/products"
    },
    "response":
    {
      "json":
      [
      {
        "name": "wo真帅",
        "type": "WEB",
        "version": "V1.0.0",
        "master": "bbb",
        "description": "this is a test api"
      },
      {
        "name": "wozuishuai",
        "type": "APP",
        "version": "V1.0.1",
        "master": "aaa",
        "description": "this is a test api"
      }
      ]
    }
  }
]

 2、性能测试相关知识

软件性能测试常用术语

2.1响应时间

一次操作完成后,也就是客户端发送请求到服务端后,服务端的响应数据时间,包含了用于等待和服务的时间

响应时间(Resoponse Time)=网络时间+应用程序的处理时间

 2.2并发用户数

性能测试的核心是验证当前系统是否支持现有用户的访问,也就是说系统可以承受同一时间段多少用户来访问系统

并发用户数:N个用户向服务发送请求

在线用户数:仅仅在线,但是并不代表发送了请求,僵尸用户

开发用户数秒可以说:不论从业务视角出发,还是服务端承受压力而言,描述的是同一时间同时向客户端发出请求的客户,某些时候也可以称为"并发测试",这中间主要体现的服务端承受的最大并发访问数。

2.3吞吐量

主要用于数据传输方面,也就是测试系统的执行效率。该术语用于描述数据传输速度(字节/秒或比特/秒),在某些情况下(如DB层面),吞吐量值得是操作的速度,也就是每秒操作数或者每秒业务数。或者可以说单位时间内客户端请求的数量,直接体现系统的性能承载能力。

2.4性能计数器

主要指的是性能测试过程中操作系统以及其他组件的一些数据指标

WebServer:HTTP连接数

应用Server:服务被部署的系统的CPU和内存资源

DataServer:IOPS

IOPS:该术语主要是针对数据库的,也就是每秒发生的输入/输出操作的次数,是数据传输的一个度量方法。用于磁盘的读写,IOPS值得是每秒读和写的次数。

性能测试的过程中,任何指标不能超过75%,一旦超过75%,说明可能存在瓶颈

2.5使用率

对于服务所请求的资源,使用率描述的所给定的时间区间内资源的繁忙程度。

Out Of Memory(OOM):内存泄漏

如果一个业务中,会使用到大量的内存资源,总的内存资源是4G,在⼀定数据量的情况下执⾏该 业务形态,内存使⽤率从100M⼀直占⽤到3G,然后随着业务形态内存资源得到释放呈下降的趋势,那么可以说内 存使⽤率最⾼为75%

2.6思考时间

思考时间英文名称是Think Time,也称为休眠时间,在业务视角,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。

2.7TPS/QPS

事务指的是某个操作或者是⼀组操作的组合,如登录的事务那么就是输⼊账户和密码,点击登录按钮跳转到登录成 功的⻚⾯并且信息都加载出来。TPS统计的是每秒处理的事务数,即系统每秒能够处理的事务的数量。QPS指的是 每秒查询率,如DB服务器在规定时间内处理流量多少的衡量标准。

2.8相关测试理论

调度:

CPU密集型:应用程序执行繁重的计算,通常运行时间比较长,会占用大量的CPU

IO密集型:应用程序执行I/O,计算不多,会占用大量的内存资源 系统的最小粒度是线程,也就是说系统调度中粒度最细的就是对线程的调度。队列

线程优先级:

优先级程度是1-10 默认的优先级为5

队列:queue:先进先出原则

  • 重点:600G的学习资料,懂的都懂

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

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

相关文章

[Android]Mac电脑Android Studio使用真机调试运行

一、Mac电脑连接Android真机 我这里是一台中兴手机 1. 手机打开USB调试 打开“设置”找到“关于手机”进入,连续点击版本号,直到提示“您已经进入开发者模式”。回到“设置”找到“系统与更新”进入,再进入“开发者选项”,打开…

Vue笔记_03组件_mavonEditor组件(基于vue)

目录下载mavonEditor导入并注册mavonEditor组件[1] 全局注册[2]局部注册使用mavonEditor属性修改举例说明1-不展示预览分屏工具栏修改举例说明-根据配置显示工具栏编辑器插槽举例说明-自定义工具栏按钮函数监听下载mavonEditor 使用命令 npm install mavon-editor --s 进行下载…

Koa 6 响应(Response)

Koa Koa 本文仅用于学习记录,不存在任何商业用途,如侵删 6 响应(Response) 文章目录Koa6 响应(Response)6.1 APIStringBufferStreamObjectKoa Response 对象是在 node 的原生响应对象之上的抽象,提供了诸多对 HTTP 服务器开发有用的功能。 6…

Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版)

Linux系统移植流程 之前一直用官方给的Linux系统文件,没有自己系统地移植过,故整理一遍 不使用petalinux工具,尽管它提升了开发效率,但是不利于学习移植过程 嵌入式Linux系统移植主要由四大部分组成: 搭建交叉开发环…

【计算机网络】实验四 应用层和传输层协议分析(PacketTracer)

一.实验目的 通过本实验,熟悉PacketTracer的使用,学习在PacketTracer中仿真分析应用层和传输层协议,进一步加深对协议工作过程的理解。 二.实验内容 研究应用层和传输层协议 从 PC 使用 URL 捕获 Web 请求,运行模拟并捕获通信…

健身用什么耳机比较好、五款适合健身房运动的耳机推荐

大家都运动本身是一件特别枯燥无味的事情,尤其是一个人在健身房沉浸式撸铁的时候,而听音乐是大多数人缓解枯燥的首选,不过在健身的过程中拥有一款既要音质好、又要适合运动佩戴防水防汗的耳机可就不那么容易了。今天给大家推荐几款最佳的运动…

如何在lnmp中实现PHP多版本共存

背景:one框架需要swool扩展,同时php版本需要7.3,目前服务器安装的是lnmp1.6其中php5.6. 所以觉得安装一个php7.3作为切换版本 ,以下是安装步骤 1.查找lnmp的install.sh文件,一般在/root/lnmp1.5/install.sh 下执行命令…

【Docker】Compose容器编排:微服务实战

Docker-Compose是Docker官方的开源项目, 负责实现对Docker容器集群的快速编排。是一个工具软件,可以 管理多个 Docker 容器 组成一个应用。你需要 定义一个 YAML 格式的配置文件docker-compose.yml ,写好多个容器之间的调用关系。然后&#x…

GeoTools快速入门

本文将帮助读者获取GeoTools的源代码并进行编译。下载源代码并进行编译有助于读者对GeoTools建立整体性的理解,帮助读者厘清GeoTools的模块划分。同时因为GeoTools是一个开源类库,读者在实际使用中遇到的一些问题可以通过直接阅读GeoTools源代码来进行解…

vue3+ts项目中封装3d单柱柱状图

vue3ts项目中封装单柱的柱状图 成品图 下载echarts npm i echarts 封装组件为Barchart.vue文件 <template> </template><script setup lang"ts"> import { nextTick, watch } from vue import echarts from /assets/ts/echarts; import useRes…

[附源码]计算机毕业设计在线项目管理Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

十三、Vue CLI(2)

本章概要 项目结构编写一个 Hello 组件package.json 13.4 项目结构 通过 Vue CLI 生成的项目的目录结构及各文件夹和文件的用途说明如下&#xff1a; |--node_modules //项目依赖的模块 |--public //该目录下的文件不会被 Webpack 编译压缩处理&…

Springboot社区疫情防控系统毕业设计,社区疫情防控管理系统设计与实现,毕设作品参考

功能清单 【后台管理员功能】 关于我们设置&#xff1a;设置学校简介、联系我们、加入我们、法律声明、学校详情 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信…

【树莓派开发日记2 】树莓派安装Ubuntu22系统及启动黑屏等问题的踩坑记录

树莓派安装Ubuntu22系统及启动黑屏等问题的踩坑记录 在成功进行了组装后&#xff0c;就到了最为关键的部分了&#xff0c;进行树莓派的系统烧录。虽然树莓派有自己对应的系统&#xff0c;raspbian&#xff0c;但是绝大部分的开发者还是会选择Ubuntu系统作为主要的开发系统 Ub…

软件架构模式

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;瞳孔空间 创建软件系统基本结构的原则称为软件体系结构。软件结构由软件元素及其相互关系组成&#xff0c;这些元素起着蓝图的作用&#xff0c;规划了要执行的任务的模式。软件设计团队极大地依赖于…

【java】2-串行与并发分别将计数器从1累加到10亿

串行、并行、并发 串行是100个人的队伍从一条通道里顺序通行 并行是100个人从n(n>1)条通道分别通行 并发是只有一条通道&#xff0c;100个人排成n个队伍&#xff0c;每队依次派一个人从通道通行&#xff1b;或是有m条通道&#xff0c;100个人排成n个队伍&#xff0c;各个队…

[附源码]计算机毕业设计SpringBoot心理健康系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Spark3 AQE (Adaptive Query Execution) 一文搞懂 新特性

Spark 3 AQE (Adaptive Query Execution) 序 在搭建平台的过程中&#xff0c;我们使用 CDH 6.3.2 进行搭建&#xff0c;但 CDH 中阉割掉了 spark-sql 功能&#xff0c;所以我们外挂了 Spark 3&#xff0c;补充 spark-sql 功能&#xff0c;版本为 3.3。在使用的过程中&#xff…

【抓包工具】win 10 / win 11:WireShark 下载、安装、使用

目录 一、WireShark 下载 二、WireShark 安装 &#xff08;1&#xff09;双击运行安装程序 &#xff08;2&#xff09;Choose Components&#xff1a;选择组件 &#xff08;3&#xff09;Additional Tasks&#xff1a;附加任务 &#xff08;4&#xff09;Choose lnstall …

精品基于Java的社区团购系统SSM

《基于Java的社区团购系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xf…