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

有什么公司是建设网站的吗交换链接名词解释

有什么公司是建设网站的吗,交换链接名词解释,sem运营,wordpress浮动窗口前言 如果想要压测一些三方组件,比如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/171971/

相关文章:

  • 外国网站打开慢怎么办集团网站设计思路
  • 网站建设费入佛山网站建设
  • 徐州网站制作机构网站开发设计参考文献
  • 用于做网站的软件资产管理公司网站建设费用怎么入账
  • 人人建站网企业在线管理系统
  • 仿站模板网站后台怎么做超链接
  • 如何注册网站主办者宿迁房产网官网备案
  • 网站计费系统怎么做安徽省工程建设信息网职称查询
  • 一家专门做特卖的网站网站建设超链接字体变色代码
  • 免费怎样搭建网站四川网站建设培训学校
  • 做网站要的软件北京网站建设公司华网天下下
  • php 网站开发360网站系统cms
  • 怎么编程做一个小游戏百度seo发帖推广
  • 在线企业建站服务网站建设业务经理岗位职责
  • 大气家具营销型网站源码网页布局技术有哪些
  • 电商网站建设哪家好wordpress广告不显示
  • 有哪些基于网站开发的报表设计器手机兼职赚钱正规平台
  • 南美洲网站后缀做企业手机网站
  • 俐侎族网站建设背景阿里巴巴网站详情页怎么做的
  • 优购物官方网站手机wordpress安装包下载失败
  • 网站开发比较流行的框架做自适应网站注意事项
  • 网站进入沙盒期建设教育局官方网站
  • 本人做静态网站开发wordpress免费教育插件
  • 行牛建站百度推广代理公司广州
  • 怎样查看网站服务商学校网站建设年度总结
  • php技术的网站开发信息流优化师是干什么的
  • 迪庆网站建设企业网站设计流程
  • 网站后台别人制作windows优化大师卸载不掉
  • 用书籍上的文章做网站SEO商标logo生成器
  • 做网站还是软件空调网站模板