大家好,我是阿沐,我来了啊~
01.性能测试概述
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试
性能测试和功能测试最大的区别在于功能测试通常有明确的需求说明,而性能测试影响的因素较多,甚至部分公司只会说系统很慢,需要让系统响应快一些。这时候性能需求及目标就显的尤为重要。
02.名词解释
【虚拟用户】:
模拟现实中的实际用户,测试工具使用虚拟用户替代真实用户。
【性能测试场景】:
可理解为一个具体的测试用例。它是测试资源包括测试脚本、运行设置、运行用户数等的集合。在场景中,可以定义并发用户的数目,定义要运行的脚本。在一个场景中,可以是单个流程,也可以是多个流程的混合。
【事务】:
为一个流程中某个或某些环节的称谓,一个流程可称为一个大的事务,在这个大的事务中可包含许多小的事务。
【响应时间】:
性能测试中衡量交易性能的重要手段。计算的是端到端的时间,通俗讲是指从客户端发出交易请求到得到响应的整个过程。
【平均响应时间】:
指在测试过程中所有交易请求过程中平均的响应时间。也就是总共的交易量除以总共的交易时间。通常以秒为时间单位。
【90%响应时间】:
将所有交易的响应时间按照从小到达排列,取排在90%的那个值,主要用于衡量系统的稳定性,比如两组数据 {1,3,5,10,16} 和 {5,6,7,8,9},他们的平均响应时间都是7,但是前面一组数据的90%响应时间值为16,而后面一组为9
【TPS】
系统每秒处理交易的数量,单位是笔/秒。其是衡量系统处理能力的重要指标。通常表示一次交易申请和响应返回的过程。
【QPS】
通常指的是每秒查询率,是一台服务器每秒能够相应的查询次数,是对查询服务器规定时间内处理流量多少的称量标准。
【网络吞吐量】
指单位时间内通过网络成功传输的数据量。单位为Byte/s。
【资源利用率】
主要指服务器硬件资源,网络资源等如cpu,内存使用率,磁盘IO,网络IO等。
【思考时间】
指在测试过程中虚拟用户在与系统产生交互之间的一个等待时间,用于模拟真实环境真实用户在使用系统时每一步操作的等待间隔时间。
【并发数】
指在某一时间,一定数量的虚拟用户同时对系统进行交互操作,通常性能测试工具可以设置集合点以加强并发点。
03.角度及意义
测试人员角度
测试人员眼中的性能:
1:测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。
2:测试人员在做性能测试时除了要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等方方面面。
(软件测试技术交流大本营)810119819(群内免费领取软件测试全栈学习资源)
性能测试意义
1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
2.识别体系中的弱点:受控的压力可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。 检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
5.通过预埋未来数据,比如三年后的数据量来评估系统未来的支撑情况。
6.通过节点性能测试可以用于计算生产服务器节点配比。
性能测试之Jmeter基础使用
jmeter简介
Apache JMeter是Apache组织开发的基于Java的压力测试工具,是一款开源软件,并且是100%的纯java开发,可以在window和linux上面运行。 Jmeter下载地址 https://jmeter.apache.org/download_jmeter.cgi
jmeter安装
Jmeter是纯java开发的,所以计算机中也应该安装jdk,部署java环境。 Jmeter4.0后的版本至少需要安装jdk1.8 Jmeter下载后可以配置下jmeter的环境变量 (1)变量名:JMETER_HOME 变量值: D:\apache-jmeter-5.0 (2)变量名:Path 变量值: %JMETER_HOME%\bin; (3)变量名:CLASSPATH 变量值: %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;