了解性能测试

作者: d1b0f55d8efb | 来源:发表于2017-07-27 10:31 被阅读21次

什么是性能测试?

模拟大量用户使用同一功能或同一模块,向服务器施压来检测服务器性能指标是否满足客户的性能需求

为什么做性能测试?

1.确保产品稳定

2.用户角度:保证用户体验度

3.公司角度:防止损失资金(产品不稳定,用户忠诚度底,用户卸载,失去用户)

什么是压力测试?

被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定,确保系统是否具有良好的容错能力和可恢复能力

系统在极限情况下能否运行稳定

什么是负载测试?

在超负荷的环境中运行,程序是否能够承担/增加负载来发现系统中的问题

服务器最大负载,模拟大量用户对服务器不断施压,时期性能指标接近饱和值(最佳负载人数*CPU80%)

性能测试的基础知识:

1.HTML语音基础,可以参考教程很详细

2.C语言基础:需要了解分支变量循环,变量,函数

3.Http协议及请求方式(get post)接口返回状态码


     a. HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等

     b.HTTPS和HTTP的区别:

            https协议需要到ca申请证书,一般免费证书很少,需要交费。

            http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议

            http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

           http的连接很简单,是无状态的

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全

请求方式:

get:客户端向服务器获取资源(要)

特点:1.把请求的资源放在连接(URL)里,并且部分参数明文展示  不安全

           2.资源存入缓存,不安全

           3.不同浏览器  URL  长度不同  IE 2083 Firefox 65536  Chrome 8181  Safari 80000

           4.可收藏、数据量小

post:客服端向服务器提交表单数据(给)

特点:1.把表单数据放在请求实体(表单数据)中     安全

            2.post不能缓存及放入收藏夹

            3.不同浏览器 URL 长度不限

            4.数据量大,速度慢(效率略慢)


4.XML,用来传输和储存数据   与HTML类似树形成对出现   参考教程  

5.JSON:参考教程

          JSON 指的是 JavaScript 对象表示法(JavaScriptObjectNotation)轻量级的文本数据交换格式

          JSON 是轻量级的文本数据交换格式

          JSON 独立于语言*

         JSON 具有自我描述性,更易理解

6.数据库的基础应用:  增删改查

性能测试的术语?  

(借鉴了卜了了的文章)点击可查看

1)并发数:虚拟用户数,同一时间点内,向系统产生交互的数量

2)注册用户数:当前系统中全部注册的用户的数量,这个跟并发数要区分开,这个不需要跟系统产生交互

3)在线用户数:当前系统时间段内用户登录的数量,也不一定要跟系统产生交互

4)事务:比如登录网站时,输入用户名、密码,点击登录,这3个操作为一个事务来讲,叫登录事务。

5)TPS,每秒通过的事务数---每秒处理的事务的数量,是衡量系统处理能力的指标,看系统好不好,就看这个指标

6)吞吐量:被测系统所产生的数据流量,eg,点击网页需要10兆,100人点击,就产生100*10结果即为为吞吐量

7)每秒点击率:客户端每秒真正发给服务端的请求数量。不能反应系统的性能,反应客户端给服务端发送请求的数量

8)思考时间:用户访问网页的停顿时间,比如输入用户名密码,点击登录---看用户名和密码对不对,这个时间就是思考等待时间

9)资源利用率:系统里cpu占有率、内存的使用率,还有io的使用,这些需要后台监控才能看出来

常见的性能问题

(借鉴了倔强的潇洒小姐的文章)

1、资源泄漏

包括内存泄漏,系统占用的资源(如内存、CPU等)随着运行时间不断增长,从而降低系统性能。系统响应越来越慢,甚至出现混乱。只有重启系统才能恢复到最初水平。

这类问题 产生的主要原因 是 有些对象(如GDI使用、JDBC连接)没有及时被销毁、内存没有释放干净、缓存区回收等。

内存泄漏

在进程执行过程中,如果一块内存区域,进程失去了对其的引用,也就是所该块内存区域永远都不会被进程使用到了,而操作系统又不知道进程失去了对其的引用,所以不能进行回收,这就会导致操作系统认为进程保留了很多内存空间,但进程本身却没办法去使用这些内存空间。

2、资源瓶颈

内部资源(线程、放入池的对象)变得稀缺,随着负载越来越慢,甚至系统挂起或出现异常错误。

这类问题产生的主要原因是线程过度使用或资源分配不足等造成的

3、CPU使用率达到100%,系统被锁定

代码中可能存在无限循环、缺乏保护(如对失败请求不断的重试)、频繁对数据库存取、没有使用数据高速缓存等

4、线程死锁、阻塞

可能因为程序对事物并发处理上的错误、资源争用引起锁阻塞和死锁等

如:线程获得顺序的算法不对,造成死锁、线程同步点上备份过多而造成通信阻塞

5、数据库连接成为性能瓶颈

可能是因为数据库存取交互过多、未使用连接池 或 连接池配置参数不当、单个SQL请求的数据量过多等问题

6、查询速度慢 或 列表效率低

主要原因是列表查询未使用索引、过于复杂的SQL语句、分页算法效率低

也可能是查询结果集过大或不规范的查询,如返回全部数据,查询全部字段而不是所需字段

7、受外部系统影响越来越大

主要原因有 向后端系统发出太多的请求、页面内容过多、经第三方系统认证比较复杂、网络连接不稳定或延迟

相关文章

  • 一篇文章入门Jmeter性能测试【经典长文】

    今天跟大家分享一下Jmeter性能测试,首先需要了解性能测试的定义是什么,为什么要做性能测试,性能测试指标、性能测...

  • JVM与性能调优

    性能测试 在了解性能调优之前,首先得知道什么是性能测试,我们的程序怎样的性能表现才需要进行性能调优 一、性能测试概...

  • 了解性能测试

    什么是性能测试? 模拟大量用户使用同一功能或同一模块,向服务器施压来检测服务器性能指标是否满足客户的性能需求 为什...

  • 了解性能测试

    性能测试的定义 性能测试就是在确保功能实现正确的情况下,通过能够发送高并发请求的工具,按照不同的策略对系统施加压力...

  • 性能测试(2) - 定义性能测试的指标

    做性能测试前,除了需要了解性能测试的需求,我们还要定义清楚性能测试的指标。 我们所关注的性能指标 响应时间:比较熟...

  • 性能测试进阶(三)

    前面我们了解了什么是性能,忽视性能会带来什么结果,以及什么是性能测试,那么性能测试到底要测什么内容呢? 性能指标 ...

  • 做好性能测试,你要掌握这些东西

    1.精通性能测试的基本概念,过程,方法论,了解性能工程; 2.精通1个商业性能测试工具+1个开源性能测试工具,知道...

  • 性能测试入门基础

    性能测试的目的 1)评估当前系统。系统未做过任何性能测试,对系统的当前性能情况不了解。 2)寻找系统瓶颈,优化性能...

  • 云上的移动性能测试平台

    简介:功能决定现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》, 了解EMAS性能测试平台的能力与规划。...

  • JMeter深入进阶性能测试体系视频课程 各领域性能测试企业实战

    第1章 性能测试整体认知 了解性能测试的目的,想做好性能测试都需要掌握哪些方面的技能(开发语言、操作系统、网络、工...

网友评论

    本文标题:了解性能测试

    本文链接:https://www.haomeiwen.com/subject/eluokxtx.html