常用的软件测试工具有哪些?
在测试工作中,需要接触到各种类型的测试工具。一般来说,有以下一些类型的工具:测试管理工具:可以帮助完成测试计划、跟踪测试运行结果等的工具。这类工具还包括有助于需求、设计、编码测试及缺陷跟踪的工具;静态分析工具:分析代码而不执行代码。这种工具检测某些缺陷比用其它方法更有效,开销也更小。这种工具一般可以度量代码的各种指标,如McCabe测定复杂度,Logiscope度量代码和规范的复合度等等;覆盖率工具:这种工具评估通过一系列测试后,软件被执行的程度。这种工具大量的被应用于单元测试中,如PureCoverage、TrueCoverage、Logiscope等;动态分析工具:这种工具评估正在运行的系统。例如,检查系统运行过程中的内存使用情况,是否有内存越界、内存泄露等等,这类工具有Purify、BoundChecker等;测试执行工具:这类工具可使测试能够自动化进行,并且各个层次(单元测试、集成测试、系统测试)的执行工具都有。例如系统测试阶段有功能测试自动化工具,如Robot、Winrunner、SilkTest等;还有性能测试工具,如Loadrunner、SilKPerformer等。白盒测试工具主要有:内存资源泄漏检查:Numega中的bouncechecker,Rational的Purify代码覆盖率检查:Numega中的truecoverage,Rational的Purecoverage,Telelogic公司的logiscope,Macabe公司的Macabe代码性能检查:Numega中的truetime,Rational的Quantify代码静态度量分析质量检查工具:logiscope和Macabe黑盒测试工具主要有:客户端功能测试:MI公司的winrunner,compuware的qarun,Rational的robot服务器端压力性能测试:MI公司的winload,compuware的qaload,Rational的SQAload等等Web测试工具:MI公司的Astra系列,rsw公司的e-testsuite测试管理工具:rational的testmanager,compuware的qadirector等缺陷跟踪工具:trackrecord,Testtrack单元测试工具:测试框架:delphidunitjavajunitc++cppunit
参考工具:
1、VisualVM
VisualVM是一个资源分析工具,一直从JDK 6更新到7。它默认内存和CPU的监视。它可以告诉你哪个类和方法消耗资源,但它不会显示代码流程。
2、JProfiler
JProfiler很容易安装,并且通过向导,你可以选择应用服务器用来运行应用程序。我不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器。在监听会话的过程中,它会提供了几个选项。它可以记录内存的使用和CPU的使用率。在查看CPU的使用率同时,可以看到执行路径。这让我看到应用程序大部分时间都花在请求上。我们可以将IntelliJ插件安装到IDE上,那么运行JProfiler会更加便利。比如,可以直接帮我启动Tomcat。
3、YourKit
YourKit是我在另一个项目中偶然发现的一款性能分析工具。它的安装很简单。安装时有一个选项,可以安装一个插件到我的IDE。安装后,运行应用程序,使用该插件,它会自动连接到YourKit。它有一个漂亮的用户界面可以查看到内存和CPU的监测,同时也可以看到请求的执行路径。
4、JProbe
我刚开始创建JProbe时遇到点困难。安装并不是直接完成,我需要对它进行配置。它采用了类似JProfiler一样的设置。它会在你的Tomcat目录中生成启动脚本。可以通过脚本启动服务器并监听会话。它的界面包含有按钮和表格,其中可以看到内存的使用,但无法在进程中找到执行路径。
5、Spring Insight
听到TC Server有Spring Insight监控界面,于是我兴奋地尝试了一下。安装完成后,并设置成TC Server的开发者版,然后部署应用程序在TC Server上。我查看Insight界面,它可以很好的监视类和方法,并能看到完成这个方法用了多少时间。我还能看到输入参数值,以及返回值。由于我的应用程序是基于Spring的,Spring Insight能够提供非常有用的数据。TC Server插件在IDE上的配置与Tomcat的配置类似。SpringSource工具套件就自带Spring Insight。
结论
看到这五款性能分析工具,我可以肯定地说,它们都非常不错。如果你有基于Spring的应用程序,那么选择Spring Insight显然是最佳的。它一直是免费的,但你需要部署你的应用在TC Server上。
如果你想监听本地和远程的进程,我会选择JProfiler或YourKit。这两个也可以帮助Spring Insight来监测、找到性能瓶颈。
JProfiler和YourKit已经能满足我的上述要求。JProfiler、YourKit和Spring Insight都可以跟踪应用程序的类和方法的流向。JProfiler和YourKit可以显示内存使用情况。虽然Spring Insight不可以显示内存使用情况,但它可以很好的显示吞吐量的趋势。这三款性能分析工具功能很清楚,不混乱,而且容易使用。最后,他们都有自己的IDE插件。希望本文能帮助你做出正确的选择。
对于DBA来讲,我们都会做新服务器的性能测试。我会从TPC的基准测试入手,使用HammerDB做整体性能评估(前身是HammerOra),跟厂商数据对比。再使用DiskSpd针对性的测试磁盘IO性能指标(前身是SQLIO),再到SQLIOSIM测试存储的完整性,再到ostress并发压力测试,对于数据库服务器迁移,我们还会收集和回放Profiler Trace,并收集期间关键性能计数器做对比。
下面我着重谈谈使用HammerDB的TPC-C来做SQL Server基准测试。
自己写负载测试代码很困难
为了模拟数据库的负载,你想要有多个应用程序用户和混合数据读写的语句。你不想总是对单一行更新相同的值,或者只是重复插入假的值。
自己动手使用Powershell、C#等语言写负载测试脚本也不是不可能,只是太消耗时间,你需要创建或者恢复数据库,并做对应的测试。
免费而简单的压测SQL Server:使用HammerDB模拟OLTP数据库负载
HammerDB是一个免费、开源的工具,允许你针对SQL Server、Oracle、MySQL和PostgreSQL等运行TPC-C和TPC-H基准测试。你可以使用HammerDB来针对一个数据库生成脚本并导入测试。HammerDB也允许你配置一个测试运行的长度,定义暖机阶段,对于每个运行的虚拟用户的数量。
首先,HammerDB有一个自动化队列,让你将多个运行在不同级别的虚拟用户整合到一个队列--你可以以此获得在什么级别下虚拟用户性能平稳的结果曲线。你也可以用它来模拟用于示范或研究目的的不同负载。
用于SQL Server上的HammerDB的优缺点
HammerDB是一个免费工具,它也极易访问和快速的启动基准测试和模拟负载的方法。它的自动程序特性也是的运行工作负载相当自动。
主要缺点是它有一个学习曲线。用户界面不是很直观,需要花费时间去习惯。再你使用这个工具一段时间之后,将会更加容易。
HammerDB也不是运行每一个基准测试。它不运行TPC-E基准,例如,SQL Server更热衷于当前更具发展的OLTP基准TPC-E。如果你用HammerDB运行一个TPC-C基准,你应该理解它不能直接与供应商提供的TPC-C基准结果相比较。但是,它是免费的、快速的、易用的。
基准测试使用案例
基准测试负载不能精确模拟你的应用程序的特点。每个负载是唯一的,在不同的系统有不同的瓶颈。对于很多使用案例,使用预定义的基准测试仍然是非常有效的,包括以下性能的比较:
多个环境(例如:旧的物理服务器,新的虚拟环境)
使用各种因素的不同及时点(例如:使用共享存储和共享主机资源的虚拟机的性能)
在配置改变前后的点
当然,对一个数据库服务器运行基准测试可以影响其他SQL Server数据库或者相同主机上其他虚拟机的性能,在生产环境你确保有完善的测试计划。
对于自学和研究来说,有预配置的负载非常棒。
开始使用基准测试
你可以从阅读HammerDB官方文档的“SQL Server OLTP Load Testing Guide”开始。
用Nmon监控Linux系统性能的方法请参见下面介绍(配图):
1、安装Nmon
2、一旦安装完成,则可以通过在终端执行 nmon 命令启动它。
Nmon命令执行之后,大家可以看到如下输出:
3、从上图中大家可以看到,Nmon 命令行工具是一个用户交互的应用程序,大家可以非常方便地使用键盘快捷键来查看相关统计信息。
q : 停止并退出Nmon
h : 查看帮助信息
c : 查看 CPU 统计信息
m : 查看内存统计信息
d : 查看磁盘统计信息
k : 查看内核统计信息
n : 查看网络统计信息
N : 查看 NFS 统计信息
j : 查看文件系统统计信息
t : 查看 Top 进程统计信息
V : 查看虚拟内存统计信息
v : 详细输出模式
4、查看 CPU 统计信息
如果你想查看 CPU 性能信息,可以直接按 c 键:
5、查看 Top 进程统计信息
如果你想查看 Top 进程统计信息,可以直接按 t 键:
6、查看网络统计信息
如果你想查看网络统计信息,可以直接按 n 键:
7、磁盘I/O图
使用 d 键可以查看磁盘统计信息:
8、查看内核统计信息
如果你想查看内核统计信息,可以直接按 k 键:
9、获取系统信息
如果要查看 Linux 的系统信息,如:系统架构、操作系统版本、Linux 版本则可以使用 r 键,这对系统管理员非常有用。
以上是基础使用方法。下面再补充一些命令和方法:
1、启动
打开nmon所在的目录:cd /usr/local/nmon
修改启动文件的访问权限:chmod 755 nmon_x86_rhel52
启动nmon:/nmon_x86_rhel52
如果要采样nmon的数据保存成文件,可以
/nmon_x86_rhel52 -fT -s 30 -c 120
其中30表示每隔30秒nmon取一次系统性能数据,120表示取120次;
这样nmon将会在运行开始算起连续取得30sX120=60分钟,可根据实际需要时间调整;当运行以上命令后该目录下会生成一个nmon文件,该文件会根据间隔时间被写入性能数据,当一段时间后再查看该文件,文件字节变大
利用nmonanalyser分析nmon文件
当测试结束的同时ftp到服务器上将nmon文件get下来,
打开nmon_analyserzip 包下的nmon analyser v338xls 文件,点击Analyse nomn data按钮,选择之前get来下的nmon文件。
(如果报告以下宏的安全级别太高错误,则在“工具 -- 宏 --安全性”里把级别调低,然后重新打开 nmon analyser v338xls 文件)
待分析结束后会生成性能分析结果文件(文件格式为xls,其中包括CPU,IO,内存等性能分析报告)。
分析结果中有很多数据和图形,简要介绍主要的性能参数图像
41 系统汇总(对应excel标签的‘SYS_SUMM’)
蓝线为cpu占有率变化情况;
粉线为磁盘IO的变化情况;
42磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)
蓝色为磁盘读的速率KB/sec
紫色为磁盘写的速率KB/sec
43内存情况汇总(对应excel标签的‘MEM’)
曲线表示内存剩余量(MB)
分析数据得到的报告文件(xls)中包含很多性能分析结果数据,根据自己的需要查看。
2、nmon运行本身就消耗系统资源的;
另外如果取到nmon文件后确定不再需要nmon继续收集信息则应kill掉nmon;
命令:
ps -A | grep nmon #得到pid
kill -9 pid
suse10 enterprise sp2:
nmon_x86_rhel3
使用对应的操作系统文件:
chmod +x nmon_x86_ubuntu810
mv nmon_x86_ubuntu810 /usr/local/bin/nmon
对于 Debian 还要做以下操作(不做也同样能运行):
apt-get install lsb-release
lsb_release -d | sed 's/Description:\t//' > /etc/debian_release
然后直接运行 nmon 即可。
采集数据并生成报表:
采集数据:
nmon -s10 -c60 -f -m /home/
参数解释:
-s10 每 10 秒采集一次数据。
-c60 采集 60 次,即为采集十分钟的数据。
-f 生成的数据文件名中包含文件创建的时间。
-m 生成的数据文件的存放目录。
这样就会生成一个 nmon 文件,并每十秒更新一次,直到十分钟后。
生成的文件名如: hostname_090824_1306nmon ,"hostname" 是这台主机的主机名。
生成报表:
下载 nmon analyser (生成性能报告的免费工具):
http://wwwibmcom/developerworks/wikis/display/Wikiptype/nmonanalyser
把之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 nmon analyser v33Cxls 。点击 Excel 文件中的 "Analyze nmon data" 按钮,选择 nmon 数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306nmonxls ,用 Excel 打开生成的文件就可以看到结果了。
如果宏不能运行,需要做以下操作:
工具 -> 宏 -> 安全性 -> 中,然后再打开文件并允许运行宏。
自动按天采集数据:
在 crontab 中增加一条记录:
0 0 root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
300288=86400 秒,正好是一天的数据。
采样文件越来越大:
jackxiang@1722539:~/nmon# /nmon -s1 -c33 -f
jackxiang@1722539:~/nmon#
jackxiang@1722539:~/nmon# du -sh
80K AD39__sles10_101207_1046nmon
160K nmon
jackxiang@1722539:~/nmon# du -sh
12K AD39__sles10_101207_1046nmon
160K nmon
jackxiang@1722539:~/nmon# du -sh
16K AD39__sles10_101207_1046nmon
160K nmon
jackxiang@1722539:~/nmon# du -sh
20K AD39__sles10_101207_1046nmon
160K nmon
jackxiang@1722539:~/nmon# du -sh
20K AD39__sles10_101207_1046nmon
160K nmon
注:以上一些机器名称或系统名称,请根据实际情况自行调整及修改。
一、 IP 网络测试工具背景
1 当前网络评估与测试现状
●网络评估与测试需求广泛
(1)业务部署前的网络质量评估
(2)端到端网络性能优化与验证
(3)广域网线路质量的日常评估验证
(4)AP路由器&无线终端WIFI测试
(5)服务器网络性能测试
(6)数据中心虚拟化平台性能测试
●缺乏专业网络性能测试工具
(1)开源测试工具
性能较差;
兼容性较差。
无详细测试评估报告
(2)自研测试工具
缺乏测试公正性;
场景易受限;
兼容性较差。
2 理想的网络测试工具
(1)快速部署,高效配置
安装简易快速,无需安装额外的系统组件;
点击鼠标次数尽量少;
修改配置便利。
(2)兼容性好
适配主流的国内外操作系统;
适配主流的CPU架构。
(3)测试结果精准且一致性好
每次测试结果公差小;
不同软件版本结果差异小。
(4)详尽的统计报告
基于整体测试的概要统计结果;
可展现历史详细测试数据。
二、 IP 网络测试工具 X-Launch
1X-Launch 网络测试工具
(1)基于软件的网络及应用服务性能测试工具
双臂测试;
单臂测试。
(2)通过测试端点产生网络流量对性能进行测量
TCP、UDP、PING;
语音、视频、HTTP、FTP、MAIL、组播。
(3)测试端点软件可以快速安装部署
2X-Launch 测试部署方式
局域网公网
(1)控制端(TestConsole)
安装于Windows 7(64位);
4核CPU,8 GB内存。
150 GB硬盘
(2)测试端点(TestPoint)
软件测试端点支持Linux、Windows、Android、VxWorks、各种国产OS
3X-Launch 测试工作原理
4 灵活部署于各类终端或系统
(1)支持的OS
Windows;Linux;Android;国产OS
(2)支持的CPU架构
x86;PCPU;ARM;MIPS;Alpha;网络接口;以太网;WiFi;3G、4G、5G
(3)网络接口
以太网;WiFi;3G、4G、5G
5 具备丰富的测试业务模型
6 测试结果图表与报告
三、 X-Launch 应用场景
1 丰富的应用场景 - 无线 CPE 测试
● 无线基准性能测试;
●无线衰减测试;
●无线方向性测试;
●无线信测试;
●无线竞争测试;
●无线并发测试;
●无线远近距离测试。
2 丰富的应用场景 - 虚拟交换网络测试
(1)在虚拟化平台的VM中部署TestPoint,测试vSwitch的交换性能
(2)常见测试指标
吞吐量;时延;丢失率;乱序
3 丰富的应用场景 - 服务器网络性能测试
(1)在服务器不同类型OS中部署TestPoint实现流量环回,通过硬件仪表打流测试服务器网络性能
(2)常见测试指标
吞吐量;延迟;丢包率
4 丰富的应用场景 - 无线网络性能测试
(1)模拟真实的业务TCP、UDP、语音、HTTP等应用流量
(2)常见测试指标
吞吐量、延迟、抖动、乱序;;TCP建立时间;HTTP 首字节、末字节时间迟;语音MOS
5 丰富的应用场景 - 异地网络专线性能测试
(1)在网络端到端两头部署TestPoint,通过一对一的方式测试网络的承载指标
(2)常见测试指标
TCPUDP吞吐量;单向延迟;抖动;乱序
四、 X-Launch 成功案例
1 成功案例 - 某大 NEM 无线 CPE 测试
(1)测试挑战
国际竞争日益激烈,科技战层出不穷,在网络性能测试领域也需实现自主可控,保障整体业务的持续发展:
测试结果公差范围内;
测试配置可替换。
(2)信而泰解决方案
Windows测试控制端,测试端点支持Windows、Linux以及Android,支持下述常见测试协议:
TCP;UDP;PING;HTTP;FTP;RTSP;Voice
(3)客户收益
测试的自主可控;测试功能更新快;对需求的匹配度更高
2 成功案例 -5G 专线测试
(1)测试挑战
某医院开通电信5G专线,需进行下列测试:
5G端到端切片性能验证,可用性、健康度、丢包率、上下行带宽、延迟和抖动等;
对5G端到端切片场景进行验证大流量上下行(视频、影像);
5G端到端压力测试。
(2)信而泰解决方案
Windows测试控制端以及测试端点部署在医院网络中心机房,Android手机运行测试端点软件在医院区域内进行测试。
使用的测试协议为:
TCP_TP;UDP_STREAM
(3)客户收益
验证了5G专线在医院可用性;
验证了5G专线端到端切片性能以及使用场景;
验证专线的使用范围是否可控。
五、竞争分析
0条评论