如何进行Web服务的性能测试

如何进行Web服务的性能测试,第1张

贴一篇我们内部的文章:

随着浏览器功能的不断完善,用户量不断的攀升,涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求。那么性能测试都要做些什么呢?我们该怎样进行性能测试呢?

性能测试一般会围绕以下这些问题而进行:

1 什么情况下需要做性能测试?

2 什么时候做性能测试?

3 做性能测试需要准备哪些内容?

4 什么样的性能指标是符合要求的?

5 性能测试需要收集的数据有哪些?

6 怎样收集这些数据?

7 如何分析收集到的数据?

8 如何给出性能测试报告?

性能测试的执行过程及要做的事儿主要包含以下内容:

1 测试评估阶段

在这个阶段,我们要评估被测的产品是否要进行性能测试,并且对目前的服务器环境进行粗估,服务的性能是否满足条件。

首先要明确只要涉及到准备上线的服务端产品,就需要进行性能测试。其次如果产品需求中明确提到了性能指标,那也必须要做性能测试。

测试人员在进行性能测试前,需要根据当前的收集到的各种信息,预先做性能的评估,收集的内容主要包括带宽、请求包大小、并发用户数和当前web服务的带宽等

2 测试准备阶段

在这个阶段,我们要了解以下内容:

a 服务器的架构是什么样的,例如:web服务器是什么?是如何配置的?数据库用的是什么?服务用的是什么语言编写的?;

b 服务端功能的内部逻辑实现;

c 服务端与数据库是如何交互的,例如:数据库的表结构是什么样的?服务端功能是怎样操作数据库的?

d 服务端与客户端之间是如何进行交互的,即接口定义;

通过收集以上信息,测试人员整理出服务器端各模块之间的交互图,客户端与服务端之间的交互图以及服务端内部功能逻辑实现的流程图。

e 该服务上线后的用户量预估是多少,如果无法评估出用户量,那么可以通过设计测试执行的场景得出这个值;

f 上线要部署到多少台机器上,每台机器的负载均衡是如何设计的,每台机器的配置什么样的,网络环境是什么样的。

g 了解测试环境与线上环境的不同,例如网络环境、硬件配置等

h 制定测试执行的策略,是需要验证需求中的指标能否达到,还是评估系统的最大处理能力。

i 沟通上线的指标

通过收集以上信息,确定性能测试用例该如何设计,如何设计性能测试用例执行的场景,以及上线指标的评估。

3 测试设计阶段

根据测试人员通过之前整理的交互图和流程图,设计相应的性能测试用例。性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数量测试,网络性能测试,服务器性能测试,具体编写的测试用例要更具实际情况进行裁减。

用例编写的步骤大致分为:

a 通过脚本模拟单一用户是如何使用这个web服务的。这里模拟的可以是用户使用web服务的某一个动作或某几个动作,某一个功能或几个功能,也可以是使用web服务的整个过程。

b 根据客户端的实际情况和服务器端的策略,通过将脚本中可变的数据进行参数化,来模拟多个用户的操作。

c 验证参数化后脚本功能的正确性。

d 添加检查点

e 设计脚本执行的策略,如每个功能的执行次数,各个功能的执行顺序等

4 测试执行阶段

根据客户端的产品行为设计web服务的测试执行场景及测试执行的过程,即测试执行期间发生的事儿。通过监控程序收集web服务的性能数据和web服务所在系统的性能数据。

在测试执行过程中,还要不断的关注以下内容:

a web服务的连接速度如何?

b 每秒的点击数如何?

c Web服务能允许多少个用户同时在线?

d 如果超过了这个数量,会出现什么现象?

e Web服务能否处理大量用户对同一个页面的请求?

f 如果web服务崩溃,是否会自动恢复?

g 系统能否同一时间响应大量用户的请求?

h 打压机的系统负载状态。

5 测试分析阶段

将收集到的数据制成图表,查看各指标的性能变化曲线,结合之前确定的上线指标,对各项数据进行分析,已确定是否继续对web服务进行测试,结果是否达到了期望值。

6 测试验证阶段

在开发针对发现的性能问题进行修复后,要再执行性能测试的用例对问题进行验证。这里需要关注的是开发在解决问题的同时可能无意中修改了某些功能,所以在验证性能的同时,也要关注原有功能是否受到了影响。

想看原文或者有测试其他相关的问题可以关注下 搜狗测试 微信公众号,我们上面有不少关于性能测试分享~

输出和响应是两个不同概念,或者说两个方面

首先,输出代表的是页面中有显示或者你已经看到了结果,这说明,这是一个完整的操作(客户端操作、发出请求、服务器接收,服务器处理、服务器返回结果,客户端接收、客户端展示,当然单机软件也是类似的)。当你看到输出的时候,说明无论逻辑是否有错,至少整个处理是正常的。

响应的话 就是另一方面的事情,一般指的你的操作请求发出了,服务器(单机的话说的是处理器),在接受到请求后,是否有正常的回复,就好像你和某人说事,他抬头说我知道了,但至于会不会帮你解决,这个就两说了,所以我们某种意义上来说,响应比输出的要求要低,但同时,响应有时候你是看不到的。

1)如果是宽带本身的问题,首先直接联接宽带网线测试,如果是宽带的问题,联系宽带客服解决。

2)如果是路由器的问题,如果原来可以用,暂时不能用了,我自己的实践是一个是断掉路由器的电源在插上,等会看看。在有就是恢复出厂设置,从新严格按说明书设置就可以用了,自己不懂,不建议自己随意设置(这是在物理连接正确的前提下,有时是路由器寻IP地址慢或失败引起的,并不是说路由器坏了)。

如果总是不能解决,建议给路由器的客服打电话,他们有电话在线指导,我遇到自己不能解决的问题,咨询他们给的建议是很有用的,他们会针对你的设置或操作给出正确建议的。

3)如果关闭了无线开关开启就是了,如果是用软件连接的无线,软件不好用又经常出问题是很正常的,没有更好的方法,用路由器吧。另外就是网卡驱动没有或不合适引起的,网线接口或网线是不是有问题等。

4)如果是系统问题引起的,建议还原系统或重装。

5)有问题请您追问我。

网站服务器的压力测试我觉得主要有一些几点。

1协议这边基本上以http或者https为主了,如果使用其他协议需要分析其打解包的方法。

2要产生一定的压力,压力源这边一定要有保证。一般都是用机器人来模拟压力,关于机器人的逻辑可以根据具体业务来开发。

3需要观察在一定压力下,服务器的各项性能指标(cpu,内存,IO,网络流量)进行观察,比如内存是否有泄漏,cpu利用率过高的情况。

4压力测试应该是一个持续性的过程,在这个过程中需要统计服务器的性能数据,包括tps,以及机器的负载情况等。据此可以分析服务器的瓶颈在何处,后续可以针对优化。

5目前大部分的服务器都部署在Linux系统上,测试同学还需要掌握相关的Linux命令以便可以更好的测试。

如果你觉得前面的太麻烦,可以来WeTest服务器压力测试高并发,实时性能报表,专家级性能优化建议,目前我们正在做网站压测这一块,你要做的仅仅是填下被测的URL即可,压力源、数据统计这些琐碎的工作交给我们就行了。

个人和企业建站,服务器的性能影响着车开的快不快。比如运算速度,传输速度这个直接影响着每毫秒可以处理多少数据,这个就类似你插个U盘进电脑,读写速度。像香港服务器100M大带宽直连,测试网络质量好坏意味这高速公路有多少条道。

网络速度决定了道路的质量,比如柏油路,水泥路,黄泥路这个基本上不考虑,目前都是光纤光纤的质量差别并不会很大,如果访问速度不好的话,会让网站加载非常慢。在选择服务商时,首先一定要选择有保障的,方便日常维护。其次就是就要看服务器的稳定性,服务器出现宕机的情况不少见。那服务器的网络和带宽质量究竟如何来测试呢

服务器网络质量如何测试

1、网络线路质量

玩网络游戏,你得知道服务器用的是什么线路,不同的网络线路代表的服务器的带宽是不同的,避免线路的质量不稳定的情况。比如服务器是电信区,使用联通线路,定受影响。选择机房的带宽选骨干线路,速度快,稳定性强。首先看机房到企业建站之间要经过多少个路由,接入的路由设备离骨干网的位置,条数越少越好。

2、服务器网络稳定性

Ping测试。通过本机的PING命令进行持续ping,通过查看丢包率、最大值、最小值等数据来分析机房的网络品质和带宽质量。

第1种方法:常见的ping命令。

在电脑中点击开始,运行,然后输入CMD打开DOS命令窗口。然后输入网站网址,或者服务器的IP地址,格式为ping域名,或者pingIP。使用ping命令后,会反馈一个结果,这个结果基本包括了以下几个信息。

Time,这个是响应时间,时间越小越好,国内服务器响应时间一般在20-60ms之间。

TTL,这个可以判断相关的操作系统,TTL=119,则表示是XP系统,不过这个现在一般不准,毕竟服务器可以修改注册表TTL类型。数据包发送信息,这个里面有个丢包率,数值越小越好,正常都是显示丢失0。丢包严重的话,哪怕一直连接,效率也不行。

第2种方法:tracert命令。

测试方法与ping命令类似,只是将ping换成tracert,不过这个命令可以用来检测终端用户到服务器机房的跳数及响应时间,换句话说,就是可以测试出服务器与全国客户的连接速度。显示时间也是以Ms为单位,时间越短越好。

第3种方法:比网站加载速度。

可以利用WhichLoadsFasterFastSoft工具测试一下打开网站速度。就是上网,在浏览器中让两个真实的网页显示出来,反应的结果就是两个网站真实打开速度对比。

第4种方法:网站速度测试工具。

使用GTmetrixgtmetrix有丰富的测量结果,能够提供相关的网站速度提升建议,站长可以根据这些建议优化站点。然后再逐一找到加载速度变慢的原因。此外,还有一点就是带宽的选择。关于带宽服务器一般有共享和独享两种选择,若本身是普通的网站使用共享的带宽是可以的,但若是对带宽要求高的行业选择独享带宽。

3、服务器带宽测试

测试其下载速度。通过运营商区域分段测试,看看最大下载多大速率,就可以查看到其实际带宽的速度、安全性和稳定性。

我们知道,一个网站如果在好几秒都打不开,那么基本上都会没有耐心,会关闭页面,而这无形当中就是流失了用户。但总体来看,企业主租用服务器一般只需要从四个方面入手,分别是售后服务、服务器的稳定性、带宽资源以及价格,如果这四个方向把握准确,以上就是租用服务器前对网络质量测试方法,希望对站长有一定的帮助。

下载并安装WAST;

1.设置并行连接数;

2.设置持续时间;

3.其余设置;

注:所有以上的选项可以根据自己的需要进行设置。

设置完成后就可以进行压力测试。测试的步骤如下:

第一步,点击工具栏上的“New Script”按钮,在打开的面板中点击“Nanual”按钮创建一个新的测试项目。在打开的窗口中对它进行设置,在主选项中的Server中填写要测试的服务器的IP地址。这里我们填写192168120。在下方选择测试的Web连接方式,这里的方式Verb选择get。Path选择要测试的Web页面路径,这里填写/Indexasp即动网的首页文件,WAST可以设置更多的Path。

第二步,在“Settings”功能设置中将Stress Level (Threads)线程数设置为1000。然后点工具中的灰色三角按钮即可进行测试。测试过程中我们可以从服务器的任务管理器中看到CPU使用率已经达到100%,损耗率达到最大。在CMD窗口中使用命令netstat -an,可以看到客户端的IP地址在服务器上的80端口进行了非常多的连接,而且Web网站已经打不开了,提示过多用户连接。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何进行Web服务的性能测试

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情