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虚拟用户的应用远不止上面这些。

目录
相关文章
|
3月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
441 1
|
3月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
445 0
|
4月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
586 64
|
3月前
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。
|
4月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
388 1
|
5月前
|
缓存 NoSQL Java
Java Web 从入门到精通之苍穹外卖项目实战技巧
本项目为JavaWeb综合实战案例——苍穹外卖系统,涵盖Spring Boot 3、Spring Cloud Alibaba、Vue 3等主流技术栈,涉及用户认证、订单处理、Redis缓存、分布式事务、系统监控及Docker部署等核心功能,助你掌握企业级项目开发全流程。
663 0
|
5月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
427 0
|
10月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
711 7
|
11月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
675 9
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
816 7
Spring Boot 入门:简化 Java Web 开发的强大工具