关键词:
性能测试初体验
1、测试分类
从图中可以看出,性能测试在整个软件测试环节中占了50%的内容,比如负载测试、压力测试、性能测试、大数据量测试、恢复测试、内容泄露测试、竞品测试(比较测试)和可靠性测试。
2、性能测试流程
(1)业务学习:通过查看文档,手动操作系统来来了解系统性能;
(2)需求分析:分析系统非功能需求,圈定性能测试的范围,了解系统的性能指标;
(3)工作评估:工作量分解,评估工作量,计划资源投入;
(4)设计模型:圈定性能测试范围后,把业务模型映射成测试模型;
(5)计划编写:计划测试工作,在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等;
(6)脚本开发:录制或者编写性能测试脚本;
(7)测试环境准备:性能测试环境准备包括服务器与负载机两部分,服务器是被测系统的运行平台,负载机是我们用来生产负载的机器,用来安装负载工具,运行测试脚本;
(8)测试数据准备:根据测试模型来准备被测系统的主数据与业务数据;
(9)测试执行
(10)缺陷管理:对性能测试过程中发现的缺陷进行管理;
(11)性能分析:对性能测试过程中暴露出来的问题进行分析,找出原因;
(12)性能调优:性能测试人员与开发人员一起来解决性能问题;
(13)测试报告:测试工作的重要交付文件,对测试结果进行报告,主要包括性能指标说明(tps、rt、cpu等);
性能测试主要交付件:
1 测试计划 2 测试脚本 3 测试程序 4 测试报告或者阶段性测试报告
(14)评审:对性能报告中的内容进行评审,确认问题,评估上线风险。
3、性能测试成功与失败要素
重点关注点:
1 评估系统,需求分析 2 场景设计、用例设计 3 测试执行、是否通过 4 性能诊断优化
(1)评估系统,需求分析
对性能测试进行需求分析,通常情况下测试人员会直接依赖需求人员或者项目经理的口述或者有缺陷的文档。实际上,大多数情况下我们测试人员需要自己来引导相关的运维人员和需求人员给出具体的需求数据,并对这些数据进行二次分析,得出我们真实的性能需求。
对于初次上线的系统,我们需要使用同行的系统数据,进行用户行为分析和商业数据结构的估算为前提,利用性能估算法推算。得到的负荷和响应时间数据可以被应用于验证所计划的模型的能力,并帮助做出对策。
对于已经上线的系统,我们可以通过运维人员获取TPS和时间的比例分布图、用户数和时间的分布图、数据库ER关系图、容量数据等,直接精确得出目前系统的用户行为和业务数据关系,进而得出我们需要的性能需求。
(2)场景设计、用例设计
(3)测试执行、是否通过--需要关注的指标
(4)性能诊断优化
4、不同角色看性能
技术部门一般有下面几种角色:开发、测试、架构师、运维人员、(系统管理员、DBA)
(1)黑盒测试的角度
黑盒测试只关心应用程序的单步响应时间,性能好坏就看应用时间多少,也就是数据流经过服务器、服务器集群经过网络传输后往返的时间总和。
(2)开发角度
1 架构合理性 2 数据库设计合理性 3 代码 4 系统内存的使用方式 5 系统线程使用方式 6 系统资源是否有恶性,不合理竞争
(3)系统管理员角度
1 硬件资源利用率 2 JVM 3 DB 4 系统是否支持7*24的服务 5 扩展性,兼容性,最大容量,可能的瓶颈
(4)性能测试的角度
1 服务器硬件的性能 2 根据需求和历史数据制定性能目标 3 建立性能通过模型 4 对开发代码框架和硬件框架进行性能分析 5 针对开发发布版本的基准测试 6 执行软件性能验收及稳定性测试 7 生产环境的配置及优化 8 制定性能测试的测试用例 9 制定性能测试的场景设计 10 协调各部门配合 11 特定的性能分析
5、性能测试相关术语
(1)负载:模拟一万五操作对服务器造成压力的过程,比如模拟100个用户进行发帖。
(2)性能测试(Performance Testing):模拟用户负载来测试系统在负载情况下,系统的响应时间,吞吐量等指标是否满足性能需求。
(3)负载测试(load Testing):在一定软硬件环境下,通过不断加大负载(不同虚拟用户数)来确定在满足性能指标情况下能够承受的最大用户数。这些性能指标包括:TPS(每秒事务数)、RT(事务平均响应时间)、CPU using(CPU利用率)、MEM using(内存使用率)等软硬件指标。
(4)配置测试(Configuration Testing):为了合理地调配资源,提高系统运行效率,通过测试手段来获取、验证、调整配置信息的过程。
(5)压力测试\强度测试(Stress Testing):在一定软硬件环境下,通过高负载的手段来使服务器资源处于极限状态,测试系统在极限状态下长时间运行是否稳定,确定是否稳定的指示包括TPS、RT、CPU using、MEM using等。
(6)稳定性测试(Endurance Testing):在一定软硬件环境下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定。一般我们会在满足性能要求的负载情况下加大1.5倍-2倍的负载量进行测试。
(7)TPS:每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。一个事务是一个业务度量单位,有时一个事务会包括多个子操作,为了统计方便,会把着多个子操作记为一个事务。
(8)RT/ART(Response Time\average response time):响应时间/平均响应时间,指一个事务花费多长时间完成,一般取平均响应时间。
(9)PV(page view):每秒用户访问页面的次数,此参数用来分析平均每秒有多少用户访问页面。
(10)Vuser虚拟用户(Virtual user):模拟真实业务逻辑步骤的虚拟用户,虚拟用户模拟的操作步骤都被记录在虚拟用户脚本里。Vuser脚本用语描述Vuser在场景中执行的操作。
(11)Concurrency并发,并发分为狭义和广义两类。狭义的并发,即所有用户在同一时刻作品同一件事情或者操作;广义的并发,即多个用户进行完全一样的操作。
(12)场景(Scenario):性能测试过程中为了模拟真实用户的业务处理过程,在loadrunner中构建的基于事务、脚本、虚拟用户、运行设置、运行计划、监控、分析等一系列动作的集合,称之为性能测试场景。场景中包含了待执行脚本、脚本组、并发用户数、负载生成器、测试目标、测试执行时的配置条件等。
(13)思考时间(Think Time):模拟真实用户在实际操作时的停顿间隔时间。也就是说,用户在进行操作时,每个请求之间的间隔时间。
(14)标准差(Std. Deviation):标准差越小,说明波动越小,系统越稳定。
6、性能测试通过标准
性能监控实战(全栈性能测试修炼宝典jmeter实战-第九章)
用户响应时间=服务器响应时间+网络时间系统性能分析思路(1)整体系统CPU利用率(2)内存利用率(3)磁盘I/O的利用率和延迟(4)网络利用率 cpuCPU:top、vmstat、uptime、sar 一般我们期望会期望系统平均可用的CPU不少于20%... 查看详情
jmeter—前置处理器
参考《全栈性能测试修炼宝典JMeter实战》第六章JMeter元件详解中第四节前置处理器前置处理器用来处理请求前的一些准备工作,比如参数设置、环境变变量设置等一、BeanShellPreProcessor 是以BeanShell为工具语言来为请求作准备工... 查看详情
jmeter书籍小记
...,哪些不重要,总之一头雾水。 最近国内出了一本“全栈性能测试修炼宝典-jmeter实践”,稍微看了一些,感觉相比起来还是不错的,介绍的 查看详情
jmeter—定时器
参考《全栈性能测试修炼宝典JMeter实战》第六章JMeter元件详解中第三节定时器JMeter中的定时器一般用来设置延迟与同步。定时器的执行优先级高于取样器,在同一作用域下有多个定时器存在时,每一个定时器都会执行,如果想让... 查看详情
软件测试发展路线
...中级执行管理领导3.3中高层过渡3.4高层以下内容来源于《全栈性能测试修炼宝典JMeter实战》,仅供学习参考。1业务路线常见的业务路线职位有:QA经理业务专家产品经理产品总监行业咨询顾问等2技术路线掌握编程技术... 查看详情
此处有干货~jmeter+ant+jenkins持续集成配置及过程中问题解决思路
...下,会用过邮箱提醒的方式告知;强烈给大家推荐一本《全栈性能测试修炼宝典JMeter实战pdf 》,里面内容很齐全,对于测试本身还是挺有帮助的。切入正题:环境配置分为三部分:第一:jmeter安装配置(可找度娘,度娘很强... 查看详情
jmeter深入进阶性能测试进阶案例实战
第1章性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言、操作系统、网络、工具等)。性能测试、稳定性、压力、疲劳、容量预估、多并发逻辑。掌握如何开始性能测试,并且掌握在性... 查看详情
jmeter深入进阶性能测试进阶案例实战
第1章性能测试整体认知了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言、操作系统、网络、工具等)。性能测试、稳定性、压力、疲劳、容量预估、多并发逻辑。掌握如何开始性能测试,并且掌握在性... 查看详情
jmeter深入进阶性能测试体系,接口性能测试,各领域企业实战
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安... 查看详情
jmeter全程实战性能测试实战分布式性能测试真实案例分析
测试需求描述1、本次测试的接口为http服务端接口2、接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性;保存信用卡账户... 查看详情
jmeter自学笔记10----性能测试基础实战
...够处理的查询次数。在因特网上,作用域名系统服务器的性能经常用每秒查询率来衡量。2、测试步骤: 线程组主要包含三个参数:线程树、准备时长(Ramp-upPeriod(inseconds))、循环次数。 *线程数:虚拟用户数。一个虚拟... 查看详情
一个使用jmeter做接口性能测试的实战案例
...涉及数据操作,可以跳过此步骤。步骤1:打开jmeter开源性能测试工具,测试计划->添加线程组 &nb 查看详情
jmeter性能测试视频
jmeter性能测试视频 后端开发:1、2017龙果微服务架构的分布式事务解决方案2、2017年龙果springboot入门实战视频教程-首套中文教程3、51CTOSpringBoot实战与原理分析视频课程4、ElasticSearch5视频教程5、Elasticsearch顶尖高手系列:高手... 查看详情
源码时代软测干货分享|jmeter性能测试实战(上)(代码片段)
确认被测项目的性能指标1.1性能测试指标性能测试指标,是性能测试中重要的测试依据,相当于测试用例中的预期结果,由于性能测试属于非功能性测试,在规范的项目中有专门的非功能性需求,但是在互联网高速发展的今天,为了早一... 查看详情
jmeter性能测试基础实战
...”学习了理论知识,要实操起来。本文主要介绍jmeter性能测试基础实战。二、Jmeter性能测试基础实战 1.测试需求:测试20个用户访问https://www.cnblogs.com/huainanhai/在负载达到30QPS时的平均响应时间。 QPS:QueryPerSecond每秒查询... 查看详情
帮你排雷jmeter分布式性能测试那些坑~轻轻松松去实战
JMETER在做后端服务器性能测试中,我们会经常听到’分布式’。哪你,是否了解分布式呢?今天,我们就来给大家讲讲,在企业实战中,如何使用分布式进行性能测试,实战过程中,又有哪些地方... 查看详情
《jmeter接口自动化与性能实战-飞天小子.pdf》
...具,它的扩展性无比强大,既可以做功能测试,也可以做性能测试;既支持接口层面的测试,也支持webdriver驱动浏览器做ui测试。它支持各种协议,各种数据库,甚至于大数据,MQ这些前沿技术也被加入了进来。正因为版本迭代... 查看详情
python自动化教程jmeter性能测试
参考技术Apython自动化教程Jmeter性能测试25套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,渗透测试,测试用例设计,黑盒测试,白盒测试,UFT高级测试,Android测试,Selenium3自... 查看详情