如何在服务器上测试软件

如何在服务器上测试软件,第1张

天互数据 为您解答
服务器测试方法

服务器测试方法分为两个大方面,性能测试与功能测试。
我们在性能测试方面采用了新的测试方法,主要分为文件测试、数据库性能测试与
Web
性能测试三个
方面。其中,文件性能与数据库性能采用美国
Quest
软件公司的
Benchmark Factory
负载测试和容量规划
软件,
Web
性能测试则使用了
Spirent
公司提供的
Caw WebAvalanche
测试仪。
一、性能测试
1
、文件性能测试方法
Benchmark Factory
软件能按照文件读写的关键指标定制事务。软件最大支持
1000
个虚拟客户。
本次测试环境包括
10
台配置为
PIII800/128MB
内存
/20G
硬盘以上的客户端,它们用来模拟虚拟用户。
控制台为配置是
PIII 850/128MB
内存
/40G
硬盘的
Acer
笔记本电脑。交换机为带有两个千兆
GBIC
接口、
24

10/100M
自适应端口的
Cisco 2950
,客户端与控制台通过
100M
网卡连到交换机上,被测服务器则通
过千兆光纤网卡与交换机相连接。
被测服务器均安装带
SP4

Windows
2000
Advanced Server
*** 作系统,在所有三项性能测试中都统一
RAID
级别为
5

在具体测试方案设置上,测试软件把决定文件读写 *** 作的关键因素设定为:读
/
写、随机
/
顺序、 *** 作
块大小、对象大小四个。在本次测试中,考虑到我们设有单独的数据库及
Web
测试项目,所以在文件测试
中,我们把目标确定为测试服务器基本的
I/O
性能,这主要由网络接口、系统带宽、磁盘子系统等几大部
分所决定。同时,从几部分的作用看,以大 *** 作块读写大对象文件,小 *** 作块读写小对象文件,较能反映
服务器最基本的
I/O
性能,即“大 *** 作块读写大文件”对系统带宽、缓存的考察,以及“小 *** 作块读写小
文件”对磁盘子系统、网络接口的考察。最终我们确定的四个事务是:
大文件顺序读写
(
*** 作块
8KB
,对象文件
80% 500KB

20% 1MB)
大文件随机读写
(
*** 作块
8KB
,对象文件
80% 500KB

20% 1MB)
小文件随机读
(
*** 作块
1KB
,对象文件
80% 1KB

10% 10KB

10% 50KB)
小文件顺序写
(
*** 作块
1KB
,对象文件
80% 1KB

10% 10KB

10% 50KB)
每个事务的用户数均以固定步长逐渐增加,
最大可增加到
1000
个虚拟用户。
其中,
“大文件顺序读写”
事务的用户数按照
40
的步长从
1
可增加到
400

(
测试至强服务器
)

200

(
测试
TUALATIN
服务器
)
,其
他事务则将用户数按照
100
的步长从
1
增加至
1000
。我们期望得到其在不同用户数时被测服务器的性能表
现。总体上其走势及峰值反映了该服务器的性能。每项事务均运行三次,每次之间被测服务器进行重启,
最终结果为三次平均值。
2
、数据库性能测试方法

“乘机安全小贴士”安全出行要重视
数据库性能测试同样使用了
Benchmark Factory
软件,测试环境如同文件性能测试。测试时,在被测
服务器上安装
SQL Server 2000
使用企业版。首先在被测服务器上创建新的数据库,通过使用
Benchmark
Factory
预定义的
Database Spec
项目向数据库中创建表,装载数据。在服务器端创建以
CPU
计算为主的
存储过程,通过
10
台客户机模拟用户、按照
40
个虚拟用户的步长递增到
400
个用户,执行该存储过程。
结果是以获得的每秒事务数
(TPS)
衡量服务器的数据库事务处理能力。
整个测试分为三次,
每次之间重新启
动被测服务器,最终取三次平均值作为评价结果。
3

Web
性能测试方法
Web
性能测试工具是由
Spirent
公司提供的
Caw WebAvalanche

WebAvalanche
模拟实际的用户发出
>其实在租用之前你应该先让服务商提供下IP以及网站案例测试好速度与稳定性后再决定是否租用现在服务器已经开通你需要让服务商把用户名和密码给你如果你想测试的话建议把自己的网站架设上去然后找各个不同地区的朋友帮你打开网站参考下速度与稳定性也可以借助于一些测试网站比如说卡卡测速网来测试全国各地以及国外等不同地区访问你网站所需要的时间

################### cpu性能查看 ############################################################
1、查看物理cpu个数:
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
2、查看每个物理cpu中的core个数:
cat /proc/cpuinfo |grep "cpu cores"|wc -l
3、逻辑cpu的个数:
cat /proc/cpuinfo |grep "processor"|wc -l
物理cpu个数核数=逻辑cpu个数(不支持超线程技术的情况下)
########################### 内存查看 ################################################################
1、查看内存使用情况:
free -m
total used free shared buffers cached
Mem: 3949 2519 1430 0 189 1619
-/+ buffers/cache: 710 3239
Swap: 3576 0 3576
total:内存总数
used:已经使用的内存数
free:空闲内存数
shared:多个进程共享的内存总额
- buffers/cache:(已用)的内存数,即used-buffers-cached
+ buffers/cache:(可用)的内存数,即free+buffers+cached
Buffer Cache用于针对磁盘块的读写;Page Cache用于针对文件inode的读写,这些Cache能有效地缩短I/O系统调用的时间。
对于 *** 作系统来说free/used是系统可用/占用的内存;而对于应用程序来说-/+ buffers/cache是可用/占用内存,因为buffers/cache很快就会被使用。我们工作时候应该从应用角度来看。
################# 硬盘查看 ##########################################################################
1、查看硬盘及分区信息:
fdisk -l
2、查看文件系统的磁盘空间占用情况:
df -h
3、查看硬盘的I/O性能(每隔一秒显示一次,显示5次):
iostat -x 1 5
iostat是含在套装systat中的,可以用yum -y install systat来安装。
常关注的参数:
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
如果idle小于70%,I/O的压力就比较大了,说明读取进程中有较多的wait。
4、查看linux系统中某目录的大小:
du -sh /root
如发现某个分区空间接近用完,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录,然后按照从大到小的顺序,找出系统中占用最多空间的前10个文件或目录:
du -cksh |sort -rn|head -n 10
############################################ 查看平均负载 ####################################
有时候系统响应很慢,但又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待。
最简单的命令:
uptime
查看过去的1分钟、5分钟和15分钟内进程队列中的平均进程数量。
还有动态命令:
top
我们只关心以下部分:
top - 21:33:09 up 1:00, 1 user, load average: 000, 001, 005
如果每个逻辑cpu当前的活动进程不大于3,则系统性能良好;
如果每个逻辑cpu当前的活动进程不大于4,表示可以接受;
如果每个逻辑cpu当前的活动进程大于5,则系统性能问题严重。
一般计算方法:负载值/逻辑cpu个数
还可以结合vmstat命令来判断系统是否繁忙,其中:
procs
r:等待运行的进程数。
b:处在非中断睡眠状态的进程数。
w:被交换出去的可运行的进程数。
memeory
swpd:虚拟内存使用情况,单位为KB。
free:空闲的内存,单位为KB。
buff:被用来作为缓存的内存数,单位为KB。
swap
si:从磁盘交换到内存的交换页数量,单位为KB。
so:从内存交换到磁盘的交换页数量,单位为KB。
io
bi:发送到块设备的块数,单位为KB。
bo:从块设备接受的块数,单位为KB。
system
in:每秒的中断数,包括时钟中断。
cs:每秒的环境切换次数。
cpu
按cpu的总使用百分比来显示。
us:cpu使用时间。
sy:cpu系统使用时间。
id:闲置时间。
标准情况下r和b的值应该为:
r<5,b=0
假设输出的信息中:
如果r经常大于3或4,且id经常少于50,表示cpu的负荷过重。
pi、po长期不等于0,表示内存不足。
bi经常不等于0,且在b中的队列大于2或3,表示io的性能不好。
################################# 其他参数 #####################################
查看内核版本号:
uname -a
简化命令:
uname -r
查看系统是32位还是64位的:
file /sbin/init
查看发行版:
cat /etc/issue
或lsb_release -a
查看系统已载入的相关模块:
lsmod
查看pci设置:
lspci

使用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性能测试一样,设计场景、执行测试、收集报告、分析性能瓶颈即可。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/12809283.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存