jmeter java接口,jmeter并发测试java接口 | 学步园

Sample

这里我用到主要JMeter的线程和报表,扩展了他的“Java请求”这个应用类别。要扩展此应用,要用到lib/ext/ApacheJMeter_java.jar,他封装此应用。

首先,需要继承ApacheJMeter_java.jar中的抽象类AbstractJavaSamplerClient,它提供了四个抽象方法: void setupTest(JavaSamplerContext arg0),SampleResult runTest(JavaSamplerContext arg0), void teardownTest(JavaSamplerContext arg0), Arguments getDefaultParameters()。setupTest和teardownTest与JUnit中的类似,分别在测试的开始和结束时执行。

runTest为主要测试方法,所有测试程序都在这里完成,JavaSamplerContext参数封装测试中需要的所有外界数据(如配置信息等)。其 SampleResult封装了所有测试结果(如:测试是否成功?程序执行时间等),getDefaultParameters用于把测试的一些默认数据在程序运行前显示到JMeter客户端,这个可以和runTest配合使用,实现数据的呈现和配置。

下面为程序:

import org.apache.jmeter.config.Arguments;

import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import org.apache.jmeter.samplers.SampleResult;

import com.ebupt.wv.client.WVClient;

public class Login2 extends AbstractJavaSamplerClient {

private static String label = "userLogin"

private String name;

private String address;

public void setupTest(JavaSamplerContext arg0) {

System.out.println("setupTest");

}

public SampleResult runTest(JavaSamplerContext arg0) {

name = arg0.getParameter("name");

address = arg0.getParameter("address");

SampleResult sr;

sr = new SampleResult();

sr.setSampleLabel(label);

try{

sr.sampleStart(); //记录程序执行时间,以及执行结果 sr.setSuccessful(true); System.out.println("send over!");

}catch(Throwable e){

sr.setSuccessful(false); }finally{

sr.sampleEnd(); }

return sr;

}

public void teardownTest(JavaSamplerContext arg0) {

}

public Arguments getDefaultParameters() {

Arguments params = new Arguments();

params.addArgument("name", "JMeter");

params.addArgument("address", "localhost");

return params;

}

}

其次,把写好的应用打包,放到lib/ext下,JMeter运行时即可找到。同时还要把用户自己编写的应用所依赖的包放在lib下。运行JMeter。界面打开后,右键“测试计划”,添加线程组;右键“线程组”-添加-Sampler-Java请求,在类名称处选择刚才写好的类。

如图:

a302a2c7bd4b87c9d8b38d6ae207fcdd.png

这里,可以同时添加多个线程组、多个java请求、同时可以添加监听器用于输出不同的的测试结果图形、报表,各个请求之间可以用逻辑控制器进行执行流程的控制。如图:

6ca01e255dadb5ffa8a2ad416cedc3e1.png

最后,点击运行-启动,保存相应的项目,即可开始运行。运行时的数据,可以通过监听器写入文件以便需要时生成报表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web项目练习总结(错误校正篇)

老师布置任务,从SVN上弄个项目来练练手,熟悉下过程。 myeclipse安装SVN 然后把MobileManageSys下下来 然后漫长的等待。。。 然后配置数据库,导入,这里用的是SQLyog,其他的也可以 之后这里会产生一大堆的错误&#xff…

nginx php7提速,nginx+php7-fpm 性能提升几倍跟踪实践结果并优化

nginxphp7-fpm 性能提升几倍跟踪实践结果并优化nginxphp7-fpm 性能提升几倍,跟踪实践结果并优化历史ubuntu服务器使用的apachephp5,现在使用nginuxphp7-fpm方式,看效果图,啥也不说了。强烈推荐升级到php7,当然升级中基…

matlab地球卫星模型,地球卫星三维运行轨道MATLAB仿真

地球卫星三维运行轨道MATLAB仿真1、问题的描述3 轨道上运行的地球卫星,根据牛顿第二定律Fma以及万有引力定律F-GmME*r/r,3可得a-GME*r/r,即x -GME*x/r3 3 y -GME*y/r; z -GM*z/r3E (1)式中,(x,y,z)表示卫星…

php中定义css样式的好处,CSS的优点和缺点分别是什么

CSS的优点有:丰富的样式定义、易于修改、结构清晰、多页面使用等;CSS的缺点:浏览器支持不一样具有兼容性、不能明确指定继承性CSS的主要哦作用是为HTML页面添加样式,使得页面更加美观。接下来在文章中将为大家详细介绍CSS的优点与…

设计模式学习笔记-观察者模式

1. 概述 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 2. 解决的问题 将一个系统分割…

Handler与多线程

1、Handler介绍 在Android开发中,我们常会使用单独的线程来完成某些操作,比如用一个线程来完成从网络上下的图片,然后显示在一个ImageView上,在多线程操作时,Android中必须保证以下两点: (1&…

oracle语法官方文档,Oracle官方文档必备语法知识

很多Oracle DBA虽然接触Oracle时间很长,但是一旦想不起语法或找不出相应参数时,习惯百度或谷歌。虽然已经下载了官方文档,但是Oracle官方文档必备语法知识[日期:2015-04-21]来源:Linux社区作者:kuqlan[字体…

新中大oracle实列名,新中大财务软件操作流程(完整版)

新中大财务软件最基本的三个模块:核算单位、财务处理系统、报表处理系统。简单地说,核算单位模块是用于建账,财务处理系统用于登账,报表处理系统用于出报表的。一、总账处理系统1、建账套双击财务软件图标 → 在登录界面选择用户编…

linux切换任务命令,Linux top详解之交互命令、命令行选项

top交互命令我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。2.1 ‘h’: 帮助首先,我们可以用’h’或者’?’显示交互命令的帮助菜单。2.2 “或者”: 刷新显示top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新&am…

linux系统硬盘设置密码,LUKS:Linux下磁盘加密

Linux下磁盘加密LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘…

Hibernate查询

9.1 Hibernate数据查询 数据查询与检索是Hibernate的一个亮点。Hibernate的数据查询方式主要有3种,它们是: l Hibernate Query Language(HQL) l Criteria Query l Native SQL 下面对这3种查询方式分别进…

单例模式 创建对象

两种选择 1 使用pthread_once, once是类的成员变量 只执行一次Create create的作用是创建一个对象 2 使用 static lock 如下所示,注意lock必须是static的,否则是局部变量,每个线程都有自己的lock,无法保证只执行一次。…

opencv配置

OpenCV的简单安装和一次性配置在这里就不赘述了,网上教程很多,可以参考一下这个链接里面的教程http://wenku.baidu.com/view/3b40de25453610661ed9f46b.html。 但是很多情况下面,我们新建一个项目就要重新配置一次OpenCV,那就相当…

linux 动态执行cp,Linux常用命令之cp、mv、rm、cat、more、head、tail、ln命令讲解

上一章节中,我们了解到了Linux系统的最基础的几个文件处理命令,核心的是ls命令,在今天这章中,我们来继续学习Linux对于文件操作相关的一些命令,比如复制、移动、删除、查看等命令。1、cp 命令解释命令名称:…

Linux鼠标回报率修改,鼠标回报率怎么调? 设置鼠标回报率的三种方法

鼠标回报率如何设置呢?鼠标回报率又称刷新率,是指鼠标MCU与电脑传输数据频率。鼠标回报率对于游戏玩家而言至关重要,但同时鼠标回报率与电脑性能息息相关。只有电脑硬件性能良好,才能适当提升鼠标回报率,以实现更高的鼠…

[转载]孙婧妍:高考语文148分是这样炼成的(附:孙婧妍

原文地址:孙婧妍:高考语文148分是这样炼成的(附:孙婧妍2013高考作文《手机论》)作者: 语文新高考高考语文148分是这样炼成的 (附:孙婧妍2013高考作文《手机论》) 来源:网络 作者:孙婧妍…

c语言字符串逆置,字符串逆置

满意答案9n7j5j3m4o2013.12.03采纳率:49% 等级:11已帮助:15198人47911 zxl0714 1358 Accepted 164K 15MS G 0.46K 2007-04-08 10:32:38#include using namespace std;void reverse(char* ch){int i, len;char tmp;len strlen( ch );for (…

【Android基础】Fragment 详解之Fragment介绍

Fragment在Android 3.0( API 11)引入,是为了支持在大屏上显示更加动态、灵活的UI,比如在平板和电视上。Fragment可以看作是嵌套的Activity,类似ActivityGroup,但是开销肯定没有ActivityGroup那么大&#xf…

linux postfix 搭建,linux 下搭建postfix服务器

linux 下postfix邮箱的安装linux一、首先关闭sendmail服务service sendmail stop二、chkconfig sendmail off(关闭开机自启动)三、修改DNS正解文件,使DNS可以解析邮箱服务添加下面两行mail.zhubf.com. IN A 172.17.17.2zhubf.com. IN MX 10 …

android 飞框动画,AndroidTV中实现飞框选中效果

相信很多从事AndroidTV开发的朋友都对如何展示item的选中效果感到苦恼,电视端开发与移动端最大的不同是用户只能通过一个遥控器进行控制(当然如果你的电视是触屏的话除外……),在这个时候,我们需要让用户知道当前选中的到底是哪一个项目&…