北大青鸟java培训:软件测试工具有哪些?

Python019

北大青鸟java培训:软件测试工具有哪些?,第1张

目前由于软件测试工作在软件的生产过程中越来越重要,很多软件测试工具应运而生,这里介绍一下目前最流行的一些软件测试工具,一个十个,介绍如下:一、企业级自动化测试工具WinRunner这款软件是MercuryInteractive公司的。

WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。

通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

二、工业标准级负载测试工具Loadrunner这款软件是惠普公司开发的。

LoadRunner是一种预测系统行为和性能的负载测试工具。

通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。

通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

三、功能测试工具RationalRobotIBMRationalRobot是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。

它集成在测试人员的桌面IBMRationalTestManager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。

这种测试和管理的双重功能是自动化测试的理想开始。

四、功能测试工具SilkTestBorlandSilkTest2006属于软件功能测试工具,是Borland公司所提出软件质量管理解决方案的套件之一。

这个工具采用精灵设定与自动化执行测试,无论是程序设计新手或资深的专家都能快速建立功能测试,并分析功能错误。

五、功能和性能测试的工具JMeterJMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。

六、单元测试工具xUnit系列目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit(Delphi),NUnit(.net),PhpUnit(Php)等等。

该测试框架的第一个和最杰出的应用就是由ErichGamma(《设计模式》的作者)和KentBeck(XP(ExtremeProgramming)的创始人)提供的开放源代码的JUnit.七、全球测试管理系统testdirectorTestDirector是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。

通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。

八、自动化白盒测试工具JtestJtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。

parasoft同时出品的还有C++test,是一款C/C++白盒测试工具。

九、性能测试工具WASMicrosoftWebApplicationStressTool是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。

透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。

十、性能测试和分析工具WEBLODEwebload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试webload通过模拟真实用户的操作,生成压力负载来测试web的性能。

命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。

命令:jmap pid

描述:查看进程的内存映像信息,类似 Solaris pmap 命令。

使用不带选项参数的jmap打印共享对象映射,将会打印目标虚拟机中加载的每个共享对象的起始地址、映射大小以及共享对象文件的路径全称。这与Solaris的pmap工具比较相似。

命令:jmap -heap pid

描述:显示Java堆详细信息

打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息

命令:jmap -histo:live pid

描述:显示堆中对象的统计信息

其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象。

命令:jmap -clstats pid

描述:打印类加载器信息

-clstats是-permstat的替代方案,在JDK8之前,-permstat用来打印类加载器的数据

打印Java堆内存的永久保存区域的类加载器的智能统计信息。对于每个类加载器而言,它的名称、活跃度、地址、父类加载器、它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。

命令:jmap -finalizerinfo pid

描述:打印等待终结的对象信息

Number of objects pending for finalization: 0 说明当前F-QUEUE队列中并没有等待Fializer线程执行final

命令:jmap -dump:format=b,file=heapdump.phrof pid

描述:生成堆转储快照dump文件。

以hprof二进制格式转储Java堆到指定filename的文件中。live子选项是可选的。如果指定了live子选项,堆中只有活动的对象会被转储。想要浏览heap dump,你可以使用jhat(Java堆分析工具)读取生成的文件。

JProfiler 是一个商业授权的 Java剖析工具,用于分析Java EE和Java SE应用程序.

JDK 本身定义了目标明确并功能完善的JNI( Java Native Interface ) 与虚拟机直接进行交互,这些 API 能很方便的进行扩展,从而满足开发者各式的需求.

JVMTI( JVM Tool Interface) ,是JAVA虚拟机提供的本地接口,它是实现调度器以及其它Java运行测试与分析 工具 的基础.

并不一定在所有的JDK提供商都有实现,但在主流的Oracle JDK、Open JDK上都有其实现.

1.用户在JProfiler GUI中下达监控命令( 对应用户的一个点击 ).

2.JProfiler GUI通过自身Socket的8849端口向位于JVM的JProfiler Agent发送监控指令.

3.JProfiler Agent收到指令后向JVMTI注册事件或执行相关的命令.

4.JVMTI根据事件和命令的类型返回相对应的数据( 线程状态、对象实例、CPU负荷、GC状态信息等)

5.JProfiler Agent从JVMTI中得到相应数据后将对其进行计算,最终通过Socket传输给JProfiler GUI中进行展示.

https://www.ej-technologies.com/download/jprofiler/files

激活码: [email protected] #23874-hrwpdp1sh1wrn#0620

***** Linux操作系统无须激活

Select from all local JVMs模式:将扫描本地所有正在运行的JVM实例

Attach to profiled JVM模式:选择本地或远程正在运行的JVM实例,远程被监控的机器一定要预先安装JProfiler.

***** 需指定远程 服务器的JProfiler的通讯端口

步骤一:Session-->Integration Wizards-->New Server Integration

步骤二:选择应用服务器的类型以及版本号

步骤三:选择与本地或远程服务器的服务进行集成

***** 本文将使用远程服务器模式.

***** 若 选择与远程服务器的服务进行集成则需要选择远程服务器的操作系统类型.

步骤四:选择服务器使用的JVM供应商以及版本号

步骤五:选择JProfiler的启动模式

JVM将等待JProfiler Agent接收到JProfiler GUI发送的配置信息后再进行启动( 即Lauch Type连接模式 ,启动一个新的JVM实例)

立即启动JVM,稍后再与JProfiler GUI进行连接并向JProfiler Agent发送配置信息( 数据的采集方式、过滤器、触发器等信息 )

***** 若使用此模式则需要让JVM在启动时自动加载JProfiler Agent,因此需要在startup.bat/startup.sh文件中添加命令

startup.bat:set CATALINA_OPTS=-agentpath:{JProfiler安装目录}\bin\windows-x64\jprofilerti.dll=port=8849,nowait %CATALINA_OPTS%

startup.sh:CATALINA_OPTS=-agentpath:/{JProfiler安装目录}/bin/linux-x64/libjprofilerti.so=port=8849,nowait $CATALINA_OPTS

export CATALINA_OPTS

离线分析,JProfiler GUI无法与JProfiler Agent进行连接,因此需要将数据的采集方式、过滤器、触发器等信息打包成config.xml配置文件,在启动该JVM实例时加载JProfiler Agent以及配置文件,使用此模式需要配合triggers触发器使用,当发生指定的事件后触发指定的操作.

***** 若使用此模式则需要让JVM在启动时自动加载JProfiler Agent和context.xml配置文件,因此需要在startup.bat/startup.sh文件中添加命令

startup.bat:set CATALINA_OPTS=-agentpath:{JProfiler安装目录}\bin\windows-x64\jprofilerti.dll=port=8849,nowait,config=C:\Users{用户名}.jprofiler9\config.xml %CATALINA_OPTS%

startup.sh:CATALINA_OPTS=-agentpath:/{JProfiler安装目录}/bin/linux-x64/libjprofilerti.so=port=8849,config={预定义目录}\config.xml $CATALINA_OPTS

export CATALINA_OPTS

步骤六:填写远程服务器的IP地址

步骤七:输入远程服务器中JProfiler的安装目录( 供JProfiler生成脚本时使用 )

步骤八:选择应用服务器的启动脚本,JProfiler会根据选择的启动脚本文件生成一份适用于JProfiler特定启动模式的脚本文件.

***** 最终在本地生成startup_jprofiler.sh文件,需将此文件复制到远程服务器中应用服务器的bin目录并对文件赋予执行的权限,在服务器中直接通过JProfiler提供的startup_jprofiler.sh文件来启动服务.

***** 若使用离线启动模式则还需要将JProfiler生成的context.xml配置文件复制到远程服务器中,然后修改startup_jprofiler.sh文件中JVM加载context.xml文件的路径.

步骤九:设置JProfiler GUI通讯的端口

步骤十:检查配置项

步骤十一:选择数据的采集方式

JProfiler将对需要分析的class字节码文件中写入自己的bytecode, 对于正在运行的JVM实例选择此模式将会重新加载字节码文件到JVM的运行时数据区域结构中 .

***** 这是JProfiler全功能模式,在此设置中,调用堆栈信息是准确的,但是CPU开销可能很高( 取决于Filter的控制 ),若要分析的类较多,则对应用的性能产生影响,因此使用此模式一般配合Filter使用,只对特定的类或包进行分析.

此模式对CPU的开销非常低,但不支持某些功能( 方法的执行次数、执行时间等 ), 这种模式在连接正在运行的JVM实例时更为安全.

步骤十二:选择配置Filter和Trigger

配置Filter( 适用于Instrumentation数据采集模式 )

配置Trigger( 多用在离线的启动模式 )

1.选择触发器的类型

2.选择触发的动作

步骤十三:完成配置,连接JProfiler Agent,对程序进行监控.

***** 每个Session表示一次会话,Session可以通过人工创建 ( New Session ) 或者与服务应用进行集成来产生( Integration Wizards ).

***** 支持将当前JVM实例的运行状态保存为快照( Save Snapshot )并提供快照与快照之间的对比功能.

Telemetries视图:包含JMM内存的使用情况( 全局堆与非堆、局部伊甸园区、幸存者区、老年代)、GC线程的活动情况( 发生GC的时间,是属于Minor GC还是Full GC )、当前JVM实例的线程概况、CPU的负载等信息.

Live Memory视图:展示当前堆中实例的个数、方法的调用链等信息.

方法调用链信息:

Heap Walker视图:用于堆的快照分析,可以选择在Live Memory中记录的对象或者当前运行状态时堆的对象也可以直接在对象视图右键对象Show Selection In Heap Walker.

CPU Views视图:可以按运行顺序逐级查看当前程序运行时的耗时、在一定时间内统计方法的执行效率.

程序运行耗时:

一定时间内统计方法的执行效率( 单位:微秒 ):

Total Time:执行总时长.

Inv:执行的次数.

Avg Time:方法平均执行时长.

Median Time:第中间次数的执行时长.

Min Time:最短执行时长.

Max Time:最大执行时长.