全栈性能测试教程之性能测试理论(一) mockserver应用
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:先进先出原则
全栈性能测试教程之性能测试理论(一) mockserver应用相关推荐
- 《Python全栈基础教程》目录
专栏地址: <Python全栈基础教程> 更新进度(持续更新中~) 0.前言: ???作者介绍:[]-CSDN全栈领域优质创作者.HDZ核心组成员.华为云享专家Python全栈领域博主.C ...
- 《Python全栈系列教程》目录
专栏地址:<Python全栈基础教程> 专栏结构(即本文目录导航): 〇.前言 一.专栏目录: Python基础部分 Python常用模块部分 Python小技巧部分 Python Web ...
- Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP
本文完整版:<Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP> Vue3 Typescript + Axios 全栈开发教程 前端 Vue3 ...
- Flask全栈开发教程
Flask全栈开发教程 成为使用 Flask.Python.HTML.CSS 和 MongoDB 的全栈 Web 开发人员! 课程英文名:Web Developer Bootcamp with Fla ...
- php不会写 能看懂,人人都能看懂的全栈开发教程——PHP
既然我们是要实现从数据库里读取任务列表这个需求,那么首先我们就得知道如何通过编程的方式从数据库里把数据读出来.这里我们就选 PHP 作为我们的编程语言来实现我们的想法. 为什么是 PHP 呢?主要有以 ...
- Python全栈开发教程笔记
本文档基于B站Python教程 一.print()函数 1. 可以输出数字 print(520) print(98.5) 2. 可以输出字符串 print('hello world') print(& ...
- Python全栈开发教程——002
集成开发环境Pycharm的安装及设置模板 使用交互开发环境和自带的IDLE开发环境编写代码并不是一项长期的解决方案.通常,我们会使用第三方开发环境Python.您可以打开Pitam安装教程网址,选择 ...
- think PHP全栈开发教程,【Thinkphp教程】模板中使用函数
仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用.用于模板标签的函数可以是PHP内置函数或者是用户自定义函数,和 ...
- 花了2万多买的Python教程全套,现在分享给大家……Python入门到精通(Python全栈开发教程)未完待续
我的Python足迹 print("hello word!") #1.整数与浮点 print(123) print(123-321) print(0.1+0.2) #变量 长=10 ...
最新文章
- Swift中依赖注入的解耦策略
- 左室短轴切面_4声窗7切面搞定急诊超声心动图:由浅入深学TTE急诊“心”事
- 互联网学院大数据开发专业欢迎加入
- 离线地图解决方案(二):地图基本控制
- springboot . 配置jpa使用
- 养成一个习惯需要多久?
- java判断是否是doc文件_java判断文件类型
- [js] 使用js实现一个图片剪裁的功能
- PAT1130. Infix Expression (25) 中序遍历
- SQLserver数据库反编译生成Hibernate实体类和映射文件
- TypeScript泛型约束
- 力扣--122. 买卖股票的最佳时机 II
- 『总结』CSS/CSS3常用样式与web移动端资源
- 【生信进阶练习1000days】day16~day22-RNA-seq data analysis with limma edgeR and Glimma
- Ken Thompson的话
- sdn网络搭建以及负载均衡
- root后充电很慢,root后开机慢
- 安卓虚拟键盘_0202年了,苹果IOS和安卓系统的差距还大吗?
- htcm8 android8,HTC全面屏手机 U11 Plus曝光:6寸+骁龙835,安卓8.0系统
- 【SVM分类】基于狮群算法优化实现SVM数据分类matlab源码