性能测试整体认知

市场能力要求:

1、熟悉Linux、Windows等操作系统、熟悉beanshell脚本

2、熟悉jvm调优、Tomcat调优等基础策略

3、熟悉MySQL数据库,掌握java、Python等至少一门编程语言

4、1年独立性能测试经验

5、熟悉常见的压测工具:jmeter

6、熟悉常用的分析调优工具,如visualvm、youkit、jps、jstat等

7、熟悉性能测试的整体流程、能够通过产品需求、梳理出性能测试点、并给出计划方案,进行测试分析,并对系统性能瓶颈进行定位及优化分析。

8、良好的学习能力、沟通能力、团队协作能力

性能测试的目的

发现性能瓶颈

性能测试分类

负载测试:通过逐步加压,达到既定的性能阈值的目标。阈值的设定应该是小于等于某个值,如CPU使用率小于等于80%

压力测试:通过逐步加压,使得系统的某些资源达到饱和,甚至失效的状态,也就是在什么条件下能把系统压崩溃

并发测试:在同一时间内,多个虚拟用户同时访问同一模块、同一功能,通常的测试方法是设置集合点

容量测试:数据库,目的是获取数据库的最佳容量的能力。具体是在一定的并发用户,不同的基础数据量,观察数据库的处理能力,即获取数据库的各项性能指标

可靠性测试:稳定性测试,即系统在高压情况下,长时间运行系统是否稳定,如cpu使用率在80%以上,24小时运行,系统是否稳定,会不会有内存溢出。

异常测试:系统架构测试,如在负载均衡架构,要测挂机等情况的反映

性能测试的工作流程

需求分析 - 性能指标指定 - 脚本开发 - 场景设置 - 监控部署 - 测试执行 - 性能分析 - 性能调优 - 测试报告

常用系统应用分层架构

显示层:web、Android、ios、H5(图片(压缩)、js)

逻辑控制层:api

数据存储层:mysql、MongoDB、redis(分析sql)

自底向上分析

性能指标名词

事务:从客户端发出一个或多个请求,到客户端接收从服务器返回的响应。比如银行取钱。

TPS(Transaction Per Second):每秒钟系统能够处理的事务数。

请求响应时间:从客户端发出一个请求开始到接收到服务器返回的响应整个过程花费的时间。

事务响应时间:从用户角度考虑,整个事务花费的时间(不止一个请求)。

并发:没有严格意义上的并发,并发总是会有先后,是指的一段时间内

1)对同一指令操作

2)对同一系统操作,不同的指令

并发用户数:同一单位时间内(通常是指1s),对系统发出请求的用户数量。

吞吐量:一次性能测试过程中网络上传输的数据量的总和,即网络流量。如:上传、下载

吞吐率:单位时间内网络上传输的数据量,吞吐率 = 吞吐量 / 传输时间

点击率:每秒用户向服务器提交的请求数,即每秒钟用户总共在页面上进行的操作数

资源使用率:对不同系统资源使用情况,如cpu、内存、IO等

在测试过程中对性能做需求分析

分析的目的:

1、明确测试指标

2、明确测试场景

1)开发新系统:参考同行业或使用别人现有的系统

2)老系统:对比以往用户使用行为及用户量

此外还需要考虑业务预期,如客户量的增长

原文地址:https://www.cnblogs.com/sker/p/9950309.html

时间: 2024-11-13 10:44:55

性能测试整体认知的相关文章

JMeter 深入进阶性能测试进阶案例实战

第1章 性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言.操作系统.网络.工具等).性能测试.稳定性.压力.疲劳.容量预估.多并发逻辑.掌握如何开始性能测试,并且掌握在性能测试中每个部分的工作重点,了解软件架构.监控部署.脚本准备.场景设置及知道为什么需要做这些.掌握:事务.请求响应时间....1-1 性能测试行业分析1-2 性能测试技能树1-3 性能测试的目的及分类1-4 性能测试的工作流程1-5 常见系统应用分层架构1-6 性能测试指标定义1-7 性能测试

性能测试入门-Jmeter工具与监控全方位打造

第1章 性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言.操作系统.网络.工具等).性能测试.稳定性.压力.疲劳.容量预估.多并发逻辑.掌握如何开始性能测试,并且掌握在性能测试中每个部分的工作重点,了解软件架构.监控部署.脚本准备.场景设置及知道为什么需要做这些.掌握:事务.请求响应时间.... 1-1 性能测试行业分析 1-2 性能测试技能树 1-3 性能测试的目的及分类 1-4 性能测试的工作流程 1-5 常见系统应用分层架构 1-6 性能测试指标定义 1

Java程序员注意了:奠定你发展的黄金五年,你准备如何把握好?

在Java业界流行着一种说法--黄金5年,就是从程序员入职时算起,前五年的工作选择直接影响整个职业生涯的职业发展和薪资走向.如何把握这五年,从一个刚入行的菜鸟蜕变成一个处事不惊的大佬,这是一个涉及到自身的专业知识储备和选择的难题,那么,一个Java程序员如何做才能完成从入行到大佬的晋升之路呢? 参加工作1-2年之间 在这段时间里,想必对Java已经有了一个深入的了解.首先,你要非常熟悉设计模式,看一些关于代码编写优化的书,提高你的代码能力,能够写出一手优雅的代码:其次,你在工作过程中肯定接触过并

Linux进程的栈和进程中函数的栈帧

主要理解了Linux进程的栈和函数的栈帧的区别和联系 上图中刻画的是一个Linux进程的结构图,其中本文想要关注的栈如上图所示是栈底在0xc0000000地址递减的一块进程内存区域 Linux系统中为每个进程分配的实际大小未做深究 Linux进程的栈的整体认知就是这么多,即 1)栈底在0xc0000000(并不需要栈底指针,函数的栈帧才需要栈底指针) 2)栈的增长方向,地址递减方向 3)栈顶指针esp 4)大小未知(不是本文关注的重点) 5)里面存放的内容是什么呢? 另一个概念是上文中提到的函数

代数几何与动力系统(转)

10月16日,记者从浙江大学获悉,浙大数学科学学院青年学者于飞的探索引起国际数学界浓厚兴趣,4位国际著名数学家日前联名发布论文,证明了于飞在黎曼曲面模空间的动力学领域提出的一个重要猜想,并将其推广到更普遍的情况且应用在数学其他领域.这4位数学家中最著名的当属法国高等科学研究所教授M·孔采维奇,这位数学大师曾获得1998年的菲尔兹奖和由扎克伯格.马云等人提供奖金设立的基础物理学奖和数学突破奖等.其他3位数学家是美国科学院院士.芝加哥大学教授A·埃斯金,巴黎第七大学教授A·卓里奇和德国歌德大学教授M

软件测试职业规划

软件测试职业规划 以下是转载内容. 软件测试人员的发展误区[4] 公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象: 1.开发技术较强的软件测试人员转向了软件开发(非测试工具开发): 2.业务能力较强的测试人员转向了软件需求: 3.沟通能力较强专业能力较强的人员转向了软件实施: 为什么不愿意看到呢,自己培养起来的优秀人员都为别的部门.别的公司干活去了,而测试这边永远都是新人,永远都是刚入门的软件测试工程师:开发 水平一般.业务能

6:知识的领域和结构,一种新的奇思妙想的组合结合

1.三个案例 案例1:幼儿的语言学习 可见现象: 1.听音学语言,只有声音--结果:学不会 2.听看学语言,声音和画面--结果:很容易学会 通过不断的倾听声音和观察的画面形成关联 案例2:PPT训练营 可见现象: 操作技巧很熟练,但是成品整体水平很差劲. 做好PPT的3个领域知识: 1.PPT操作技巧: 插入元素.母版.快捷键.动画 2.足够的审美知识: 空间结构.颜色搭配.元素设计 3.足够的逻辑能力 结构大纲.先后顺序.语言提炼 案例3:记忆数字 一样长度的数字,有些容易记忆有些却很难 20

Java 8 stream try

由于工程有一个需求,什么需求? 恩,就是需要将一个iterable 在多核状态下运行.现在已有的方案是,wrapper iterable,即对Iterable进行封装,将iterable 对象作为封装类的私有成员,然后为其写一个 Synchronized method 或者 Synchronized block,实现对next()函数的唯一访问权.这里推荐 Synchronized block,因为前者会带来Dos 问题(怎么会?在文章里有说明) class A { Iterable<T> i

多线程随笔

1 =================== 2 3 多线程 4 5 ================== 6 7 8 9 多线程 10 11 一.概念: 12 13 程序:(Program)(App)是一个可以运行的文件(我们写的代码) 14 15 进程:(Process)是程序执行的一个操作实体 16 17 即在系统中正在运行的一个应用程序 18 19 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 20 21 比如同时打开QQ.Xcode,系统就会分别启动2个进程 22 2