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. Unity 5.3.5f1 (32-bit) 的简单塔防游戏

    我以前使用过unity但是第一次写这么全面的塔防小游戏.我以后会陆续的将我跟过的一些项目的心得经验与体会发表出来希望各位能人能够给出评价,我在此感激各位的批评与赞扬.另外我只是一个学生学艺不精,粗制滥 ...

  2. Java并发基础——Thread

    并发编程可以使我们将程序划分为多个分离的,独立运行的任务.通过多线程机制,这些独立任务都将由执行线程来驱动.在使用线程时,CPU将轮流给每个任务分配占用时间,每个任务都觉得自己在占用CPU,但实际上C ...

  3. python+selenium自动化软件测试(第1章):环境搭建,你也可以直接用Anaconda!

    1.1 环境搭建 1.1.1 selenium简介Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试 ...

  4. java实现邮箱找密码

    SMTP,POP3,IMAP POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电 ...

  5. [WPF] UserControl vs CustomControl

    介绍 WPF中有两种控件:UserControl和CustomControl,但是这两者有什么区别呢?这篇博客中将介绍两者之间的区别,这样可以在项目中合理的使用它们. UserControl 将多个W ...

  6. .Net Mvc实现各种表格随意切换插件

    一套Js代码,.只要改参数 在3种表格之间任意切换-(使用Js面向对象封装,可重写方法) 任意表格皮肤随便切换 flextgrid/bootstrapt/jqgrid 1   001 @{ 002   ...

  7. CSS 中的 initial、inherit、unset、revert

    在css中,initial(初始).inherit(继承).unset(未设置).revert(还原)这四个关键字可以应用于所有的CSS属性. initial - 初始默认值.IE不支持 inheri ...

  8. < 软件工程 第一次作业 >

    自我介绍: 老师好! 我叫李智强,专业是计算机科学与技术,我自己也喜欢这个专业,然后这是我第一次用博客写自我介绍,可能会写的有点不好,还请包涵. 课程期望和目标: 第一次上课,听着老师说我们可能会做很 ...

  9. [译] 反思 1 号进程 / Rethinking PID 1

    By Lennart Poettering 译 SReadFox 原文链接:http://0pointer.de/blog/projects/systemd.html 译注:笔者大约在 2011 年读 ...

  10. 【ACM小白成长撸】--贪婪法解硬币找零问题

    question:假设有一种货币,它有面值为1分.2分.5分和1角的硬币,最少需要多少个硬币来找出K分钱的零钱.按照贪婪法的思想,需要不断地使用面值最大的硬币.如果找零的值小于最大的硬币值,则尝试第二 ...