常见性能测试的方法是,第1张

常见的性能测试方法有以下几种:

  1.负载测试

  在这里,负载测试指的是最常见的验证一般性能需求而进行的性能测试,在上面我们提到了用户最常见的性能需求就是“既要马儿跑,又要马儿少吃草”。因此负载测试主要是考察软件系统在既定负载下的性能表现。我们对负载测试可以有如下理解:

  (1)负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现。

  (2)负载测试的预期结果是用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等。

  2.压力测试

  压力测试是为了考察系统在极端条件下的表现,极端条件可以是超负荷的交易量和并发用户数。注意,这个极端条件并不一定是用户的性能需求,可能要远远高于用户的性能需求。可以这样理解,压力测试和负载测试不同的是,压力测试的预期结果就是系统出现问题,而我们要考察的是系统处理问题的方式。比如说,我们期待一个系统在面临压力的情况下能够保持稳定,处理速度可以变慢,但不能系统崩溃。因此,压力测试是能让我们识别系统的弱点和在极限负载下程序将如何运行。

3.并发测试

  验证系统的并发处理能力。一般是和服务器端建立大量的并发连接,通过客户端的响应时间和服务器端的性能监测情况来判断系统是否达到了既定的并发能力指标。负载测试往往就会使用并发来创造负载,之所以把并发测试单独提出来,是因为并发测试往往涉及服务器的并发容量,以及多进程/多线程协调同步可能带来的问题。这是要特别注意,必须测试的。

  4.基准测试

  当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新模块对整个软件系统的性能影响。按照基准测试的方法,需要打开/关闭新模块至少各做一次测试。关闭模块之前的系统各个性能指标记下来作为基准(Benchmark),然后与打开模块状态下的系统性能指标作比较,以判断模块对系统性能的影响。

  5.稳定性测试

  “路遥知马力”,在这里我们要说的是和性能测试有关的稳定性测试,即测试系统在一定负载下运行长时间后是否会发生问题。软件系统的有些问题是不能一下子就暴露出来的,或者说是需要时间积累才能达到能够度量的程度。

  6.可恢复测试

  测试系统能否快速地从错误状态中恢复到正常状态。比如,在一个配有负载均衡的系统中,主机承受了压力无法正常工作后,备份机是否能够快速地接管负载。可恢复测试通常结合压力测试一起来做。

  提示:每种测试有其存在的空间和目的。当我们接手一个软件项目后,在有限的资源条件下,选择去做哪一种测试,这应该根据当前软件过程阶段和项目的本身特点来做选择。比如,在集成测试的时候要做基准测试,在软件产品每个发布点要做性能测试。

Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便。

工具/原料

Apache

方法/步骤

打开Apache服务器的安装路径,在bin目录中有一个abexe的可执行程序,就是我们要介绍的压力测试工具。

在Windows系统的命令行下,进入abexe程序所在目录,执行abexe程序。注意直接双击无法正确运行。

执行ab命令成功后,可以看到如图提示。该帮助很清楚详细的介绍了ab的用法以及各个参数的含义。

ab 的用法是:ab [options] [http://]hostname[:port]/path

例如:ab -n 5000 -c 200 http://localhost/indexphp

上例表示总共访问http://localhost/indexphp这个脚本5000次,200并发同时执行。

ab常用参数的介绍:

-n :总共的请求执行数,缺省是1;

-c: 并发数,缺省是1;

-t:测试所进行的总时间,秒为单位,缺省50000s

-p:POST时的数据文件

-w: 以HTML表的格式输出结果

执行测试用例:ab -n 1000 -c 100 -w http://localhost/indexphp >>c:\1html

上面的测试用例表示100并发的情况下,共测试访问indexphp脚本1000次,并将测试结果保存到c:\1html文件中。

测试报告如图,可知在该100并发访问的情况下,共测试访问1000次,失败了852次。可知该脚本在此环境无法满足100并发访问的要求。

修改参数继续测试。测试并发50和30两种情况,由测试报告得知,在并发访问降到30时,错误的访问数降为39。

步骤阅读

在服务器托管到机房后,您可以远程登入服务器,到网站测试下载大文件,然后查看您本机的带宽使用情况,就可以了解您本机正使用了多少带宽。

A:广东电信机房测试(如果服务器在广东这个测试非常准确):从avlcomcn下载

http://benchmarkavlcomcn/cab/avltoolexe测试工具,在服务器运行这个工具,点击测试网站速率,然后在"开始"->"运行",输入"taskmgr",出现window任务管理器,选择"联网"就可以看到服务器带宽占用情况。也可以通过FTP进行文件上传测试,在测试时,在"开始"->;"运行",输入"taskmgr",出现window任务管理器查看带宽消耗状况。腾正每天有接到很多测试申请,所以积累了很多经验

B:双线服务器测试:双线服务器测试比较麻烦,由于双线服务器有电信网关/网通网关,您必须保证测试电信线路时使用电信网关,测试网通线路时使用网通网关,否则这个测试将没有任何意义。

注意:

1、以上测试方法可以让您看到服务器当前实际消耗带宽量,这个测试值要看您选择的数据下载服务器和您的服务器是否在同一个省网(例如:同是广东电信或者广东网通的,这样才准确),并且要确保数据下载服务器是没有带宽限制的。

2、你必须确定数据服务器有足够的带宽提供服务,例如:如果数据服务器有很大的独立带宽,那么您的服务器可以从对方服务器全速下载,那才能真实反映您服务器带宽,如果数据服务器只有100K-几M带宽(或者分配给每个下载请求的带宽只有几M,那么就无法反映您服务器带宽)。

挑选好的主机所要考虑的因素,其中首先的是速度。不同的网站对网络的要求是不同的。本文所要讨论的范围仅限于一般的博客、企业和外贸类网站,这些网站的流量主要来自于页面浏览,私服和流媒体不在本文讨论的范围之内。 几乎任何一个顾客都知道使用ping来测试主机的连接速度,所谓ping,是从你的电脑向主机的服务器发送数据请求过去,再回来,所需要的时间。光纤的网络传输速度是一定的,受制于物理距离,从中国ping美国主机,在理论上必然大于133ms(实际上更高)。133ms是什么概念,国内的多线机房和BGP机房都比这个数值优,在这个指标上,国内的主机比美国主机理想,物理距离摆在那里,是理所当然的。 当然光从你的电脑ping是不全面的。因为你的网络环境不能代表你的网站的用户的网络环境,你ping值低不代表访问你的网站的人ping值低,反正亦然,因此产生了一些第三方的ping服务。比如国内的:jiankongbaocom;国外的:just-pingcom。 根据你的访客来源选择。jiankongbaocom可以记录电信和联通(网通)的ping,对于国内用户ping美国主机是一个不错的选择;如果你的网站是外贸站,则应该选择just-pingcom或其他类似的服务。 除了ping(延时)以外,新手容易忽视的另一个指标是 bandwidth (带宽),这个bandwidth不是指你所购买的主机的流量上限(从几GB到几百GB,甚至是所谓的“无限流量”),而是指服务器所在机房的进出带宽。换言之,有点类似国内所说的2M独享带宽,10MB独享带宽等等。在bandwidth这个指标上,美国主机要优于国内主机,通常大一点的数据中心(机房)都有好几家bandwidth provider(带宽提供商),比如level3,grobal crossing,he,nlayer,savvis等等,带宽的规模有的是10g数量级的。 带宽对速度的影响,是一个瓶颈作用。举一个大家都能体会到的例子,假设你家里是 2 M adsl,你在下bt,上行的512k带宽很快被占了,这样你浏览网页就变得十分困难(关于这一点,突然想到cfos优化,有兴趣的朋友自行google);同样的,当服务器的带宽不足时,即使ping值很低,打开服务器上面的网站也会变得十分困难。 由于bandwidth不如ping直观,所以容易被大家所忽视,甚至被部分主机商所利用,比如某vps宣称不限流量,但实际上却只有1mbps的带宽。通常美国主机商都会再网站上的data center页说明它们的带宽提供商的带宽大小,如果没有说明,也建议你询问销售。 另一个方法是使用tracert命令,通过跟踪路由能够大致了解对方的带宽质量。对中国用户来说,有一个问题是,某些美国主机的带宽提供商确实很优秀,但是连接中国国内却并不是十分理想,对你的网站的稳定性影响很大,比如说 level3。解决这个问题要靠观察和经验,在后面的文章中我会进一步讨论tracert和主机的稳定性标准。 至于速度,ping和bandwidth都很重要,刻意排斥其中任何一个都不可取。

  使用 ping可以测试计算机名和计算机的 ip 地址,验证与远程计算机的连接,通过将 icmp 回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接,该命令只有在安装了 tcp/ip 协议后才可以使用。

  工具/原料

  TCP/IP

  ping

  windows

  方法/步骤

  首先打开命令提示符窗口。方法有很多种,这里介绍一种,win+r==>在弹出的窗口输入cmd ==>确定。

  要学会用ping测试网络,首先知道ping命令有哪些参数,以及各个参数的功能。下面介绍如何使用帮助文档查看ping命令的参数以及功能。输入命令ping -help可查看帮助文档。类似其他命令 -help也能查看相应命令的参数及功能。

  学会运用帮助文档之后,我们可以在DOS里输入Ping 127001,该地址是本地循环地址,如发现本地址无法Ping通,就表明本地机TCP/IP协议不能正常工作或者是网卡损坏。

  如果上面能Ping通的话,我们接下来可以输入ipconfig命令来查看本地的IP地址,并记录下该IP。

  然后Ping与刚才记录下来的IP同一网段的IP,通则表明网络适配器(网卡或MODEM)工作正常,不通则是网络适配器出现故障。

  最后,检测一个带DNS服务的网络,在上一步Ping通了目标计算机的IP地址后,仍无法连接到该机,则可Ping该机的网络名,比如Ping wwwbaiducom,正常情况下会出现该网址所指向的IP,这表明本机的DNS设置正确而且DNS服务器工作正常,反之就可能是其中之一出现了故障。

在工作中处理服务器故障问题的时候,经常需要检测一下Windows的服务器业务端口是否开放,是否能正常在外面通讯。下面小编与大家分享一下如何在windows环境下检测服务器端口是否开放。

1我们在工作中经常接触的都是TCP,UDP的端口都是很少用的。检测TCP端口能否在外面访问的方法很简单,telnet可以测试出来结果

例如  telnet   wwwbaiducom  80

2像上面这样子测试百度服务器的80端口,这个可以看到是有反应的,是开放通的。如果没有开放就像下面这样的显示

例如  telnet   wwwbaiducom  81

3或者可以去微软的网站那里下载psping  ,这个软件好用,可以测试TCP或者UDP都行,十分实用。

4可以看一下这个命令的使用方法

5使用它来测试TCP端口是否开放以及通讯情况

6如果Windows系统里边telnet和psping都没有我们可以在网页上打开测试一下端口是否开放通讯

7在Windows下面测试UDP确实是有点比较麻烦的事,我一般都选择 在Linux上面进行测试,如果非要在Windows上面测试UDP可以选择安装nmap进行测试。

使用LR对数据库进行性能测试,实际上有多种办法,包括通过现有的数据库协议进行CS模式的先录制后执行的模式,以及通过socket方式向服务器发包方式的测试方式。这些是常规书籍上介绍的比较简单上手的测试方法,但是不具备通用性,受已有协议或socket编程方式的限制,所以需要更为通用的测试方法。

用Java user的协议进行所有数据库性能的测试工作:

Java user 不需要录制,把所有的操作通过java语言进行实现,通过lr调用java的class进行加压批量操作,这样可以不关心被测系统是哪个数据库,只要能够通过jdbc进行访问,就能实现性能测试。

一、测试环境准备

1 被测服务器准备,根据测试目的,搭建需要的数据库服务器,确保数据库能够正常访问,正常操作;

2 Java代码的准备,无论使用哪种IDE,只要能够编写访问数据库的class就可以,形式可以是j2se,也可以是j2ee,因为在操作时只使用class的部分方法,所以j2ee就可以了;

3 LR的脚本调试,把java的class导入到脚本调试模式,根据需要添加事务以及其他操作。

二、编写数据库访问

1 使用myeclipse,创建web project,创建如下图的包目录:

Java文件中包含各种访问数据库的方法。

需要注意的是,class中的方法必须是public static,否则LR中无法调用。由于创建的是j2ee程序,所以不用main函数,在web中就可以进行功能验证。

确认class中的方法编写完成,创建一个webjsp文件,如下:

导入class

声明类,并实例化,直接调用刚才编写的3个方法,因为这3个方法是直接对数据库进行操作,不需要实参,也没有返回值,所以直接实现即可。

此时启动web服务,在浏览器中输入jsp的地址,直接刷新页面,就可以调用这3个方法,如果正确,就会对相应的表进行操作,如果不正确,则需要修改相应的代码。

2 LR脚本准备:

LR脚本实际上就是对访问代码的调用,关键在于需要根据测试场景划分不同的脚本布局。

例如:在myEclipse里,我们只编写了一个class,其中包含三个方法,如果在执行性能测试时,这三个方法相互独立,互不干涉,则最简单的划分方法是,创建三个java user,每个java user中包含一个方法,做三份脚本,场景执行时分别进行调用。如果三个方法之间有相互关系,则需要根据实际情况,把有关联的方法放在一起,具体情况可按实际灵活分配。

因为已经将class文件进行编译发布了,所以可以在“java2postgres\WebRoot\WEB-INF\classes\com\lr\test”目录中找到对应的class文件,

复制这个文件,找到LR的目录:HP\LoadRunner\classes\com\lr\test\ 如果没有文件夹,按相同的内容创建。

在LR脚本中进行引包操作:

将需要执行的java类以及方法,放在action中,可根据实际测试情况和所需要验证的内容,具体调试代码。

在这里可以像编写普通LR脚本一样,添加事务或集合点等内容。

由于是通过JDBC对数据库进行访问,因此要在java user中加载jdbc驱动。

运行时设置中,增加jdbc驱动,需要注意的是java user使用的本地jdk,需要至多16版本,若使用17版本,回放会有错误,这是jdk版本的问题。

操作完成之后,按F5或点击运行,进行脚本回放,实际此时也对数据库进行了操作,可以直接查询对应的表,检查功能是否正确。

三、执行性能测试

已经有了java user的脚本,和普通web性能测试一样,设计场景、执行测试、收集报告、分析性能瓶颈即可。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 常见性能测试的方法是

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情