Loadrunner在Java Vuser当中常用的一些Web函数-阿里云开发者社区

开发者社区> 开发与运维> 正文

Loadrunner在Java Vuser当中常用的一些Web函数

简介: 习惯了录制脚本的初学者们,会觉得通过Java vuser来写脚本比较陌生,其实看完以下的Loadrunner常用Web函数对比,你就不会觉得Java Vuser有多么神秘了,而且通过Java写性能测试脚本的灵活性要远远高于C语言
版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问我的博客 https://blog.csdn.net/smooth00/article/details/75119666

对于Loadrunner,习惯了录制脚本的初学者们,会觉得通过Java vuser来写脚本比较陌生,其实看完以下的Loadrunner常用Web函数对比,你就不会觉得Java Vuser有多么神秘了,而且通过Java写性能测试脚本的灵活性要远远高于C语言(因为Java相对于C要容易的多,而且Java有大量的开源组件和类库可以供你进行扩展开发,几乎做到了没有测试不了的应用以及API接口),进行Java Vuser开发,也比.Net Vuser开发要简单的多(相较于安装一堆.Net组件或插件,Java Vuser只需要引用一下JDK路径就行,Loadrunner11支持JDK1.6,Loadrunner12支持JDK1.7)。

常用函数 Java Vuser  协议脚本 Web-HTML/HTTP协议脚本
引用类
或库文件
import lrapi.lr;
import lrapi.web;
通过globals.h文件引用
think_time lr.think_time(3); lr_think_time(3);
transaction lr.start_transaction("事务");
......
lr.end_transaction("事务", lr.AUTO);
lr_start_transaction("事务");
......
lr_end_transaction("事务", LR_AUTO);
set_option web.set_option("MaxRedirectionDepth", "0",
new String[]{"LAST"});
web_set_option("MaxRedirectionDepth", "0",
LAST );
set_user web.set_user("cluster",
        //lr.decrypt("58cf7265b1677820107f74"),
        "cluster",
        "172.17.2.89:8081");
web_set_user("cluster",
        //lr_decrypt("58cf7265b1677820107f74"),
        "cluster",
        "172.17.2.89:8081");
add_header web.add_header("Authorization",
lr.eval_string("<BasicAuth>"));
web_add_header("Authorization",
lr_eval_string("{BasicAuth}"));
output
message
lr.save_string("test","tParam");
lr.output_message("tParam的值为:"
      +lr.eval_string("<tParam>"));
lr_save_string("test","tParam");
lr_output_message("tParam的值为:%s",
      lr_eval_string("{tParam}"));
web_url web.url("Show status",
    "URL=http://172.17.2.89:8081/kettle/status/",
    new String[]{
        "Resource=0",
        "RecContentType=text/html",
        "Referer=http://172.17.2.89:8081/",
        "Snapshot=t3.inf",
        "Mode=HTTP",
        "LAST"});
web_url("Show status",
    "URL=http://172.17.2.89:8081/kettle/status/",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=http://172.17.2.89:8081/",
    "Snapshot=t3.inf",
    "Mode=HTTP",
    LAST);
web_
submit_data
web.submit_data("executeJob",
    "Action=http://172.17.2.89:8081/kettle/executeJob/",
    new String[]{
        "Method=POST",
        "RecContentType=text/html",
        "Referer=",
        "Mode=HTTP"},
    new String[]{// "ITEMDATA",  不要加这条
        "Name=job", "Value=/DZ/job/HYHZ", "ENDITEM",
        "Name=level", "Value=Debug", "ENDITEM",
        "Name=rep", "Value=DZHY0620", "ENDITEM",
        "LAST"});
web_submit_data("executeJob",
    "Action=http://172.17.2.89:8081/kettle/executeJob/",
    "Method=POST",
    "RecContentType=text/html",
    "Referer=",
    "Mode=HTTP",
    ITEMDATA,
        "Name=job", "Value=/DZ/job/HYHZ", ENDITEM,
        "Name=level", "Value=Debug", ENDITEM,
        "Name=rep", "Value=DZHY0620", ENDITEM,
    LAST);
web_
custom_request
String htmlBody="这里是body串";
web.custom_request("ViewStreamLogin",
    "Method=POST",
    new String[]{
        "URL=http:/*.*.cn/login?user=test&passwd=123",
        htmlBody,
        "TargetFrame=",
        "Referer=",
        "Mode=HTTP",
        "LAST"});
web_custom_request("ViewStreamLogin",
    "URL=http:/*.*.cn/login?user=test&passwd=123",
    "Method=POST",
    "TargetFrame=",
    "Resource=0",
    "Referer=",
    "Mode=HTTP",
    "Body=这里是body串",
    LAST);
web_
submit_form
web.submit_form("authenticate",
    new String[]{
        "Snapshot=t2.inf"},
    new String[]{
        "Name=user", "Value=root", ENDITEM,
        "Name=passwd", "Value=2012", ENDITEM,
        "Name=key", "Value=<OFF>", ENDITEM,
        "LAST"});
web_submit_form("authenticate",
    "Snapshot=t2.inf",
    ITEMDATA,
        "Name=user", "Value=root", ENDITEM,
        "Name=passwd", "Value=2012", ENDITEM,
        "Name=key", "Value={OFF}", ENDITEM,
    LAST);

1、以下列出Loadrunner所有的Java LR Common函数:



2、以下列出Loadrunner所有的Java LR Web函数:


特别说明:Java Vuser 是自定义的 Java 虚拟用户脚本,脚本中可以使用标准的Java语言。这种虚拟用户一般采用纯手工编写(当然Loadrunner11、12也能支持部分Java录制,包括Java Applet、Java Application、Java Over HTTP)。Java虚拟用户适用范围非常广,归纳起来主要有两大类:一类是不太适合录制的业务功能点的性能测试,例如网页上Http文件的下载过程、视频播放等;另一类是基于Java语言开发的应用系统的性能测试,这类应用更适合采用Java虚拟用户进行测试。
        用Java Vuser实现无法录制的测试需求,这类测试需求往往关注于对服务器产生的压力,重点测试在一定压力下服务器的负载情况,为评估、部署、调优系统提供参考。在这类测试工作中,Java的作用仅是一门语言,用于辅助测试人员完成测试程序的开发。在性能测试工作中,不能录制的测试点很多,主要有以下几类:
(一)含有控件的Web应用:在Web应用中,很多包含一些插件的浏览器应用经常不能录制。这类应用往往涉及很多协议,因此录制起来不是特别方便。对于这类应用,可以用Java语言调用其功能来完成用户行为的模拟。
(二)一些和媒体播放、文件下载等相关的应用:媒体播放或文件下载等过程的录制往往不容易控制,如果是应用基于P2P的协议,则会更加复杂。因此,这类测试只能由测试人员开发虚拟用户脚本来完成。
(三)用Java Vuser测试基于Java语言的应用系统性能:相比前面,基于Java语言开发的应用系统,在性能测试中采用Java虚拟用户更显得“门当户对”。这类虚拟用户主要应用在下面两类测试中:
(1)核心算法或业务的执行效率
        对银行、电信等大型的基于J2EE的架构应用系统中,开发阶段的性能测试是必不可少的。为了降低后期遇到性能问题的风险,往往在开发阶段进行一些核心业务的性能测试。这些核心业务或要求较高的执行效率,或者要求支持较多用户的并发。因此,可以利用Java Vuser来测试这些业务的执行效率。
(2)Java应用中不能录制的业务模块
        很多时候,一些J2EE架构的业务系统用LoadRunner录制起来不是特别方便,例如一些Java智能客户端程序。这时可以手工编写测试代码,完成测试任务。与非Java应用相比,Java 应用中不能录制的业务功能更适合采用Java虚拟用户,因为可以直接对一些方法进行调用。
        由于Java语言的强大功能,Java虚拟用户的应用远不止上面这些。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章