loadrunnerjava编写脚本的api

一、java虚拟用户协议
java虚拟用户脚本主要有Java Vuser、Corba-Java、RMI-Java、EJB等类型。这些类型的虚拟用户脚本均可以用java语言来手工编写。
1、 Java Vuser:子定义的Java虚拟用户脚本,脚本中可以使用标准的Java语言。这种虚拟用户不可以录制,只能采用纯手工编写,其适用范围和C Vuser一样。
2、 Corba-Java:用来测试用java编写的使用corba应用程序or小程序的性能,用户可以先运行VuGen录制脚本,然后使用标准的Java库函数以及LoadRunner特有的Java方法来增强该脚本。
3、 RMI-Java:用于测试RMI(远程方法调用)java应用程序or小程序。选择RMI-Java用户进行录制,VuGen可以创建对应的java脚本。完成录制后,可以使用JDK或自定义类,通过标准的Java代码来增强or修改脚本,还可以通过特定于LoadRunner的Java方法增强该脚本。
4、 EJB:采用EJB协议,VuGen会自动创建脚本以测试EJB功能,无需录制或编程,这和标准的Java Vuser明显不同。在使用EJB协议类型的虚拟用户生成脚本前,需要指定JNDI属性和关于应用程序服务器的其他信息。LoadRunner的EJB检测器首先扫描应用程序服务器并确定哪些EJB可用;接着选择要测试的EJB,LoadRunner将生成要测试每个EJB方法的脚本,并为每个方法创建事务,便于度量其性能并找出问题。需要注意的是,创建EJB虚拟用户测试脚本必须在应用程序服务器主机上安装LoadRunner EJB检测器,而且检测器必须处于活动状态。EJB检测器是一个独立的**程序,必须将其安装在要扫描查找EJB的每一台计算机上。安装EJB检测器前,计算机上还需要安装有效的JDK环境。

二、Java Vuser适用范围
1、 用Java Vuser实现无法录制的测试需求。比如:含有控件的web应用、一些和媒体播放、文件下载等相关的应用。
2、 用Java Vuser测试基于Java语言的应用系统性能。比如:核心算法或业务的执行效率、java应用中不能录制的业务模块。
三、Java VUser的使用方法
1、 创建工程Test
2、 写个经典的HelloWorld类。
3、 Run as---》Java Application运行下
4、 将工程下的整个com包拷贝到loadrunner安装目录下的classes目录下。例如我的是:D:\Program Files\HP\LoadRunner\classes
5、 新建Virtual User:选Java Vuser
6、 生成脚本
Vuser_init和vuser_end不用管
在Actions里写测试脚本

7、 运行脚本结果,看到如图红色部分,说明脚本运行成功了。
四、loadRunner的常用Java API
loadrunner为访问Vuser函数提供了特定的Java API,这些函数都是lrapi.lr类的静态方法。借助Java API可以大大增强Java虚拟用户脚本的可用性。
1、 事物函数(Transaction Function)
Int  lr.start_transaction(String transaction_name)  标记事物开始
Int  lr.end_transaction(String transaction_name,int status) 标记事物结束
2、 信息函数
String  lr.get_group_name();返回Vuser组的名称
String  lr.get_host_name();返回执行Vuser脚本的负载生成器的名称
String  lr.get_master_host_name();返回运行controller计算机的名称
Int     lr.get_scenario_id();返回当前方案的ID
Int     lr.get_vuser_id();返回当前vuser的ID
3、 运行时函数
Void lr.peek_events();提示可以暂停vuser脚本的位置
Int   lr.rendezvous(string rendezvous_name);在vuser脚本中设置集合点
Void  lr.think_time(double time):暂停脚本执行,模拟实际用户操作直接的思考时间。
4、 字符串函数
String  lr.eval_string(string instring)用当前值替换参数
Int    lr.eval_int(String name)用整型值替换参数
Int    lr.next_row(string dat_file)指示使用指定参数的下一行数据
5、 消息函数
Int  lr.debug_message(int  message_level, string message):向输出窗口发送测试过程的调试消息。
Int  lr.error_message(String message)向Vuser日志文件和输出窗口发送错误消息以及位置的详细信息。
Int  lr.log_message(string message) 向Vuser日志文件发送消息
Int  lr.message(string message) 向输出窗口发送消息
Int  lr.output_message(string message):向日志文件和输出窗口发送消息和位置信息
Int  lr.vuser_status_message(string message):向controller窗口中的“Vuser状态”区域发送消息

当需要引jar包时
http://blog.csdn.net/aovenus/article/details/9963461
http://www.51testing.com/html/88/n-829188-2.html

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
获取【下载地址】    QQ: 313596790   【免费支持更新】 支持三大数据库 mysql  oracle  sqlsever    更专业、更强悍、适合不同用户群体 【 新录针对本系统的 视频教程 ,手把手教开发一个模块,快速掌握本系统 】 A 代码生成器(开发利器);       增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成    就不用写搬砖的代码了,生成的放到项目里,可以直接运行 B 阿里巴巴数据库连
在上一篇文章中对于http请求的使用过程中发现,由于是系统间的交互因而请求的报文不仅仅是java对象,更多的可能是xml格式与json格式的报文,为方便后期使用,封装了一个转换工具类。 首先java对象与xml的相互转换需要使用到jaxb来实现,pom文件中加载jaxb-api。 jaxb进行转换的核心类为:Unmarshaller(xml转换为java对象)与Marshaller,首先初始化jaxbContext JAXBContext context = JAXBContext.newInstance

JVM中的堆和栈 - 2016-02-16 14:02:48

Java把内存划分成两种:一种是栈内存,一种是堆内存。     每一个Java应用都唯一对应一个JVM实例,每一个实例唯一对应一个堆。应用程序在运行中所创建的所有类实例或数组都放在这个堆中,并由应用所有的线程共享.跟C/C++不同,Java中分配堆内存是自动初始化的。Java中所有对象的存储空间都是在堆中分配的,但是这个对象的引用却是在堆栈中分配,也就是说在建立一个对象时从两个地方都分配内存,在堆中分配的内存实际建立这个对象,而在堆栈中分配的内存只是一个指向这个堆对象的指针(引用)而已。 在函数中定义的一

一句话总结java23种设计模式 - 2016-02-16 14:02:41

设计模式的六大原则 1、开闭原则(Open Close Principle):对扩展开放对修改关闭 2、里氏代换原则(Liskov Substitution Principle):父类出现的地方,子类也可出现 3、依赖倒转原则(Dependence Inversion Principle):依赖抽象而不依赖具体 4、接口隔离原则(Interface Segregation Principle):多个隔离的接口,比使用单个接口要好 5、迪米特法则(最少知道原则)(Demeter Principle):最少知

设计模式-01-模糊理解 - 2016-02-16 14:02:38

  一、概念:      设计模式,别人都说它们就像是一个个的模型胚子,不管你们是多么的杂乱无章,只要经过它们的改造,表现出来的就都会是工工整整,标标准准的。而我觉得更确切的比喻应该是像一个制砖块儿的模具,虽然我们不知道为什么砖块儿,不仅要结实,也要外表光滑才能称为一块儿好砖头。但是我却知道只有砖块儿 的模具首先光滑了,才行。所以我们必须拥有制砖模具,而且种类也要多,虽然网上说 的是23种,但我认为不管多少,实用,有用,才是硬道理。         作为一个个解决问题的方法,有时候不经意我们就用上了,当然

J2EE常用JAR包介绍 - 2016-02-16 14:02:18

activation.jar:与javaMail有关的jar包,使用javaMail时应与mail.jar一起加入到lib中去,具体负责mail的数据源和类型等 ajaxtags-1.2-beta3.jar:ajax提供的标签库,使用户能像使用jsp普通标签一样使用ajax ant.jar:的是ant编译用的包,在工程中不用添加 antlr.jar:根据一种可以嵌入如Java, C++或C#等辅助代码段的文法,来构筑出相对该文法的识别器,编译器或翻译器的一种语言工具框架.一句话:没有此包,hibernate

转 Java 序列化Serializable详解 - 2016-02-16 14:02:18

原文http://www.2cto.com/kf/201405/305380.html ava 序列化Serializable详解(附详细例子) 1、什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。 2、什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者 数据库 中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传输对象的时候; 3、如何实
转自:http://www.cnblogs.com/chenjie0949/p/4778042.html 引言:经过上两篇的论述,我们已经从代码到架构都简单的熟悉了一遍,理论上,只要知道android app的编译过程,我们大可以自己写一份用gradle编译app的插件,插件内将将整个流程用Task的依赖串联起来。现在我们看看gradle是怎么做的。 复习,android 编译流程 面试中经常出现的问题,android的编译流程。这个问题十分简单和好记。android是用java来开发的,所以最基本的流程和
package cn.smallbug.thread;/** * 资源定义 * * @timestamp Feb 13, 2016 11:55:10 PM * @author smallbug */class Resource {private String name;private int age = 0;private boolean flag = false;public synchronized void setShow(String name) {while (flag)try {this.wa
获取【下载地址】    QQ: 313596790   【免费支持更新】 支持三大数据库 mysql  oracle  sqlsever    更专业、更强悍、适合不同用户群体 【 新录针对本系统的 视频教程 ,手把手教开发一个模块,快速掌握本系统 】 A 代码生成器(开发利器);       增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成    就不用写搬砖的代码了,生成的放到项目里,可以直接运行 B 阿里巴巴数据库连