性能测试分析与使用

这篇具有很好参考价值的文章主要介绍了性能测试分析与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

性能测试分析与使用

一.为什么要做性能测试?

xx系统已经成功发布,依据之前项目的规划,计划服务1000+客户,未来势必会出现业务系统中信息大量增长的趋势。
随着该系统在生产状态下日趋稳定,也让我们可以更静下心来去关注性能方面的问题:

  1. 能够承受多大的数据量?

  2. 系统的瓶颈是什么?

  3. 代码的质量怎么样?

    这些问题都需要通过性能测试来给出答案

二.需要注意什么?

1.明确测试目的

性能测试的目的分为两种:
  • 验证:验证系统是否符合相关的性能需求。 如:满足500人的并发请求

  • 定位调优:通过测试获取相关数据,针对数据进行分析、定位、调优。

2.确定测试内容

  • 明确业务点与优先级

  • 要根据功能、性能的优先级去划分业务的优先级别,确定待测和不测业务

  • 针对不同的业务和场景确定相关的性能需求:吞吐量、响应时间等。

3.了解性能测试类别

  1. 网络级别的测试 当前测试

    吞吐量和响应时间

  2. 操作系统的测试

    cpu利用率, 磁盘交换率

  3. 数据库级别的测试

    数据库并发连接数 ,锁资源的使用数, I/O的流量大小

4.受影响的因素

  1. 网络带宽 如:阿里50M 100M

  2. 服务器数量 如:阿里云服务器

  3. 服务器CPU,内存等性能 如:阿里的 2G 8G 固态硬盘,机械硬盘

  4. 服务器操作系统版本

  5. 代码质量

三.基本使用操作

Jmeter使用文档在线地址: [https://blog.csdn.net/r657225738/article/details/114981779]{.underline}

1. 简单的http请求

2. 自定义用户变量

3. 提取请求数据,并存入文件中

场景: 批量新增,批量查询
所需组件: [正则表达式提取器->BeanShell 后置处理程序] 注意点:
文字编码: utf-8

4. 使用CSV文件,读取数据

场景: 批量编辑,批量删除

所需组件: [CSV 数据文件设置]

四.用数据说话

1.代码优化前后对比

问题列表-我的问题

性能测试分析与使用


性能测试分析与使用

2.单双副本的性能差距

性能测试分析与使用

五.经验总结

1.代码优化思路

通过APM链路跟踪 查看API的操作日志

  • 1.减少不必要的访库操作

    2.减少不必要的数据调用

例: 问题列表-我的问题 更新前与更新后

通过测试和代码调优,有两点需要大家注意

  • 1.测试工具: Jemter进行并发测试

    2.问题定位: 具体API通过内网APM链路跟踪来找到优化代码方向

得出结果:

  1. 并发测试中,API异步会直接提升性能.未写异步的API 20个并发, 吞吐量可能低至个位数. API改为Task异步 之后,100个并发, 吞吐量能到150-200

  2. 去掉代码中不必要的API访问可继续提升性能, 性能 提升明显. (和去掉的无关API访问数量有关) 测试 中,100个并发,吞吐量能到200-250

2.性能测试时API报错解答

在保证API地址与参数填写正确的情况下,如还报错则为以下两种情况

1. API报500

1.1数据库崩溃,卡死,需要重启

2. API报404

2.1所在企业Api服务卡死,需要重启

六.小知识

6.1聚合报告中的参数含义

  • 最小值:指请求到服务器后返回数据所需最少时间

  • 最大值:指请求到服务器后返回数据所需最多时间

  • 异常值:指请求会出现断开或连接异常的比例

  • TPS(吞吐量):指每秒可处理多少请求,如120/sec,即每秒可处理120个网络请求. 20/min,即每分钟

  • 平均值:指所有请求响应时间总和的平均值

  • 99%:指有99%的请求在此范围之下,如354ms / 99%,即有99%的请求在354ms之前就完成了响应

6.2增加Replicated(副本) /Scale(规模)的作用

1.自己理解: Docker会在发生故障时花费更少的时间在另一个节点上创建新实例,这有助于提高性能,减少故障率.如目前有三个副本(replicated),当其中一个副本(服务器)承受不住时,会自动转移至可用的副本上。

2.专业解释: 让我们以包含单个实例的副本为例。现在,假设有一个失败。Docker Swarm将注意到该服务失败并重新启动它。该服务将重新启动,但是重新启动不是即时的。假设重新启动需要5秒钟。在这5秒钟内,您的服务不可用。单点故障。

如果您的副本包含3个实例怎么办。现在,当其中一个发生故障(没有完美的服务)时,Docker Swarm将注意到其中一个实例不可用,并创建一个新实例。在这段时间内,您仍然有2个运行正常的实例来处理请求。对于您的服务的用户,似乎没有停机时间。该组件不再是单点故障。

性能测试分析与使用

6.3 Scale调度规则

将node1宕机后或将node1的docker服务关闭,那么它上面的task实例就会转移到别的节点上。当node1节点恢复后,它转移出去的task实例不会主动转移回来,只能等别的节点出现故障后转移task实例到它的上面。使用命令\"docker node ls\",发现node1节点已不在swarm集群中了。

6.4 高并发的通俗含义

打个比方说,好比你开小吃店。

你有3个收银(web请求处理线程),5个厨师(数据库连接)。

一开始,生意没开多久。客人比较少。1个收银都能搞定。另外的人还闲着。

后来生意越来越好。于是得3个收银都干活(并发)。

结果过了一段时间来了个网红,突然店就火了,一大群人(高并发)慕名而来。

结果3个收银跟前大牌长龙(请求阻塞排队),而且收银也不是机器人,有的时候也会搞错单子(并发异常)。

再看后面厨师,单子越来越多,厨师一直做菜一直做菜,越来越来累,就越做越慢(数据库压力大,请求响应时间变长)。

菜出得越慢,后面排队的人就越多(请求阻塞后恶性循环)。

有的客人等不及了就直接走了(服务超时),顺手还给了你一个差评,影响自身的心情(影响上层服务)。

而后面的厨师呢,做了N道菜之后终于扛不住了,再也做不动了(数据库连接耗尽)。

于是乎小店只能暂停接客(服务器拒绝请求,报错502)。

6.5吞吐率和并发数通俗意思

案例一: 吞吐率和并发数是两个完全独立的概念。拿银行柜台来举个例子,并发数指同时有多少人往银行柜台涌来。吞吐率则指银行柜台在一段时间内可以服务多少个人

案例二: 一个水龙头开一天一夜,流出10吨水;10个水龙头开1秒钟,流出0.1吨水。当然是一个水龙头的吞吐量大。你能说1个水龙头的出水能力比10个水龙头的强?所以,我们要加单位时间,看谁1秒钟的出水量大。这就是吞吐率 0.1吨水/秒
,报错502)。文章来源地址https://www.toymoban.com/news/detail-400612.html

到了这里,关于性能测试分析与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 你真的会性能测试吗?性能测试需求分析,从业务到数据(详细)...

    产品需求 业务场景: 一个问卷调查的功能,然后产品和业务会不定时通过前端界面去根据筛选条件查询相关问卷问题的答案明细,但是觉得很慢,让测试这边给出一个指标。 系统架构: MySQL数据库,所有问卷问题相关的数据都存储在同一张表,单台服务器,无缓存,通过一

    2024年02月10日
    浏览(58)
  • 性能测试需求分析和学习

    在实际的工作中系统的性能需求通常是一个笼统的需求,而且有可能给提需求的人并不知道具体的性能需要,所以只能含糊的列出。如果测试人员不搞清楚,就会出现实际要把杀猪刀,需求标明能屠龙!!! 下面,还是举一个讲个我真实经历过的故事来做实例分析。 故事开

    2024年02月09日
    浏览(44)
  • 性能测试分析定位

    当我们在性能测试过程中,遇到TPS无法上去、请求响应时间过长、各类资源利用率遇到瓶颈时,应该如何对它们进行分析定位。   硬件资源不足:服务器的CPU、内存、磁盘等硬件资源不足,无法支撑高并发的请求处理。可以通过增加硬件资源或者优化服务器配置来提升TPS。

    2024年03月26日
    浏览(47)
  • 性能测试需求分析怎么做?(中)

    本系列文章我们为大家系统地介绍一下性能测试需求分析,让大家全面掌握性能测试的第一个环节。本系列文章将会从性能测试需求分析整体概述、性能测试需求分析内容、性能测试需求分析方法这三个方面进行展开。在(上)部分中,我们为大家介绍了性能测试需求的组成

    2024年02月16日
    浏览(42)
  • 【银行测试】金融项目+测试方法范围分析,功能/接口/性能/安全...

    1、金融行业软件特征分析 金融行业软件系统具有集中度高、规模庞大、数量多、系统之间关联性强、业务复杂、需求变化快等特点,如何有效可行的实现软件测试和软件质量控制,是对金融行业软件测试人员提出的基本要求。 1)金融行业软件的业务特点 以金融行业软件的

    2024年02月04日
    浏览(62)
  • redis性能测试及瓶颈分析调优

    一、简介 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API mysql与redis的区别: 类型上mysql是关系型数据库,而redis是缓存数据库; 作用上mysql用于持久化的存储数

    2024年02月06日
    浏览(56)
  • 性能测试时,如何分析radis的瓶颈

    通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,,满足实时的高并发需求。而通常在一个电商类型的数据处理过程之中,有关商品,热销,推荐排序的队列,通常存放在Redis之中,期间也包扩Storm对于Redis列表的读取和更新。 性能极高 --Redis能支持超过

    2024年02月11日
    浏览(84)
  • 性能测试,python 内存分析工具 -memray

    Memray是一个由彭博社开发的、开源内存剖析器;开源一个多月,已经收获了超8.4k的star,是名副其实的明星项目。今天我们就给大家来推荐这款python内存分析神器。 Memray可以跟踪python代码、本机扩展模块和python解释器本身中内存分配,可以生成多种不同类型的报告,帮助您分

    2024年02月15日
    浏览(49)
  • 性能测试分析案例-定位redis响应延迟

    预先安装 docker、sysstat 、git、make 等工具,如 apt install docker.io sysstat 案例由 Python 应用 +Redis 两部分组成。其中,Python 应用是一个基于 Flask 的应用,它会利用 Redis ,来管理应用程序的缓存,并对外提供三个 HTTP 接口: /:返回 hello redis; /init/:插入指定数量的缓存数据,如果

    2024年01月16日
    浏览(44)
  • 【测试开发】单元测试、基准测试和性能分析(以 Go testing 为例)

    你写不出 bug-free 的代码。 你认为自己写出了 bug-free 的代码,但它在你意想不到的地方出错了。 你觉得自己写出了永不出错的代码,但它的性能十分糟糕。 “测试左移”距离真正落地或许还有不短的距离,但在开发过程中注重自己的代码质量,至少养成 写单测 的习惯还是很

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包