当前位置: 首页 > 编程日记 > 正文

loadrunner 调用java_LoadRunner调用Java程序—性能测试

为了充分利用LoadRunner的场景控制和分析器,帮助我们更好地控制脚本加载过程,从而展现更直观有效的场景分析图表。本次将重点讨论LoadRunner如何调用Java测试代码,完成压力测试。

通常我们在执行一些Server的压力测试的时候,总会不经意间想要一个Client完成对Server的调用示例,以至于我们可以通过LoadRunner直接录制,对于测试人员来说确实很方便。不过,开发人

员如果没有那么多时间去为测试人员服务,那可能就比较悲剧了,只能自己尝试去调用接口来完成压力测试了,这样就需要具备一些代码的功底了。当然如果完成接口代码的调用之后,还要保证

LoadRunner能够正确录制,那确实有点麻烦了。很多时候,我们的接口压力可能确实无法通过Client端来展现,那就只能在Server使用纯代码形式完成,要么是多线程,要么是重复调用,但对于测试

结果的收集就不那么方便了。所以我们还是要向办法利用一些工具的优势,取之所长,为我们所用,LoadRunner的图表分析就是所有工具里面最优秀的,正好它也支持Java代码、C++等调用接口,这

里以Java为例。

通常在一个工程文件下,我们想对其中某一个Java文件进行调用,但这一个Java代码总是与其他的代码进行相互调用,所以我就需要引入很多的Java包或者是一些Jar包,下面就通过本次实践来详

细讲述LoadRunner调用Java代码的步骤了,我这里的环境是LoadRunner11,JDK1.6,工程开发是Java+Flex,完成的是一个统一登录接口的测试。具体步骤如下:

1、将Java工程文件打包成jar格式,比如我这里的工程为logindemo,打包jar之后为logindemo.jar

2、将Java工程文件下的lib目录找出来,lib文件中基本都是jar包,这个是工程文件的调用jar包

3、开启LoadRunner新建一个Java Vuser的脚本,先运行哈,看脚本是否正确执行,并保存文件

4、将logindemo.jar和lib下的jar全部导入到LoadRunner的ClassPath下,前提是要保证JDK文件要导入到LR中,在LR中的Vuser——》运行时设置里,如下图所示;

029acb3696f1cc48483f849fa82930f2.png

5、完成以上操作之后,这个时候我们就可以在Vuser脚本中引入Java中的调用程序了,本人开始用import方式引入的时候,发现很奇怪,第一次居然是成功的,但后台就一直都报找不到包,暂停了很久,于是用package的方式引入,发现还是真可以,于是接下来就开始运行,发现很好用,而且程序调用也确实是ok的。

注意:这里其实没什么特殊的操作,主要是对于jar包的调用方式上,可能需要注意一下几点:

1、在引入jar包的时候,比如上图上面的引入jar文件夹的方式,就不可行,这个是一个疑点,所以就只能选择将所有的jar包一并导入就ok了

2、在Vuser中引入Java包文件时,import方式居然是偶尔行偶尔不行,所以选择package方式是绝对可行的

3、在Vuser引入Java包之后运行时可能会出现一些报错,基本都是jar文件情况,只要找对了LoadRunner的Classpath就基本没问题,还有就是JDK一定要先导入,不然会直接提示进程被终止,

不能运行Java文件

4、LoadRunner对于Java文件的引入方式有多种,这里调用jar包的方式是我们平常应用最多的,也是最方便的。当然还可以将Java编译后的class文件,复制到LoadRunner的安装路径下的

classes下,必须将Java class整个包文件夹全部复制才能执行,这种方式可需要花费调用的时间,而且最终要调用的jar包,还是要到Classpath下导入才行。

至于Java业务逻辑的实现,可以在Java中实现,然后Vuser直接调用方法接口,淡然也可以在Vuser中完成。然后就可以到场景中设置虚拟用户数进行场景测试了,然后根据场景测试的结果得出分

析图表,跟其他录制之后的测试方式基本相同。

相关文章:

《The Art of Readable Code》 读书笔记 01

放假前在学校图书馆借了一本新书《The Art of Readable Code》,寒假回来看看,写写其中的Key Idea 、summary和一些读书笔记。 Preface 前言部分主要概况讲了本书的核心思想——Code shoule be easy to understand。接着探讨什么是好代码,是内…

吴裕雄 10-MySQL插入数据

语法以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );如果数据是字符型,必须使用单引号或者双引号,如:"value"。 通…

编译内核指定模块,筛选当前模块依赖的组件

关于内核模块编译的过程中,往往我们仅仅需要其中一个小的模块,但是却因为内核源码的庞杂而止步与模块依赖的筛选过程中。 为了更加便捷得对内核各个模块进行管理,这里提供一个小脚本来进行指定模块相关得模块留存,不相关的模块代码…

计算机启动和操作系统加载小话

整个启动和加载过程可分为若干步骤,或者称为若干个状态,或者快照,下面的每一段都是描述一个快照。(类似自动状态机) 1、电源稳定(POWER GOOD) 按下启动键后,电源首先启动。为了保证安…

java清空栈_java - 如何使用Intent.FLAG_ACTIVITY_CLEAR_TOP清除活动堆栈?

java - 如何使用Intent.FLAG_ACTIVITY_CLEAR_TOP清除活动堆栈?我已经阅读了几篇关于使用它的帖子,但必须遗漏一些因为它不适合我。 我的活动A在清单中有launchmode “singleTop”。 它启动活动B,启动模式“singleInstance”。 活动B打开浏览器…

「学习笔记-Linux」学习Shell Script

学习Shell Script Table of Contents 1 什么是Shell Scipt 1.1 程序书写1.2 程序执行2 简单Shell练习 2.1 例1 接收用户输入2.2 例2 按日期建立相似名字的文件3 判断式 3.1 测试文件是否存在3.2 test常用选项 3.2.1 文件类型3.2.2 权限3.2.3 文件新旧比较3.2.4 整数&#xff0c…

django admin组件

admin实例 from django.contrib import admin from app01 import models from django.utils.safestring import mark_safe # Register your models here. class UserInfoConfig(admin.ModelAdmin):# 自定义显示的东西def xxx(self):return mark_safe(<a href>xx</a>…

C语言网络编程:close或者shutdown断开通信连接

文章目录前言close函数介绍shutdown函数介绍前言 这里在主要通过实例进行描述close函数在网络编程中的使用 TCP编程模型中客户端或者服务器只要主动通过close发起断开连接的请求&#xff0c;则通信连接可以中断。 可以通过在主进程中抓取通信端的断开信号&#xff0c;比如SIGI…

Await, and UI, and deadlocks! Oh my!

It’s been awesome seeing the level of interest developers have had for the Async CTP and how much usage it’s getting. Of course, with any new technology there are bound to be some hiccups. One issue I’ve seen arise now multiple times is developers acc…

传智播客java基础的习题_传智播客java基础班(集合与IO)阶段测试题

本帖最后由 zhaodecang 于 2016-6-8 19:38 编辑单选题&#xff1a;(每道题目2分)1. ArrayList类的底层数据结构是( )a) 数组结构b) 链表结构 c) 哈希表结构 d) 红黑树结构2. LinkedList类的特点是( )a) 查询快b) 增删快c) 元素不重复 d) 元素自然排序3. Vector类的特点…

$@ 与 $* 差在哪?

$ 与 $* 差在哪&#xff1f; 要说 $ 与 $* 之前&#xff0c;需得先从 shell script 的 positional parameter 谈起...我们都已经知道变量(variable)是如何定义及替换的&#xff0c;这个不用再多讲了。但是&#xff0c;我们还需要知道有些变量是 shell 内定的&#xff0c;且其名…

[源码和文档分享]基于Netty和WebSocket的Web聊天室

一、背景 伴随着Internet的发展与宽带技术的普及&#xff0c;人们可以通过Internet交换动态数据&#xff0c;展示新产品&#xff0c;与人进行沟通并进行电子商务贸易。作为构成网站的重要组成部分&#xff0c;留言管理系统为人们的交流提供了一个崭新的平台。同时&#xff0c;聊…

t-tcpdump

文章目录写入和读取数据包抓取数据包抓取指定网卡流量指定数据的输出格式数据包抓取的方向输出信息的详细程度的可控选项抓取指定协议的数据包表达式介绍逻辑连接符的使用type的确定写入和读取数据包 在工作或者生活中的网络故障排除时最有力的方式就是抓包分析网络状况&#…

java jdk 8u111_8u111-jdk-alpine在java开发中的NullPointerException错误解决方案

问题描述在部署一个验证码服务的容器服务时遇到了一个空指针错误&#xff0c;错误代码为&#xff1a;java.lang.NullPointerExceptionat sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguratio…

sprintf函数做什么用?

sprintf函数原型为 int sprintf(char *str, const char *format, ...)。作用是格式化字符串&#xff0c;具体功能如下所示&#xff1a; &#xff08;1&#xff09;将数字变量转换为字符串。 &#xff08;2&#xff09;得到整型变量的16进制和8进制字符串。 &#xff08;3&#…

Yii学习笔记【3】

加载控制器及其方法&#xff1a; 根据route信息&#xff0c;获得当前控制器| 初始化当前控制器&#xff0c;CController::init()&#xff0c;默认为空| 执行当前控制器&#xff0c;CController::run()||----> 创建action&#xff0c;为空则默认为index|得到CInlineAction的实…

验证码相似问题

产生随机验证码时&#xff0c;类似数字1和小写字母l经常容易让人混淆分不清楚&#xff0c; 因此&#xff0c;产生随机验证码时应避免此情况 1&#xff08;一&#xff09;、l&#xff08;哎哦&#xff09;、I &#xff08;哎&#xff09;中三个任意两个或者全部不可同时存在 0&a…

C语言网络编程:accept函数详解

文章目录前言函数描述代码实例如何得到客户端的IP 和 端口号前言 当使用tcp服务器使用socket创建通信文件描述符&#xff0c;bind绑定了文件描述符&#xff0c;服务器ip和端口号&#xff0c;listen将服务器端的主动描述符转为被动描述符进行监听之后&#xff0c;接口accept通过…

java 声明静态类_java静态类声明--java类可以声明为static吗

为了理解static关键字在类声明中的使用&#xff0c;首先我们需要了解类声明。有两种类&#xff0c;一种是top-level class&#xff1b;一种是inner class。Top-level classestop-level class可以被声明为包成员&#xff0c;每一个top-level类对应于一个文件名与类名相同的java文…

单元测试资料汇总

从安装到配置 首先到官网http://www.nunit.org/下载如下图的资料&#xff0c;安装NUnit-2.6.1.msi包。 然后挂在VS2010外部工具这个地方来使用&#xff0c;工具—>外部工具—>添加—>标题&#xff1a;Nunit—>命令&#xff1a;安装路径—>确定。 然后打开Nunit&…

rhel5+nis+autofs+nfs

创建NIS服务器用户&#xff0c;用于客户端登陆 NIS服务器相关包&#xff1a;ypserv、ypbind(在RHEL5中默认已安装)、yp-tools(在RHEL5中默认已安装)。 运行nisdomainname test.com并把加入到如下位置 设置NIS服务器的域名 在NIS环境中将以NIS服务器上的所有用户用于NIS环境中所…

Beta冲刺 (1/7)

Part.1 开篇 队名&#xff1a;彳艮彳亍团队 组长博客&#xff1a;戳我进入 作业博客&#xff1a;班级博客本次作业的链接 Part.2 成员汇报 组员1&#xff08;组长&#xff09;柯奇豪 过去两天完成了哪些任务 熟悉并编写小程序的自定义控件展示GitHub当日代码/文档签入记录接下来…

C语言网络编程:listen函数详解

文章目录前言函数描述代码实例TCP服务器为什么调用listen前言 根据TCP编程模型中我们可以看到之前的socket和bind接口是tcp服务器在为接收客户端的链接做准备&#xff0c;保证tcp的面向字节流&#xff0c;面向连接的可靠通信服务正常进行。接下来的listen端口则为我们进行三次…

MVC页面加载速度优化小记

前言&#xff1a;最近做一个地图展示页面&#xff0c;业务初期没什么问题&#xff0c;运行一阵后报错&#xff1a; Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLeng…

java生成函数excel_java实现在excel中创建及读取公式

操作excel表格用公式来处理数据时&#xff0c;可通过创建公式来运算数据&#xff0c;或通过读取公式来获取数据信息来源。这里使用了java类库(Free Spire.XLS for Java 免费版)获取文件包后&#xff0c;解压&#xff0c;将lib文件夹下的jar文件导入Java程序。如图&#xff1a;(…

实战:使用TCP/IP筛选保护服务器安全

使用TCP/IP筛选保护服务器安全 对于部署在Internet的服务器&#xff0c;安全是必须要考虑的事情。为了降低服务器受***的危险&#xff0c;停止不必要的服务或在本地连接的TCP/IP属性中只打开必要的端口。 如图2-127所示&#xff0c;实验环境为Server的IP地址192.168.1.200&…

python中的协程(二)

协程 1、协程&#xff1a; 单线程实现并发 在应用程序里控制多个任务的切换保存状态 优点&#xff1a; 应用程序级别速度要远远高于操作系统的切换 缺点&#xff1a; 多个任务一旦有一个阻塞没有切&#xff0c;整个线程都阻塞在原地&#xff0c;该线程内的其他的任务都不能执行…

C语言网络编程:bind函数详解

文章目录函数功能函数头文件函数使用函数参数函数举例为什么需要bind函数服务器如何知道客户端的ip和端口号htons函数htons兄弟函数htonl,ntohs,ntohl为什么要进行端口的大小端序的转换inet_addr函数函数功能 bind API能够将套接字文件描述符、端口号和ip绑定到一起 注意&…

java flex 图片上传_flex上传图片到java服务器

今天弄flex上传图片到java&#xff0c;现在弄成功&#xff0c;中间也经常一点小波折&#xff0c;现记录一下。重点在java侧的实现。flex侧&#xff1a;文件上载到在url参数中传递的URL。该URL必须是配置为接受上载的服务器脚本。Flash Player使用HTTP POST方法上载文件。处理上…

开发者怎么样做到盈利

开发者如何赚钱? 不可回避的一点就是&#xff0c;开发者的产品要有足够好的用户体验。假设你会做手机游戏&#xff0c;那么把手游做好了之后用户的粘性很大&#xff0c;如果你做应用&#xff0c;那么你的应用下载会对用户产生有价值的东西。 其实如果你的产品真的有价值&#…