不知道大家有没有看到一个google的报告:网页加载超过4s,会流失25%的数据;手机网页加载超过10s,会流失50%的用户,60%的用户不会再返回。也就是说,你的网页打开的速度越快,那么你留住用户的可能性就更大。
从我身边的朋友来看,注重网站压力测试公司其实并不是很多。很多程序员也只是要求自己把程序写出来而已,对于网站的优化却不闻不问。大家可以想一下自己做过的网站,自己打开自己的网页需要多长时间,提交一个form需要多长时间~~
当然,性能测试的重要性并不是这篇文章描述的重点,本文的重点是什么时候进行压力测试、要对那些东西进行压力测试,怎样进行压力测试,以及压力测试中我们需要关注什么。
我们先来讨论第一点:什么时候进行压力测试。现在业界主要的思想有两点:压力测试前置、压力测试后置。前置就是说,压力测试应该在一个产品没有趋于稳定的时候就进行。后置就是,压力测试在一个产品稳定后在进行。压力测试前置和压力测试后置都有自己的优点和缺点。我们并不好说那种更好,倒不如说说这两种测试的优点和缺点。
首先我说一下压力测试前置。很多程序员都知道,性能问题是一个产品比较难解决的问题,发现的越早就越容易避免。但是,产品的开发过程中可能需要增加许多新的功能,需要更改或者添加很多接口。这也是前置压力测试无法预期的,所有的这些变更可能导致需要重新对产品进行压力测试。一句话,压力测试前置可以提早发现问题,但是项目的变化会导致压力测试成为白费力~。再来说一下压力测试后置。等到产品稳定后,我们再进行压力测试可以避免压力测试前置的缺点。但是,等到产品功能稳定了,这个时候发现产品的性能很低,从而再回头更改代码优化,这个时候才发现,需要更改的代码很多,更改代码就有可能导致项目要重新进行测试,影响项目排期,不更改这些代码又会影响用户体验。程序要同胞们又纠结了~
我们再来讨论一下:要对那些东西进行压力测试。压力测试范文很广,本文主要讨论WEB相关的压力测试需要测试什么。就WEB而言,压力测试的内容主要包括:web页面的访问、对web页面提供的后端接口。也就是说,我们要模拟用户访问网页,也需要模拟网页访问接口。这也导致了两种测试模式,通过访问web页面进行压力测试、通过访问接口进行压力测试。这两种测试方式比较容易理解,这里就不多说了。
下面,我们讨论一下怎样进行压力测试。现在有也有一些压力测试软件。大家可以学习使用。现在给大家介绍一种我们公司内部一个软件。当然只是介绍一下,压力测试软件的设计思路。我们内部有一个软件叫做easyABC,这个工具可以发送http数据包到server端,包括http的get请求和post请求。他的设计思路就是,easyABC先自己设计好httpi请求用什么样的结构表示(XML),然后测试人员可以根据这个格式构造一大堆需要发送到server端的数据。然后easyABC将这些数据发送到server端。
最后讲一下压力测试需要关注什么:硬件方面,我们要关注被压机器的配置是不是符合线上机器,测试过程中要关注一下被压机器的cpu idle,io,mem等。从软件的功能方面,我们还要关注,程序的错误日志,如果程序使用了db,还要查看db机器的cpu idle、错误日志等
时间关系,后面写的比较仓促,哎~ 还在公司加班