JProbe使用说明[z]
From:http://www.51testing.com/html/31/473.html
1.演示环境说明:
1.1HP个人台式电脑配置:
CPU |
奔4,1.8G |
Memery |
512M |
Disk |
40G |
OS |
Windows2000 |
<o:p></o:p> <o:p></o:p> Software |
①Bea WebLogic 6.1SP3 ②Oracle920<o:p></o:p> ③JProbe5.0<o:p></o:p> ④Jbuilder8.0<o:p></o:p> ⑤UltraEdit10.0<o:p></o:p> ⑥Toad7.3 |
1.2演示内容
1、 代码覆盖工具JPCoverage(重点说明)
2、 内存调试工具Memory Debugger(粗略说明)
1.2相关资料
① 数据库(SID:wangbl)中的测试数据
② 测试要素文档(doc)
③ xml文件
④ 测试结果单(xls)
1.3其他预配置
修改bea\ctais\config.xml,如下:
<connectionpool></connectionpool>
Name="ctais"
UserID="ctais2"
JTS="" //原来为jdbc.ctais<o:p></o:p>
Password="oracle"
DefConnectionNum="5"
MaxConnectionNum="20"
JdbcDriver="oracle.jdbc.driver.OracleDriver"
JdbcUrl="jdbc:oracle:thin:@tinawang:1521:wangbl" >
3.JPCoverage详细说明
JPCoverage的主界面:
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 415.5pt; HEIGHT: 258pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:/DOCUME~1/cc/LOCALS~1/Temp/msoclip1/01/clip_image001.png"></v:imagedata></v:shape>
3.1单机运行(不启动服务器)
3.1.1创建session
在下拉菜单“session”中点击“new session”,弹出窗口。
<v:shape id="_x0000_i1026" style="WIDTH: 415.5pt; HEIGHT: 328.5pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:/DOCUME~1/cc/LOCALS~1/Temp/msoclip1/01/clip_image003.png"></v:imagedata></v:shape>
<v:shape style="WIDTH: 415.5pt; HEIGHT: 328.5pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:/DOCUME~1/cc/LOCALS~1/Temp/msoclip1/01/clip_image003.png"> </v:imagedata></v:shape>
1、 Program Setting(程序设置)
① 选择“Standalone Application(单机)”
② 在“Main Class(主类)”中填写测试机的完整类名,也可以按旁边的“…”键进行选择。
③ 点击“More”,弹出一个对话框:
Main Class |
测试机的完整类名 Tip:ctais.test. |
Working Directory |
指定测试机后,会缺省自动带出,也可以修改。 |
Arguments |
为测试机的main函数传递变量 |
CLASSPATH |
程序运行需要引用的类的路径 Tip:可以从Jbuilder中直接粘贴过来。 |
Java Virtual Machime |
Java虚拟机 Tip:如果你安装过jdk,这里会显示c:\winnt\system32\java.exe为缺省的java虚拟机,如果不合用,请另外指定。这里选用c:\bea1\jdk131\bin\java.exe |
2、 Data Collection Setting(数据收集设置)
指定要“覆盖”和要“排除”的包、类或方法,步骤如下:
① 选择一行,点击旁边出现的“…”按钮,在弹出的对话框中选择一个jar包,右边出现一个类树,选择一个包或类或方法,点“确定”。
② 主窗口中出现了刚才选择的包、类或方法,在旁边选择“exclude(排除)”或“include(覆盖)”。
③ 可以这样指定多个要“覆盖”或要“排除”的包、类或方法。
④ 其他设置,多选:
Take Snapshot at Exit |
退出时取一个快照 |
Ignore abstract method |
忽略抽象方法 |
Start Recording at Program Start |
从程序开始时记录 |
Report Only Method-level Coverage |
只覆盖方法,缺省为行 |
Tip:我们要求覆盖到行。
3、Runtime Settings(运行设置)
① 有三种“View Runtime Data”方法,任选其一:
Not View |
在内存小的时候可以选择这种方法 |
Local |
在本地console上显示 |
Remotely |
在远程console上显示,运行时,服务器会一直等待指定的远程 console连接,直到连接成功后才继续运行。 |
Tip:我们选用“Not View”。<o:p></o:p>
② 指定“快照”保存的位置
4、保存
到这里我们已经完成了Session的设置,点击顶端的“Save”按钮,保存成(jpl)文件。
3.1.2运行
有两种运行方法,任选其一:
1、 在Session窗口点“Run”,或在主界面工作条上点“|>”。
2、 启动command(cmd),在Dos窗口下输入:
jplauncher -Djava.compiler=NONE -jp_input=e:\jprobe\try2.jpl
Tip:使用第二种方式可以不用启动jpcoverage的主界面,这样可以节省内存,程序运行完后,快照会保存在jpl文件中指定的目录下。
3.1.3分析单个快照
在jpcoverage主窗口1中选择一个(jpc)快照文件,对其进行分析,主要步骤如下。
1、 右键单击一个“快照”,在弹出的菜单中选择“”,打开一个独立的窗口2,如下图:
<v:shape id="_x0000_i1027" style="WIDTH: 415.5pt; HEIGHT: 311.25pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:/DOCUME~1/cc/LOCALS~1/Temp/msoclip1/01/clip_image005.png"></v:imagedata></v:shape>
2、 在新的窗口2中会显示出所有在前边的配置中选择“覆盖”的包、类或方法的情况。这是一个表(table)结构,分纵向和横向说明。
横向 |
缺省初始显示“包”的覆盖情况,这些包都是树状结构,可以打开以显示其下的类;类也都是树状结构,可以打开以显示其下的方法。 |
纵向 |
从左到右依次显示“覆盖的对象”、“被调用的次数”、“未覆盖的方法数”、“全部方法数”、“未覆盖到的代码行数”、“总代码行数”。 |
Tip:窗口2提供菜单,可以对上面的显示格式进行配置,在这里就不详述了,大家可以自己体会。
3、 我们选择一个包,点开它,显示该包中的所有类;选择一个类,点开树,显示该类中所有非抽象方法;双击一个方法,会弹出一个对话框,让你指定java源文件的位置。指定后,会关闭该对话框,弹出另外一个独立的窗口3(如下图)显示java源文件的内容,光标停在刚才选择的方法的开始处。用红色标明的行,为没有覆盖到的行。在窗口3的右上端有一个下拉列表,可以在这里选择要看的方法。
<v:shape id="_x0000_i1028" style="WIDTH: 415.5pt; HEIGHT: 224.25pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:/DOCUME~1/cc/LOCALS~1/Temp/msoclip1/01/clip_image007.png"></v:imagedata></v:shape>
4、 看未覆盖的行的情况,区分以下三种情况:
其他分支 |
在本快照中无法确定这些分支的覆盖情况,需要组织新的测试。 如上图中的第30行。 |
本分支内容错行 |
这不是真正的未覆盖到,可以忽略不计。 如上图中的第37、38行 |
本分支内冗余行 |
这才是真正的未覆盖行,继续相关处理。 |
3.1.4合并多个快照
一个业务可能有多个测试用例,每个测试用例覆盖一些分支,所有测试用例的集合要保证覆盖到所有的分支。每一个测试用例我们取一个快照,这些快照单个来看实际意义不大,只有合并在一起来分析意义才最大。
合并步骤如下:
① 在主窗口1的下拉菜单“SnapShot”中选择“Merge”,会弹出一个对话框。
<v:shape id="_x0000_i1029" style="WIDTH: 415.5pt; HEIGHT: 171.75pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:/DOCUME~1/cc/LOCALS~1/Temp/msoclip1/01/clip_image009.png"></v:imagedata></v:shape>在对话框的左边会出现所有可用的快照(jpc),选择要进行合并的快照到右边。