1、概念:性能测试是通过自动化的测试工具模拟多种正常峰值及负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获取系统能提供的最大服务级别的测试。如下图所示为一个典型的性能测试曲线:

2、目的:

性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,以优化软件,最后起到优化系统的目的。性能测试包括以下几个方面:

A、评估系统的能力:测试中得到的负荷和响应时长数据可以被用于验证所计划的模型的能力,并帮助做出决策;

B、识别体系中的弱点:受控的负荷可以被增加到一个极端的水平并突破它,从而修复体系的瓶颈或薄弱的地方;

C、系统调优:重复运行测试,验证调整系统的活动是否得到了预期的结果,从而改进性能;

D、检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中隐含的问题或冲突;

E、验证稳定性(Resilience)、可靠性(Reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

3、常见分类:

性能测试包括负载测试、强度测试和容量测试等。

A、负载测试(load testing):是指通过测试系统在资源负荷情况下的表现,来发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。目标是确认并确保系统在超出最大预期工作量的情况下仍可以正常运行。此外,负载测试还要评估性能特征,如响应时长、事务处理速率和其他与时间相关的性能指标。

B、压力测试(stress testing):通过确认一个系统的瓶颈或者不能接收的性能点,来获取系统能提供的最大服务级别的测试。

C、容量测试(volume testing):容量测试确认系统可处理同时在线的最大用户数。

3、常见指标:

对于B/S(brower/server)架构的软件,一般会关注如下web服务器性能指标:

对于C/S(client/server)架构的程序,由于软件后台通常为数据库,所以更注重数据库的性能指标。

A、User Connections:用户连接数,也就是数据库的连接数量

B、Number of Deadlocks:数据库死锁

C、Butter Cache Hit:数据库Cache的命中情况

注意:在实际的测试中,不仅仅限于以上的点,还要根据实际情况选择,例如cpu占用率、数据库连接池等。

5、基本流程:

A、明确性能测试需求:需求应该明确测试涉及的功能点。

B、制定性能测试方案:性能测试方案应该详尽地描述如何进行性能测试,其中应该至少包括:测试背景、测试目的、测试范围、测试进入条件、测试退出条件、测试指标要求、测试策略、测试时机、测试风险和测试资源。

C、编写测试用例

D、执行性能测试案例

E、分析测试结果

F、生成性能测试报告:一份性能测试报告,至少包含如下内容:

(1)测试基本信息:包含测试目的、报告目标读者、术语定义、参考资料

(2)测试环境描述:包含服务器软/硬件环境、网络环境、测试工具、测试人员

(3)性能测试案例执行分析:需要详细描述每个测试案例的执行情况,以及对应的测试结果分析

(4)测试结果综合分析及建议:对本次性能测试做综合分析,并给出测试结论和改进建议

(5)测试经验总结

6、开源web性能测试

是否应该选择开源性能测试工具?首先要明确所在组织的测试策略,其次还要考虑组织的实现情况。回答以下的几个问题,有助于做出正确的判断:

A、测试部门是否拥有非常充足的预算来购置商业性能测试工具?

B、测试人员是否拥有基础的编程经验?

C、测试人员是否有良好的英语阅读能力?

7、开源性能测试的优势:

A、更少的IT投入;

B、更灵活的定制工具;

C、更快、更便捷的服务支持;

D、更灵活的测试框架,避免绑定IT服务供应商

Jmeter之性能测试基础的更多相关文章

  1. JMeter性能测试基础 (2) - 变量的使用

    在使用JMeter进行性能测试时,一般情况下要保证样本容量尽可能大,这样才能得到一个比较合理的结果.也就是说,我们不能只对同一个URL进行多次访问,而是要对统一模块下尽可能多的URL进行访问,以取得相 ...

  2. Jmeter使用实践- 基础介绍

    Jmeter使用实践- 基础介绍 随着市场上推出越来越多的测试工具,大家使用起来也比较盲目,就我个人而言,使用过LoadRunner和Jmeter 很多人倾向于LoadRunner,因为LR的功能更强 ...

  3. JMeter压测基础(三)——Mysql数据库

    JMeter压测基础(三)——Mysql数据库 环境准备 mysql驱动 JMeter jdbc配置 JMeter jdbc请求 1.下载mysql驱动:mysql-connector-java.ja ...

  4. jmeter如何玩之badboy + jmeter并发性能测试

    今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试. 1. 软件介 ...

  5. jenkins+ant+jmeter自动化性能测试平台

    jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://w ...

  6. Jmeter进行性能测试时多台负载机的配置方法

    参考:https://blog.csdn.net/russ44/article/details/54729461 Jmeter进行性能测试时多台负载机的配置方法 Jmeter 是java 应用,对于C ...

  7. 【转】Jenkins+Ant+Jmeter自动化性能测试平台

    Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,,既然可以使用ant运行,那和hudson.jenkins集成就很方便了 ...

  8. 使用Jmeter做性能测试

    上周刚刚做完项目的性能测试.今天整理和总结一下,随便分享给大家. 首页呢,测试前,我们是有明确的性能指标的,而且测试环境和数据都已准备好,业务分析.场景分析大家根据自己的项目系统进行分析设计,我们选用 ...

  9. Jmeter Web 性能测试入门 (六):Jmeter 解析 response 并传递 value

    解析response中的内容,并把获取到的value传递到后续的request中,常用的方法就是在想要解析response的request上添加后置处理器 本章介绍两种常用的组件 BeanShell ...

随机推荐

  1. RSA简介(四)——求逆算法

    此处所谓求逆运算,是指在模乘群里求逆. 第一节里提到互质的两个定义: (1)p,q两整数互质指p,q的最大公约数为1. (2)p.q两整数互质指存在整数a,b,使得ap+bq=1. 只要明白了欧几里得 ...

  2. 【VMware Workstation】虚拟机动态IP NAT连接外部网络(局域网以及广域网)

    由于公司办公使用的账号认证获得IP,在虚拟机使用原来的桥接模式无法连接外网,因而需要更换虚拟机的网络连接方式. 虚拟机软件:VMware Workstation 12 Pro 虚拟机:centos7 ...

  3. Spring Security学习笔记

    Spring Web Security是Java web开发领域的一个认证(Authentication)/授权(Authorisation)框架,基于Servlet技术,更确切的说是基于Servle ...

  4. java 读取json

    http://blog.csdn.net/5iasp/article/details/38545875 private void readAccount() throws IOException { ...

  5. 谈一谈EasyUI中TreeGrid的过滤功能

    写在最前面 这个星期一直在纠结easyui的treegrid的过滤功能,原因呢,自然是项目中一个莫名奇妙的需求. easyui虽说是后端程序员的前端框架,但是说句实话,除去api,让我直接写里面的节点 ...

  6. css中使用变量

    2017年3月,微软宣布 Edge 浏览器将支持 CSS 变量.这个重要的 CSS 新功能,所有主要浏览器已经都支持了. 声明css变量的时候,变量名前面要加两根连词线(--).变量名大小写敏感,-- ...

  7. Spring中实现文件上传

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt110 实现图片上传  用户必须能够上传图片,因此需要文件上传的功能.比较常见 ...

  8. java对文件加锁

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt208 在对文件操作过程中,有时候需要对文件进行加锁操作,防止其他线程访问该文 ...

  9. 【Beta】Daily Scrum Meeting——Day5

    站立式会议照片 1.本次会议为第五次Meeting会议: 2.本次会议在早上9:35,在陆大2楼机房召开,本次会议为25分钟讨论今天要完成的任务以及接下来的任务安排. 燃尽图 每个人的工作分配 成 员 ...

  10. Swing-GridBagLayout用法-入门

    注:本文内容转自:Java Layout总结-GridBagLayout.内容根据笔者理解稍有整理. GridBagLayout布局管理器:这就是最复杂的一个布局管理器了,网格包布局.在此布局中,组件 ...