一、服务器测试方法分为两个大方面,性能测试与功能测试。
在性能测试方面采用了新的测试方法,主要分为文件测试、数据库性能测试与Web性能测试三个方面。其中,文件性能与数据库性能采用美国Quest软件公司的Benchmark Factory负载测试和容量规划软件,Web性能测试则使用了Spirent公司提供的Caw WebAvalanche测试仪。
如何为电脑系统选配合适的电源是一个永恒的话题,特别是当配置太过高档,而机箱自带的300--400瓦电源无法应付的时候。当然啦,你也可以简单一些,直接去买一个1000瓦级别的电源就好啦,不过这么做可能会很浪费。很多时候我们无法搞清楚一台电脑中各个部件到底消耗了多少瓦电力,这是因为:显卡和CPU厂商为了保险起见,总是夸大产品的实际功率需求;各种各样的功耗计算器总是使用笼统的数据;很多计算机类媒体对于电脑实际功耗的测量非常匮乏。当你打开一片硬件评测文章,翻到其功耗测试部分,你会发现功耗数据是通过墙上的220V市电插座测试出来的。这种测试非常容易,只要花不到50美元买一块消费级的功率表就可以了,它可要比那些严谨认真的测试工具便宜多了。
通常情况下,这种功率表的准确性还是相当高的,特别是当负载为几百瓦并且属于非线性负载的时候(计算机电源,特别是没有主动PFC的电源,就是一种非线性负载)。这种功率表中包含一个专用的微控制器,可以通过时间对电流电压积分,从而计算出负载消耗的有功功率。
几乎每一个计算机类媒体在测试功耗时,都会采用这种消费级的功率表。我们实验室里也有一个,但是并不用它来做严谨测试,只是在需要对某台计算机的功耗作出快速估计的时候才会使用,因为它很方便,不需要做什么准备工作。
消费级功率表所提供的测量结果与电脑的实际功耗并不完全相符,这是因为:
(一)电源自身的效率没有考虑进去。比方说某个电源的转换效率为80%,当负载实际消耗为500瓦时,这个电源将从220V市电中消耗500/0.8=625瓦。如果采用这种测量方式的话,将会得出625的结论,你可能会据此去选择额定功率为650瓦的电源,而实际上550瓦的电源就够用了。当然,你也可以把效率因素考虑进去,重新计算结果,但这要求你必须首先把电源详细测试一遍,记录它在不同负载下的效率值。这样做显然非常麻烦,而且测试结果也不够准确。
(二)这种测量方式得到的是平均值而非最大值。现代的CPU和显卡的功耗,能够在极短的时间内发生极大的改变。采用这种测量方式的话,你将无法看到电流的在极短时间内的变化(spike),因为这些极短时间内的变化(spike)都被电源里面的电容器消除掉了。
(三)这种测量方式无法告诉我们负载是如何分布的,比如+5V,+12V,+3.3V的电流各是多大,这些信息非常有趣,同时又很重要。
(四)最后也是最重要的一点。这种测量方式无法告诉我们CPU消耗了多少瓦,而显卡又消耗了多少瓦,你仅仅能得到一个所谓的“系统整体功耗”。
除了用消费级功率表来测量以外,还可以通过测量电源内部各路电流的大小来计算功耗。这种方式从技术上实现比较困难,但也不是完全不可能,比如技嘉的Odin GT电源就采用了这种设计,其内建了一个功率表。技嘉的Odin GT电源完全可以用来组建一个功耗测试平台,事实上这是一个蛮不错的方案,我们之所以没有选择它,是因为我们想要组建一个更加普遍和灵活的测试平台。
"我们的测试设备和测试方法
最简单的方法,就是通过在电源的各路电缆中串入分流器(一种阻值很小的电阻器)来测量电流大小,但是这种想法马上就被抛弃了。因为大电流级别的分流器不仅个头相当大,而且其压降为几十毫伏,这对于电源里的+3.3V这一路来说确实大了点。值得庆幸的是,Allegro微系统公司生产了非常优秀的基于霍尔效应的线性电流传感器,这种传感器能够将其传导通路中电流产生的磁场转化为输出电压,同时具有以下优点:
*当测试电流通过其传导通路时,传导通路的内阻不超过1.2毫欧。这样的话,即使测试电流高达30安培,压降也只有36毫伏。
"*
该传感器具有线性特征,输出电压与测试电流成正比关系,这样就不必涉及到复杂的算法。
*该传感器的传导通路和感应部分是电气绝缘的,因此它们可以用来测量不同电压回路中的电流,无需同步。
*该传感器采用紧凑的SOIC8封装,仅有5毫米大小。
*该传感器可以直接与模数转换器的输入端相连,无需电压等级匹配,也无需电流解耦。
我们选用了Allegro公司的30安培级别的电流传感器ACS713-30T
。由于它的输出电压和测试电流直接成正比,因此测量出输出电压以后,再乘以一个适当的系数,就可以知道电流的大小了。输出电压可以通过万用表来测量,之所以没有采用,是因为它很不方便,而且标准型的万用表响应速度也不够快。再有,为了同时测量各路电流,可能需要多个万用表。这样一来,整个测试过程将是一项繁重的体力劳动,显然很不合适,因此我们决定自己制作一套完整的数据采集系统。
为了将传感器的输出电压模拟信号转变为数字信号以便读取,我们选用了Atmel公司的8-bit微控制器ATmega168
。利用它的8通道10-bit模数转换器,我们一共连接了8个电流传感器。从图中可以看到,除了ATmega168微控制器和8个ACS713传感器以外,还有一个相对大一点的芯片FTDI FT232RL。它是一个USB接口控制器,测试过程中的数据就是通过它和记录电脑的USB接口相连的。只要你愿意,你甚至可以使用正在进行功耗测试的电脑来记录它自身的功耗数据,并没有任何使用上的限制。但假如你想从按下电源开关那一瞬间就开始记录的话,这时就需要另一台电脑来帮忙。
这块采集卡小巧方便,大小约为80毫米x100毫米,正好可以安装在一个电源上,而电源又可以放在一个标准的ATX机箱里面。上图照片为采集卡安装在PC Power &Cooling公司的Turbo-Cool 1KW-SR 1000瓦电源上。
这个数据采集系统在使用前必须首先经过校准。方法是让一个已知大小的电流流经每一个测试通道,然后该电流和ACS713传感器输出电压之间的比例系数就可以被确定下来。由此产生的8个通道的比例系数都被存储在ATmega168微控制器的ROM里面,并且绑定到这张采集卡上。这张卡随时可以重新校准,向ROM中写入新的系数。
图中横坐标为时间(单位:0.1秒),纵坐标为电流(单位:安培)
我们为这张采集卡开发了一套专用程序,它能够以实时模式获取每个通道的测量数据。这套程序可以自动记录各个通道电流的瞬时值、最大值、最小值、平均值,还可以自动计算出具有相同电压的测试通道的电流总和,以及整台电脑功耗的瞬时值、最大值、最小值、平均值。
顺便说明一点:分别测量各路电流的最大功耗,再把它们加起来得到总的最大功耗,这样做是不对的,因为各路峰值电流有可能是在不同时刻出现的。比如对于硬盘来说,在按下开机按钮后5秒钟主轴马达启动时,+12V达到3安培的峰值电流,而显卡则在FurMark测试开始后其+12V才达到10安培的峰值电流。这是否意味着系统中+12V总的最大电流消耗就是13安培呢?显然不是。因此这套程序采用的是计算系统每时每刻的瞬时功耗,然后再从中选出最大值,得到最大功耗。
在这套程序中,你可以为8个测试通道分别选择不同的名字和颜色,所有的测量结果都以图表的形式显示出来,可以保存为图片格式,也可以保存为文本格式。采样频率设定为每秒钟10次,虽然采样次数可以继续增加,但是那样做并没有必要,因为数据量太大并且测量结果也没有什么变化。需要说明的是,这套系统并没有去测试实际的电压值,它在计算功率的时候,是通过假定+12V/+5V/+3.3V各路电压都是理想的12.0V/5.0V/3.3V来完成的。在本次测试中,主板+12V和硬盘+12V所消耗的电流被放在一起。以后测试显卡功耗的时候,我们会把主板上PCI Express显卡插槽所消耗的电流单独拿出来测量。
现在我们有了一个连接方便、使用简单、用途广泛并且足够精确的功耗分析系统,既可以用来测试“系统整体功耗”,又可以用来分析某一具体部件的功耗。下面我们就来展示一下这套系统的威力,用它来测量5套不同配置的电脑,包括从低端的“办公打字机”到顶级的“专用游戏机”。
"
"办公电脑测试
CPU:英特尔奔腾双核E2220(2.4GHz)
散热器:极冻酷凌Igloo 5063 Silent(E)PP
机箱风扇:极冻酷凌SilentBlade II GT9225-HDLA1
主板:技嘉GA-73PVM-S2(GeForce7100集成显卡)
内存:三星DDR2 800 1GB CL6
硬盘:日立Deskstar 7K1000.B HDT721016SLA380(160GB)
DVD刻录机:索尼日电Optiarc AD-7201S
读卡器:索尼MRW620
机箱:迎广EMR-018(350W电源)
操作系统:32位Vista Home Premium SP1
这台电脑在Windows启动过程中显然功耗很低,各路电流始终都没有超过3安培。其中CPU的功耗波动非常有趣:按下电源按钮后,头20秒功耗较高,然后迅速下降,维持在很低的水平,仅在有操作时才提高12-15瓦。这说明ACPI驱动程序在开机后20秒左右载入,随后就开启了CPU的节电功能。
在3DMark06测试中,由于集成显卡性能太弱,无法调动CPU全速运算,所以在大部分时间里CPU都保持在低功耗状态,只有+3.3V和+5V的功耗有一点小小的提升。
虽然FurMark号称是最严酷的测试,但是集成显卡能够轻松对付它,当然指的是功耗方面。各个配件的功耗表现都相当稳定。CPU同样没有满载,有趣的是,它在测试刚开始的瞬间功耗最高,后来降低了几秒钟,此后又略有升高。
在Prime95测试中,CPU终于达到满载,其电流达到峰值3安培。
当FurMark和Prime95同时运行的时候,并没有什么变化。CPU处于满载,而集成显卡的功耗依然不高。
"测试结果汇总
"对于这台办公电脑来说,显然任何一个电源都能满足它的要求。即便是那种装在mini-ITX机箱里面的120瓦小电源都拥有双倍的功率储备。如果将65纳米的E2220换为45纳米的E5200,那么系统整体功耗可能还会下降10瓦左右。
"
在睡眠模式(Suspend-to-RAM)下,这台电脑的+5Vsb电流为0.5安培,电源的+5Vsb通常能提供2.5-3安培
"家用电脑测试
CPU:AMD Athlon 64 X2 5000+(2.60GHz)
散热器:TITAN DC-K8M925B/R
机箱风扇:极冻酷凌SilentBlade II GT9225-HDLA1
主板:华硕M3A78(AMD770芯片组)
内存:三星DDR2 800 1GB x 2 CL6
硬盘:希捷酷鱼7200.10 ST3250410AS(250GB)
显卡:蓝宝石Radeon HD 4650 512MB
DVD刻录机:索尼日电Optiarc AD-7201S
机箱:迎广EAR-003(400W电源)
操作系统:32位Vista Home Premium SP1
在Windows的启动过程中,虽然Athlon 64 X2 5000+最大功耗超过50瓦,但是在节电技术开启后,闲置功耗则不到10瓦。注意看那条蓝色的曲线,它代表了主板和硬盘的电流变化情况。这条曲线出现下降的时候,其实就是显卡的节电技术开启的时候,因为这套配置中的Radeon4650显卡的电力供应来自于主板上的PCI Express插槽。
在进行3DMark06测试的时候,显卡和CPU的曲线将两外两条曲线覆盖住了,并且显卡和CPU的功耗一直都在上下大幅波动,这是因为二者始终都没有满载。在某些时候显卡等待CPU处理数据,而另一些时候CPU则在等待显卡完成运算。顺便提一下,如果采用以往那种“系统整体功耗”式的测量方法,我们根本不可能看到这样的细节,只能得到一个平均值而已。
FurMark虽然能让显卡达到最大功耗,但是对于CPU却无能为力,CPU电流大部分时间都维持在3安培。
在Prime95测试中,显卡到一边凉快去了,Athlon 64 X2 5000+开始发威,它的最大功耗超过了60瓦。
FurMark和Prime95同时运行时,所有配件都达到最大功耗,其中CPU是最费电的。
"测试结果汇总
"
这台家用电脑的最大功耗只有137瓦。
"文件服务器测试
这套配置是在前一套的基础上加入了3块西部数据猛禽硬盘,组成RAID0陈列。虽然所采用的硬盘已经落伍,容量只有74GB,但由于这是功耗测试,而不是性能测试,所以仍然是合适的。
CPU:AMD Athlon 64 X2 5000+(2.60GHz)
散热器:TITAN DC-K8M925B/R
机箱风扇:极冻酷凌SilentBlade II GT9225-HDLA1
主板:华硕M3A78(AMD770芯片组)
内存:三星DDR2 800 1GB x 2 CL6
硬盘:希捷酷鱼7200.10 ST3250410AS(250GB)
西部数据猛禽WD740GD 74GB x 3
显卡:蓝宝石Radeon HD 4650 512MB
DVD刻录机:索尼日电Optiarc AD-7201S
机箱:迎广EAR-003(400W电源)
操作系统:32位Vista Home Premium SP1
由于是文件服务器,因此并没有加入3DMark06、FurMark、Prime95等测试内容,而是采用了我们自己编写的一个专用测试程序FC-Verify。这个程序可以通过两个独立的线程来创建和读取特定文件,这样就能保证在任何时候它都有一个读线程和一个写线程,这对于被测试的磁盘子系统来说是强度很大的负载。如图所示,测试时在一个线程中设定了1000个256KB大小的文件,在另一个线程中则设定了100个10MB大小的文件。
首先来看一下仅有一个系统盘时候的启动过程,此时3块猛禽硬盘只连接了数据线,未连接电源线。从图中可以看出,CPU节电技术和显卡节电技术的开启时间都大大地推后了,这是由于芯片组的RAID控制器在确认过程中耗费了较多的时间。
同样是Windows启动过程,这一次3块猛禽硬盘组成的RAID0阵列处于通电状态。从测试结果中很容易发现,在刚开机的时候,蓝色曲线有一个高高的峰值,此时+12V CPU和+12V主板/硬盘的总电流超过了11安培,这是由于4块硬盘同时启动所造成的。
单一系统盘文件读写测试。显然+5V这一路的电流最大,这很好理解,因为硬盘的控制电路以及南桥的磁盘控制器都依靠+5V供电。
系统盘加上3块猛禽组成的RAID0阵列文件读写测试。此时+5V的负载达到了最大,而+12V的功耗却相当低。
"测试结果汇总
"
"
有点出乎意料,对于文件服务器来说,高强度的读写操作并不是最费电的,事实上最大功耗出现在刚开机所有硬盘同时启动的时候。因此,对于大型的磁盘阵列系统来说,最好能有一个智能的RAID控制器,可以在开机的时候一个接一个地启动硬盘。对于这套由3块硬盘组成的阵列系统来说,一个典型的300瓦电源就足够了,它不但能够保证系统轻松启动,还拥有正常工作时所需的3倍功率储备。
"主流游戏电脑测试
CPU:英特尔Core 2 Duo E8600(3.33GHz)
散热器:极冻酷凌Igloo 5063 PWM(E)PP
主板:华硕P5Q(P45芯片组)
内存:金士顿ValueRAM DDR2 800 2GB x 2 CL6
硬盘:希捷酷鱼7200.12 500GB
显卡:蓝宝石Radeon HD 4850 512MB
DVD刻录机:索尼日电Optiarc AD-5200S
读卡器:索尼MRW620
机箱:迎广S627TAC(450W电源)
操作系统:32位Vista Home Premium SP1
Windows启动:CPU和显卡分别在开机后5秒钟和12秒钟进入节电状态。E8600毕竟是目前最快的双核处理器,所以机器启动速度非常快。
3DMark06测试时,显卡功耗变化很快,而且变化幅度也很大,+12V辅助供电接口的电流会迅速跌至4安培以下,然后又猛窜到7安培以上。从图中可以看出CPU在大部分时间里都处于闲置状态,功耗并不高。
虽然FurMark测试对显卡施加了很高的平均负载,但是却没有出现3DMark06测试中7安培的峰值电流,这一点很有趣。由于在此项测试中CPU负载明显高于3DMark06,所以各路+12V电流总和大于3DMark06。
到了Prime95测试环节,显卡终于可以歇一歇了,其辅助供电接口电流仅有1安培。CPU功耗虽然增大,但是始终也没有超过50瓦,这个数字其实还包括了供电单元的消耗。
FurMark和Prime95同时运行时,系统功耗达到最大,你可以看到显卡的功耗明显大于CPU。+12V主板/硬盘这一路满载电流为4安培,其中有很多都被Radeon4850显卡通过PCI Express接口消耗掉了。
"测试结果汇总
这台游戏电脑的最大功耗只有189瓦,一个300瓦的电源就已经多出了50%的功率储备。对于这种配置的电脑来说,绝对没有任何理由去购买超过400瓦的电源。
"高端游戏电脑测试一
CPU:英特尔Core i7-920(2.66GHz)
主板:技嘉GA-EX58-UD3R
内存:三星DDR3 1333 1GB x 3 CL9
硬盘:希捷酷鱼7200.11 ST31000333AS(1TB)
显卡:丽台WinFast GTX 260 Extreme+ W02G0686 896MB
DVD刻录机:索尼日电Optiarc AD-7201S
机箱:迎广J614TA F430(550W电源)
操作系统:32位Vista Home Premium SP1
如果你在硬件论坛就以上这套配置向别人发帖询问的话,很多人都会建议你至少购买750瓦的电源。下面我们就来看一看,它的最大功率到底有多少?
由于Core i7和GeForce GTX 260都有节电技术,所以Windows启动过程没有什么特别之处。
3DMark06测试再次印证了一条真理:不论你的CPU有多牛B,随便找一块高端显卡都可以在功耗方面把它打败。
FurMark测试中,显卡功耗以6到7秒为周期进行有规律地变化,这种现象不好解释,可能是由于FurMark的特性所导致的。CPU显然没有满载,其功耗几乎维持在36瓦不变。
Prime95测试中,又轮到显卡休息了,CPU功耗则从闲置状态下的20瓦猛增到接近120瓦!看来英特尔的处理器在电源管理方面确实很优秀,真的应该好好表扬一下,同时希望未来32纳米处理器的满载功耗能够降低一些。
在Prime95和FurMark同时运行时,Prime95最大程度地占用了Core i7的8个线程,这使得Core i7过载了。Core i7虽然性能强劲,但是在以8线程开启Prime95的情况下,并不能够同时满足来自于显卡的运算需求。结果导致显卡只能渲染一帧,等待一下,然后再渲染一帧,再等待一下,于是就出现了图中所示的显卡功耗急升急降。如果是采用消费级功率表测量整体功耗的话,则只能显示出平均值,无法显示出最大值。
"测试结果汇总
"
"这台高端游戏电脑的最大功耗其实只有371瓦,一个550瓦的电源就可以轻松满足它的需要。另外,这台电脑开机时+5Vsb电流只有0.1安培,是这几套配置中最小的,但是S3模式(Suspend-to-RAM)下却增大为0.7安培。
"高端游戏电脑测试二
这套配置是在前一套的基础上将显卡换成双芯片的华硕ENGTX295(GeForce GTX295),这也是目前最顶级的游戏配置了。
CPU:英特尔Core i7-920(2.66GHz)
主板:技嘉GA-EX58-UD3R
内存:三星DDR3 1333 1GB x 3 CL9
硬盘:希捷酷鱼7200.11 ST31000333AS(1TB)
显卡:华硕ENGTX295/2DI 1792MB
DVD刻录机:索尼日电Optiarc AD-7201S
机箱:迎广J614TA F430(550W电源)
操作系统:32位Vista Home Premium SP1
Windows启动:开机后大约15秒左右,随着ACPI驱动程序的载入,CPU节电技术顺利开启。而显卡的情况则有一些不同:开机后大约30秒的时候,GTX295其中一个+12V辅助供电接口的电流下降,但与此同时+3.3V这一路的电流却从5安培提高到6安培。由于前一套配置在启动过程中并没有出现这种现象,所以这一定是由于更换GTX295显卡所导致的。在开机后40秒左右,显卡的两个+12V辅助供电接头的电流都变大了,同时+12V主板/硬盘的功耗也增加了,增加的这部分只能归结于PCI Express显卡插槽电流增大。因此,对于GTX295这样的双芯片显卡来说,你不能指望它在功耗方面能有单芯片显卡那样的表现,即便是在Windows桌面闲置的情况下。
3DMark06已经不能对现代的高端游戏电脑施加足够的压力。虽然CPU和显卡的功耗波动很剧烈,但是二者都没有进入满载状态。
在FurMark测试中,显卡的功耗曲线好看多了(满载)。同时还可以发现,显卡功耗在测试过程中缓慢上升,这是由于显卡越来越热所造成的。
Prime95使得CPU的功率激增了100瓦。从图中还可以看出,CPU功耗曲线微微上翘,这同样是由于温度升高所导致的。因为对于半导体芯片来说,温度越高,功耗就越大。
同时运行FurMark和Prime95时,情形与上一套配置类似:CPU已经过载,无法同时满足来自显卡的运算需求。
现在来对比一下,如果采用以往那种测量方式,将会得到什么样的结果?我们改为使用文章开头提到的PM-300那种消费级的功率表来测试,它向我们报告功耗最大值为490瓦。如果电源转换效率按照90%来计算,这意味着整套电脑最大功耗为441W。但是利用我们自己开发的这套工具,测试结果却表明,实际最大功耗已经超过了500瓦。为什么会有这么大的差异呢?原因就在于,当系统功耗快速而又剧烈波动的时候,功率表报告的是平均值,而非最大值。
"测试结果汇总
对于Core i7和GeForce GTX 295这种顶级配置来说,750瓦电源就已经绰绰有余了,因为它多出了50%的功率储备。请注意,503瓦的最大功耗数据是在极端重度负载的情况下达到的,现实中没有哪一部游戏作品能够像FurMark + Prime95这样残酷地折磨电脑。也就是说,750瓦的电源实际上拥有更大的功率储备。
最后奉上5套配置的最大负载(FurMark + Prime95)和典型负载(3DMark06)功率需求总结
问题一:性能测试应该做哪些准备 环境搭建:这个根据实际规划,我在企业内做过的性能测试搭建的环境都是和用户上线使用的实际环境一样的。数据准备:个人感觉是整个工作里第二耗时的,需要真实模拟用户数据,这个不是单单的创建几个帐号就完事的,每个用户基本都会有不太一样的配置,实际操作的时候部署数据的脚本都写到手软。
脚本编译:选择性能工具编译性能脚本,你需要跑什么业务流程就编译什么样的脚本。
脚本执行:用规划好的用户数执行脚本,这个一般持续很长时间,时间太短不足以暴露服务器等的性能瓶颈,性能测试中最耗时的就是这个步骤。
收集日志:在执行脚本完成后收集到的能客观反应系统性能的日志、报表文件,比如LR的报告、数据库的AWR日志等等。
分析结果:分析收集到的日志、报表,找出性能瓶颈或是得出性能指标结果。这个一般需要对数据库或者底层非常了解的专业人士来分析,一般测试人员只需要提供收集到的报告就差不多了。
生成报告:将上面所有的性能测试活动整理总结,输出测试报告。
问题二:如何做好性能测试? 你好,首先很欣赏你的这种态度。我在TestBird 招聘新人的时候,也有很多小朋友觉得自己有多了解工具运用,有多熟练步骤过程,自我感觉很不错。
其实,我却想说,性能测试的重点不在性能测试工具的学习上。
当然,你也通过分析系统的压力点、LR录制脚本,设置用户,做压力,分析结果,整理测试报告。完成了性能测试的整个过程。那么我说这个性能测试报告是有效的,但它不一定是有用的。
为什么呢?因为在性能测试报告中,在你所在的环境中,你是测出了这样的效果。并未掺假,全部真实的记录。
为什么说它不一定是有用的,你了解系统架构么?知道数据库、中间件、前端程序的运行方式和处理机制么?了解网络协议么?了解操作系统么?熟悉开发系统的语言么,如java JVM的内在机理知道么?这些都是系统运行的一部分,都在影响着系统的性能。如果不了解这些,你如何做出有价值的有参考意义的性能测试。
所以,学会这些性能测试工具很好,但是这仅仅是第一步。性能结果只是一些数据而已,知道你在做什么,为什么要做这些,做完后能给出有价值的东西,才是后面要慢慢修炼的。
问题三:移动客户端的性能测试如何做? 。就当练习了。。大家看了不要喷我。。现在很多测试人员做移动端测试,可能主要还是关注功能和自动化测试。性能测试可能大多是按照每个人的体验来做报告,是不是比较快,或者比较慢。当然也不乏有很多的测试人员会回复我说,性能测试都是服务器的,移动端根本就不需要性能测试。我实在觉得可笑。 不过我毕竟一直在创业公司,而且就我一个人,所以了解可能有限,我这里就说下我之前碰见的,所知道的,目的只是抛砖引玉。 另外,我这里也不去说什么MAT,instruments了,这种固有查找内存的工具大家自己google吧。 客户端的性能从系统层面,电量消耗,网络流量,内存泄漏等都是被关注,或者说用户最最关注的点。 实例一,3rd 应用的性能测试。应用本身的响应时间可以通过call 应用intent来查看,设备纯环境,设备低内存等各种情况下进行同样此数的call,进行对比。或者与同行业同性质的应用进行对比测试。我相信很快就能够有结论了。除了应用本身,还需要对于应用本身某些特别的功能进行响应测试。比如测试一个list,测试的方法为onkeydown之后查看这个list.index(0)是否高亮,是否正常的界面跳转了,那么分别进行计时(精确ms)。同样的,我们在空list以及有几百条list的情况进行这样的case test,那么就会有一个性能的结果出来。 实例二,假设你测试微薄客户端,那么你肯定是需要进行一个list上下滑动的性能测试。我们需要使用脚本语言shell或者python去call server api来仿造数据反馈到移动设备上,否则你不可能自己手动去发几百条weibo然后再测试。测试的时候需要关注两个问题,一个是list在各种情况下是否滑动流畅,一个是当list中有很多的图片的时候图片load的速度也是一个很大的测试点。这个load可以直接检查imageview什么时候load出来pic,什么时候显示在界面上,计算时间。这里其实很多应用是webview,或者数据是存在服务器端的,这个时候无论是平时的测试还是压力,还是性能,数据的修改,其实还是多使用脚本ping api比较好,能够很好的去辅助达到性能测试的效果。 实例三,比如要测试一个优酷的视频软件,那么视频的播放的时候,首先保证网络的情况下,各种分辨率各种码率的视频接入时间是需要关注。然后在播放,也就是和网络不停的通信的同时,那么需要通过tcp dump和wireshark工具来检查网络访问是否正确,视频的卡顿,视频的花屏等除了硬件兼容之外,可以通过抓包来判断其性能。如果丢包率高那么自然视频卡,体验不好,性能也就不会好。 其实以上只是一些很基础,现在很多公司也已经在这个基础上改良测试了。不过也是一些思路,让更多的企业和测试关注移动客户端的性能。不要一提到性能脑中只有LR等这些Server测试。
问题四:为什么要进行性能测试? 原因有三:
川. 开发者的水平各有不同,有的写出来的东西性能高,有的低,所以需要统一测试一下。
2. 编程工具本身也有性能问题,用这样的工具开发出来的软件也要确认一下是否达到了需求所要求的性能指标,比如响应时间应该控制在多少秒以内。
3. 性能测试,强度测试都是为了测试系统的稳定性,稳定性好,软件的质量就好,买的钱就多。
问题五:如何进行Web服务的性能测试 贴一篇我们内部的文章:
随着浏览器功能的不断完善,用户量不断的攀升,涉及到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. 如果超过了这......>>
问题六:网站性能测试主要有哪几种方法? 我知道的性能测试主要有:压力测试,负载测试,容量测试,发性能测试,兼容性测试(不同的操作系统和不同的浏览器)。测的时候应用在客户端的性能、应用在网络上的性能和应用在服务器端的性能都要进行测试的。
希望能帮到你。
问题七:怎么才能做性能测试工程师? 性能测试实际上确实需要些功底儿,但是也并不是非得一两年之后才去做。
我给你列几条性能测试工作中的建议,你可以自己温习一下,然后去面试,具体的经验需要实际的工作才能得到,然而你扎实的基础知识才识支撑你走下去的动力。
1,最直接也是最表面的建议,适用于面试:Loadrunner, HttpWatch, Dynatrace, TeamQuest, JMeter(可选), Wily(可选), HTML/HTTP, Webservice, Mainframe, DB. 这些东西足够学很久很久的了,所以说需要几年的工夫,但是没必要每一样都学太深,了解即可,经验日后会积累到的。
2,相对比较深层的建议:性能测试最关键之处不是工具的选择,而是对整个性能参数的理解,所以比较贴近于概念,比如说什么是TPS, Response Time, Connection浮 per Second....还有就是什么是CPU Utilization, FreeMem, Disk IO, Paging.... 工具也无非都是通过日积月累形成的客户端,所以抓到本质才是关键。
不在这里长篇大论了,呵呵,加油!
问题八:性能测试应该怎么做 需求分析 - 测试设计 - 测试执行 - 结果分析
问题九:APP如何做性能测试 目前市面上有很多家做安全加密的平台都有做安全检测,但是大部分需要付费,如果说只是个小项目的话花钱去做的话成本太高,也不建议去做
你可以了解下爱内测这个平台,专门做测试的,有安全检测、兼容测试、插件评估等,虽然这个平台也是付费的,但是他有免费的版本提供,个人觉得安全检测免费版本已经足够强大了,自动化生成测试报告,提供精准的检测数据
希望可以帮助到你
问题十:服务端怎么做性能测试 使用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中的方法编写完成,创建一个web.jsp文件,如下:
导入class
声明类,并实例化,直接调用刚才编写的3个方法,因为这3个方法是直接对数据库进行操作,不需要实参,也没有返回值,所以直接实现即可。
此时启动web服务,在浏览器中输入jsp的地址,直接刷新页面,就可以调用这3个方法,如果正确,就会对相应的表进行操作,如果不正确,则需要修改相应的代码。
2. LR脚本准备:
LR脚本实际上就是对访问代码的调用,关键在于需要根据测试场景划分不同的脚本布局。
例如:在myEclipse里,我们只编写了一个class,其中包含三个方法,如果在执行性能测试时,这三个方法相互独立,互不干涉,则最简单的划分方法是,创建三个java user,每个java user中包含一个方法,做三份脚本,场景执行时分别进行调用。如果三个方法之间有相互关系,则需要根据实际情况,把有关联的方法放在一起,具体情况可按实际灵活分配。
因为已经将class文件进行编译发布了,所以可以在“java2postgres\WebRoot\WEB-INF\classes\\lr\test”目录中找到对应的class文件,
复制这个文件,找到LR的目录:HP\LoadRunner\classes\\lr\test\ 如果没有文件夹,按相同的内容创建。
在LR脚本中进行引包操作:
将需要执行的java类以及方法,放在action中,可根据实际测试情况和所需要验证的内容,具体调试代码。
在这里可以像编写普通LR脚本一样,添加事务或 *** 点等内容。
由于是通过JDBC对数据库进行访问,因此要在java user中加载jdbc驱动。
运行时设置中,增加jdbc驱动,需要注意的是java user使用的本地jdk,需要至多1.6版......>>
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)