当前位置: 首页 > news >正文

做高仿包的能做网站吗江苏省建设厅八大员考试报名网站

做高仿包的能做网站吗,江苏省建设厅八大员考试报名网站,网站页面策划软件,传奇网站建设基本流程前言 如果想要压测一些三方组件,比如MQ,redis什么的,jmeter本身是不支持的。 本文以开发一个压测netty的echo示例,说明如何自定义jmeter的sampler。 开发 本文以idea示例, 新建工程 打开idea新建一个空的maven工程…

前言

如果想要压测一些三方组件,比如MQ,redis什么的,jmeter本身是不支持的。
本文以开发一个压测netty的echo示例,说明如何自定义jmeter的sampler。

开发

本文以idea示例,

新建工程

打开idea新建一个空的maven工程:
在这里插入图片描述

pom依赖

jmeter的核心依赖:

        <dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_core</artifactId><version>5.5</version></dependency><dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_java</artifactId><version>5.5</version></dependency>

三方依赖,比如我要压测netty,开发一个netty客户端,必然要引入netty相关的依赖:

        <dependency><groupId>io.netty</groupId><artifactId>netty-handler</artifactId><version>${netty.version}</version></dependency><dependency><groupId>io.netty</groupId><artifactId>netty-transport-native-epoll</artifactId><version>${netty.version}</version></dependency>

Echo客户端

这部分代码可以从netty的示例里[io.netty.example.echo.EchoClient]拿过来改改就行:

public class EchoClient {static final int SIZE = Integer.parseInt(System.getProperty("size", "256"));private Channel channel;public EchoClient(String host, int port) {EventLoopGroup group = new NioEventLoopGroup();Bootstrap b = new Bootstrap();b.group(group).channel(NioSocketChannel.class).option(ChannelOption.TCP_NODELAY, true).option(ChannelOption.SO_SNDBUF, 1024 * 1024).handler(new ChannelInitializer<SocketChannel>() {@Overridepublic void initChannel(SocketChannel ch) throws Exception {ChannelPipeline p = ch.pipeline();p.addLast("flushHandler", new FlushConsolidationHandler(1024, true));p.addLast(new EchoClientHandler());}});// Start the client.try {channel = b.connect(host, port).sync().channel();} catch (InterruptedException e) {throw new RuntimeException(e);}}public void write(String message) {channel.writeAndFlush(message);}
}

开发Jmeter的JavaSampler

@Slf4j
public class EchoTest extends AbstractJavaSamplerClient {private String label = "echo";private String host;private int port;private String content;private AtomicInteger index = new AtomicInteger(0);public static EchoClient client;public EchoTest() {log.info(this.whoAmI() + "\tConstruct");}@Overridepublic void setupTest(JavaSamplerContext context) {// 读取设置的请求参数this.setupValues(context);// 注意如果client不是静态的类变量,在jmeter指定并发数的时候,每个线程会创建一个client对象,所以如果需要多少个客户端,根据自己场景调整if (client == null) {synchronized (EchoTest.class) {if (client == null) {client = new EchoClient(this.host, this.port);}}}}@Overridepublic SampleResult runTest(JavaSamplerContext javaSamplerContext) {SampleResult results = new SampleResult();results.setSentBytes(content.length());results.setDataType("text");// 用来计算一个请求的耗时的results.sampleStart();try {// 除了这行业务代码,其它可以算是模板范式client.write(content);results.setResponseOK();results.setResponseCodeOK();results.setSuccessful(true);} finally {results.sampleEnd();}results.setSampleLabel(this.label);return results;}private void setupValues(JavaSamplerContext context) {this.host = context.getParameter("Host");this.port = context.getIntParameter("Port");this.content = context.getParameter("Content");}/*** 这个方法就是在Jmeter上设置的请求参数*/@Overridepublic Arguments getDefaultParameters() {Arguments params = new Arguments();params.addArgument("Host", "127.0.0.1");params.addArgument("Port", "8007");params.addArgument("Content", "输入内容");return params;}private String whoAmI() {return Thread.currentThread() + "@" + Integer.toHexString(this.hashCode());}
}

关键地方已经加上注释了,其它场景可以照这个模板走就行。

打包

因为有三方依赖,打包的时候需要把这些依赖也打包进行来,因此使用maven-assembly-plugin插件:

    <build><finalName>${artifactId}</finalName><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>

打包命令:

mvn clean package

打包完成,在target目录下生成如下jar包:
在这里插入图片描述

部署

将打包出来的带有*-with-dependencies.jar的jmeter-echo-jar-with-dependencies.jar放到jmeter的lib/ext目录下:
在这里插入图片描述

启动jmeter

如果打的包没问题的话,启动Jmeter,增加Sampler的时候选择Java Request:
在这里插入图片描述
然后选择我们定义的EchoTest:
在这里插入图片描述
运行下看下效果:
在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/536020/

相关文章:

  • 企业网站建设费用 珠海怎样登网站
  • 女的男的做那个视频网站多语言外贸网站制作
  • 门户网站系统建设方案怎么做网站二级页面
  • 哪里可以免费申请空间 注册域名 申请网站北京王府井书店网上商城
  • 福州阿里巴巴网站建设做家纺网站哪家好
  • 上海 食品网站设计seo百度百科
  • 广州微网站建设dmz100镇江建站
  • 汕头网站建设制作报价从做系统后以前的网站打不开了
  • 网站 建设 现状小程序商城开发
  • 一级页面的网站怎么做ui界面设计尺寸
  • 为了 门户网站建设网站设计与网站建设
  • 网站开发郑州做写字楼用哪个网站更好
  • 多个wordpress站点同步大学培训中心网站建设
  • 佛山微信网站建设多少钱常州企业名录黄页
  • 河北住房和城乡建设厅网站驱动四川专业网络推广
  • 成都有哪些做网站的腾讯云主机
  • 现在互联网有什么平台可以做东莞企业网站优化
  • 网站建设与维护 技能网站添加地图
  • 上海 网站建设 外包怎么做dnf辅助网站
  • 宣城市住房和城乡建设局网站首页丹阳市房产信息网
  • 深圳网站建设哪家公司好网站建设的注意事项
  • 嘉定网站公司重庆北碚网站建设
  • 做购物网站网站建设需要的人才
  • 个人网站名称怎么写asp网站变成php
  • 新公司网站设计注意事项网站前置审批
  • 南苑网站建设网站首页设计报价
  • 苗木企业网站建设源代码 园林网站源码程序 苗圃花卉网站制作源码网站首页设计html代码
  • 网站建设应当注意小米应用商店
  • 建设部网站39文件教育主管部门建设的专题资源网站
  • 台州网站建设制作汕头外包公司