变量配置界面,如图 7-4 所示。
第三步:在图 7-4 的“系统变量”中,选中 CLASSPATH,点击编辑,如果没有 CLA SSPATH,则点击“新建”,同样会进入图 7-5 所示的界面。
通常安装了 LoadRunner 等软件的系统会创建 CLASSPATH 变量。
这里需要注意的 是,一定要在 CLASSPATH 变量值的最前面输入当前路径“.”和 JDK 的类库路径,例如 “.C:j2sdk1.4.1lib C:j2sdk1.4.1jrelib”,否则将可能导致 Java 虚拟用户的运行错 误。
例如:在图 7-4 中,CLASSPAT 变量值是“.C:j2sdk1.4.1lib C:j2sdk1.4.1jrel ibD: Tomcat-5.0commonlib D:Program FilesMercury InteractiveMercury Lo adRunner classesD: Program Files Mercury InteractiveMercury LoadRunnerl ib”。
图 7-3 系统属性界面图 7-4 环境变量设置图 7-5 系统类路径设置 第四步:在图 7-4 的“系统变量”中,选中 Path,点击编辑,会进入图 7-6 所示的界面。
在变量值的最前面填上 JDK 开发工具包的 bin 目录路径。
图 7-6 系统 Path 设置 这里仍然要在 Path 变量值的最前面输入当前路径“ ”和 JDK 的 bin 目录路径,如“.C:j2sdk1.4.1binC:j2sdk1.4.1jrebin”,否则 Java 虚拟用户可能产生运行错误。
例如在图 7-6 中,Path 变量值是: “.C:j2sdk1.4.1binC:j2sdk1.4.1jrebinD:Program FilesMercury InteractiveMercury LoadRunnerbinSystemRootsystem32SystemRootSystemRootSystem32Wbem C:Program FilesIntelWirelessBin”。
开发环境的配置会因操作系统和应用程序的安装路径不同而有所差异,根据实际情况进行相应的修改即可。
7.2 Java 脚本开发基础 要想掌握 Java 虚拟用户的使用,测试脚本开发人员至少需要两方面的技能:一是具有 Java 语言方面的技能,并熟练使用至少一种 Java 集成开发工具,例如 Eclipse;二是掌握 LoadRunner 的 Java API,Java API 是访问 Vuser 函数的基础,通过 LoadRunner 的 Java API 可以在脚本中很容易地创建事务与并发点、获取用户信息等功能。
不难看出,Java 虚拟用户要求测试脚本开发人员具有良好的开发基础,否则 Java Vuser 很难发挥应有的作用。
限于篇幅,本节在 Java 测试开发基础部分,仅对 Java 语言方面的知识做概要介绍,读者可以通过 Java 方面的书籍进行学习;在 LoadRunner 的 Java API部分,将会介绍一些相对重要的方法。
7.2.1 Java 虚拟用户开发基础Java 语言基础 Java 语言博大精深,即使资深的 Java 开发工程师也未必敢自称精通,测试人员就更不容易成为“高手”了。
但是如果仅仅为了满足测试开发,还是很容易快速入门的。
表 7-1 列出了一些进行 Java 虚拟用户开发的知识点,读者可以自行学习。
表 7-1 Java 语言基础知识 知识点 详细内容 Java 历史及发展、语言特点 Java 背景知识 Java 开发环境、程序工作原理 续表知识点 详细内容 Java 数据类型 Java 运算符与表达式、控制语句Java 语言基础 Java 类定义规范 Java 数组 Java 的包 面向对象的概念 Java 中的类、方法和变量Java 与面向对象 Java 名字空间及访问规则技术 Java 中的抽象类、接口和程序包 对象的构造方法 Java 数组Java 中的数据结 向量构 字符串 I/O 流概述输入/输出处理 字节流 字符流 例外的概念 例外的分类例外处理 捕获例外(Exception) 声明例外 抛出例外 多线程基本概念 创建线程的方式 线程的生命周期及控制多线程 线程的调度 多线程的互斥与同步 线程组 Java 与 InternetJava 基本网络编 使用 InetAddress程 使用 URL Socket 通信、数据报通信 JDBC 基础、JDBC 驱动程序JDBC JDBC 编程 续表 知识点 详细内容 Servlet 基本概念 Servlet API Java Servlet Servlet 执行过程与生命周期 容器、部署与运行 Java Server Page
JSP 基础、
JSP 语法 (
JSP) 测试人员在掌握了上面这些技能后,基本可以进行 Java 虚拟用户的开发了。
同时,本着学无止境的原则,测试人员仍要以积极的态度来学习 Java 开发知识。
Java 集成开发工具 Eclipse Eclipse 是一个与 NetBeans、Sun ONE Studio 和 Borland Jbuilder 类似的,一种基于 Java 的整合型可扩展开发平台,也是目前最著名的开源项目之一。
IBM 一直在大力支持该项目的发展,并在 2001 年 11 月宣布投入 4 千万美元到该项目的研发,这也是 Eclipse 项目发展较快的原因之一。
Eclipse 专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由 Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目组成,具体包括四个组成部分:Eclipse Platform、JDT、CDT 和 PDE。
JDT 支持 Java 开发、CDT 支持 C 开发、PDE 用来支持插件开发,Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。
Eclipse SDK(软件开发包)是 Eclipse Platform、JDT 和 PDE 所生产的组件合并,它们可以从 eclipse.org 网站(http://www.eclipse.org/downloads)上下载。
这些组件提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到 Eclipse Platform 中的工具。
Eclipse SDK 由 Eclipse 项目生产的工具和来自其他开放源代码的第三方软件组合而成。
在接下来的内容里,将介绍用 Eclipse 创建与编译 Java 类文件的过程以及如何在 Java虚拟用户中调用编译好的类文件。
关于 Eclipse 更深入的内容请读者参考其相关书籍。
l 创建 Java 项目 启动 Eclipse 后,依次选择菜单的“文件”→“新建”→“项目”,进入图 7-7 所示的界面。
图 7-7 新建项目 在图 7-7 中选择 Java 项目,单击“下一步”,进入图 7-8 所示的界面。
图 7-8 配置项目 在图 7-8 的“项目名称”输入“LoadRunnerDev”,“位置”下选择“在外部位置创建项目”,目录下选择“D:LoadRunner”。
然后点击“配置缺省值(O)...”,进入图 7-9 所示的界面。
图 7-9 配置缺省值 在图 7-9 的“源和输出文件夹”处选择“文件夹(F)”,“源文件夹名(S):”默认为“src”,无须改变,在“输出文件夹名(O):”处输入“classes”,完成后返回图 7-8 所示界面。
在图7-8 中点击“下一步”,进入图 7-10 所示的界面。
图 7-10 配置结果界面 在图 7-10 中,单击“完成”,新建 Java 项目工作完成。
在图 7-11 中可以看到新建的项目“LoadRunnerDev”。
图 7-11 包资源管理器l 建立 Java 文件 如图 7-12 所示, LoadRunnerDer 中选中“src”, 在 点击鼠标右键,进入“新建”,点击“类”,进入图 7-13 所示的新建 Java 类文件设置界面。
图 7-12 新建 Java 类文件 在图 7-13 中,输入包名称“com.lr.test”、类名称“HelloWord”,其他各项设置默认即可。
点击“完成”,进入源代码编辑界面,如图 7-14 所示。
图 7-13 文件基本配置信息 图 7-14 文件编辑界面 在源代码编辑界面,输入测试语句“System.out.printlnquotHelloWordquot”如图 7-14 所示。
代码编辑完成后,按照图 7-15 编译与运行程序。
如果编译执行成功,可以在 Eclipse 的控制台看到输出结果,如图 7-16 所示。
图 7-15 执行 Java 程序 图 7-16 查看编译结果l 编译与运行 Java 程序 编译后的 class 文件可以在“D:LoadRunnerclassescomlrtest”下找到,如图 7-16 所示。
需要注意的是,类文件的存放路径是根据建立项目的设置来决定的。
l 开发虚拟用户脚本 进入到“D:LoadRunnerclasses”目录下,把整个“com”文件夹复制到“C:j2sdk1.4.1lib”,这样 LoadRunner 创建的所有 Java Vuer 脚本均可以直接调用;如果放到虚拟用户脚本的当前路径下,则只有当前的虚拟用户脚本可以调用。
多台主机进行并发测试时,应该把编译好的类文件放到对应的虚拟用户脚本目录下。
根据图 7-1 和图 7-2 所示新建一个 Java 虚拟用户脚本,并对照图 7-17,输入同样的测试脚本,尤其要在代码开始处输入包的导入语句“import com.lr.test.”。
图 7-17 Java 虚拟用户示例脚本l 运行虚拟用户脚本 点击 Virtual User Generator 工具栏上的 图标开始执行脚本。
正确的执行结果如图7-18 所示,可以看到执行日志中有“System.out: HelloWord”。
如果运行不正确,读者可以参照前面的过程进行分析,同时检查 JDK 的路径设置。
图 7-18 正确执行的虚拟用户脚本 与 C Vuser 脚本相比,Java Vuser 脚本是先编译再执行, C Vuser 脚本是解释性的。
而VuGen 在 JDK 安装路径内查找 javac 编译器,并在脚本内编译 Java 代码。
该阶段由 VuGen窗口底部的“正在编译... ”状态消息来指示。
如果在编译期间出错,则这些错误将在执行日志中列出。
测试脚本保存后,接下来可以放到 Controller 中来运行,读者可以自己进行实验。
需要注意的是,如果进行多台计算机联机测试,则所有运行测试脚本的客户机必须安装 JDK 环境并正确设置路径,否则将会出现如图 7-19 所示的提示。
图 7-19 JDK 环境不正确的提示 要想正确使用 Java 虚拟用户,首先要保证测试环境配置正确。
执行测试时,可以先用本节的示例程序来检查环境是否正确,然后再进行复杂功能的开发。
7.2.2 LoadRunner 的 Java API LoadRunner 为访问 Vuser 函数提供了特定的 Java API,这些函数都是 lrapi.lr 类的静态方法。
借助 Java API 可以大大增强 Java 虚拟用户脚本的可用性。
本节将介绍常用的 JavaAPI 的用法,更多的函数及其用法读者可以参考 LoadRunner 联机手册。
在 Java 虚拟用户中,Java API 函数的用法与 Vuser 函数中的用法基本一致,只是写法稍稍不同,更符合 Java 语言的特点。
1. 事务函数(Transaction Functions) (1)int lr.start_transaction String transaction_name :标记事务开始; (2)int lr.end_transaction String transaction_name int status :标记事务结束。
2. 信息函数(Informational Functions) (1)String lr.get_group_name :返回 Vuser 组的名称; (2)String lr.get_host_name :返回执行 Vuser 脚本的负载生成器的名称; (3)String lr.get_master_host_name :返回运行 Controller 计算机的名称; (4)int lr.get_scenario_id : 返回当前方案的 ID; (5)int lr.get_vuser_id :返回当前 Vuser 的 ID。
3. 运行时函数(Run-Time Functions) (1)void lr.peek_events :指示可以暂停 Vuser 脚本的位置; (2)int lr.rendezvous String rendezvous_name :在 Vuser 脚本中设置集合点; (3)void lr.think_time double time :暂停脚本执行,模拟实际用户操作之间的思考时间。
4. 字符串函数(String Functions) (1)String lr.eval_string String instring :用当前值替换参数; (2)int lr.eval_int String name :用整型值替换参数; (3)int lr.next_row String dat_file :指示使用指定参数的下一行数据。
5. 消息函数(Message Functions) (1)int lr.debug_message int message_level String message:向输出窗口发送测试过程的调试消息; (2)int lr.error_message String message :向 Vuser 日志文件和输出窗口发送错误消息以及位置的详细信息; (3)int lr.log_message Str.
上一篇:
myEclipse快捷键大全+常见错误解决方法
下一篇:
让我掉下眼泪的