loadrunner中运行java代码

上一篇 / 下一篇  2008-10-15 10:17:23 / 个人分类:LR

概要步骤:

1.在eclipse建立java工程,编译要使用的java方法;

2.打开loadrunner,新建立脚本选择java脚本模式;

3.找到脚本存放的文件夹,把步骤1中整个的编译后的目录(class文件所在的整个目录)放如脚本文件夹中,

  loadrunner就可以使用该java方法;

 Java脚本开发基础

要想掌握Java虚拟用户的使用,测试脚本开发人员至少需要两方面的技能:一是具有Java语言方面的技能,并熟练使用至少一种Java集成开发工具,例如Eclipse;二是掌握LoadRunner的Java API,Java API是访问Vuser函数的基础,通过LoadRunner的Java API可以在脚本中很容易地创建事务与并发点、获取用户信息等功能。

不难看出,Java虚拟用户要求测试脚本开发人员具有良好的开发基础,否则Java Vuser很难发挥应有的作用。限于篇幅,本节在Java测试开发基础部分,仅对Java语言方面的知识做概要介绍,读者可以通过Java方面的书籍进行学习;在LoadRunner的Java API部分,将会介绍一些相对重要的方法。

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基本网络编程

²  Java与Internet

²  使用InetAddress

²  使用URL

²  Socket通信、数据报通信

JDBC

²  JDBC基础、JDBC驱动程序

²  JDBC编程

续表

知识点

详细内容

Java Servlet

²  Servlet基本概念

²  Servlet API

²  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.println("HelloWord!");”如图7-14所示。代码编辑完成后,按照图7-15编译与运行程序。如果编译执行成功,可以在Eclipse的控制台看到输出结果,如图7-16所示。

图7-15  执行Java程序

图7-16  查看编译结果

l  编译与运行Java程序

编译后的class文件可以在“D:\LoadRunner\classes\com\lr\test”下找到,如图7-16所示。需要注意的是,类文件的存放路径是根据建立项目的设置来决定的。

l  开发虚拟用户脚本

进入到“D:\LoadRunner\classes”目录下,把整个“com”文件夹复制到“C:\j2sdk1.4.1\lib”,这样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虚拟用户,首先要保证测试环境配置正确。执行测试时,可以先用本节的示例程序来检查环境是否正确,然后再进行复杂功能的开发。

LoadRunner的Java API

LoadRunner为访问Vuser函数提供了特定的 Java API,这些函数都是lrapi.lr类的静态方法。借助Java API可以大大增强Java虚拟用户脚本的可用性。本节将介绍常用的Java API的用法,更多的函数及其用法读者可以参考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 ( String message ):向 Vuser 日志文件发送消息;

(4)int lr.message ( String message ):向输出窗口发送消息;

(5)int lr.output_message ( String message ):向日志文件和输出窗口发送消息和位置信息;

(6)int lr.vuser_status_message ( String message ):向Controller窗口中的“Vuser状态”区域发送消息。


TAG: LR

 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 20349
  • 日志数: 32
  • 建立时间: 2007-12-13
  • 更新时间: 2008-12-04

RSS订阅

Open Toolbar