LoadRunner中的java Vuser

2017-04-01  尹文姣 

一:引入java Vuser

1:为什么要使用java Vuser?

1)有些使用C解决起来很麻烦,但是使用java很方便,存在强大的开源类库

2)更方便的使用自定义的类,节省开发脚本的时间。特别是对于自定义的一些算法或类,更是方便

二:LoadRunner中两种语言的区别

1:Java Vuser与C的区别

1)语言不同,语法不同,支持的函数不同

2)C是解释的,Java Vuser的是编译的,出错提示更准确。(Java Vuser是编译的,使用Java的编译器Javac,这样出错提示更准确)

三:缺点和不足

1)有些语法支持的不好,例如:静态代码块,尽量少用不常用的语法和功能

静态代码块例子


四:需要注意的是:

1)如果在脚本中包括自定义的类,你需要确保这个类是线程安全的,如果不确定,使用进程方式运行,这样可以每个进程一个虚拟机,充分的隔离

2)没有修改,只有读肯定是线程安全的

3)操作不同的对象或者变量是线程安全的

4)线程安全是很难检测的。往往在很少用户并发时很难发现,甚至很多程序运行多年才发现,相对来说,在大压力下且或CP资源紧张的时候更容易发现

五:编写Java Vuser的一般步骤

1)了解被测项目业务和所使用的技术,分析是否使用JavaVuser

2)eclipse中编写一个正确的压力模拟代码

3)eclipse中的代码移如LoadRunner中的Java Vuser

4)结合业务特点,对脚本进一步的增强

5)使用Controller运行多用的Java Vuser

六:从web转化为Java Vuser

1)将要转换的web脚本复制出来并保存到文本文件中

2)参数界定符部分需要{}手动修改成<>

3)打开cmd

4)切换到C:\Program Files (x86)\HP\LoadRunner\dat

5)运行..\bin\sed-f-web_to_jave.sed  c:\web.txt > c:\java.txt

6)创建参数并进行其他操作

Java Vuser适用范围

1Java Vuser实现无法录制的测试需求。比如:含有控件的web应用、一些和媒体播放、文件下载等相关的应用。

2Java Vuser测试基于Java语言的应用系统性能。比如:核心算法或业务的执行效率、java应用中不能录制的业务模块

四、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();返回当前vuserID

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_messageString 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状态”区域发送消息

446°/4468 人阅读/0 条评论 发表评论

登录 后发表评论