日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

实施自定义JMeter采样器

發(fā)布時(shí)間:2023/12/3 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实施自定义JMeter采样器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

隨著我們采用不同的體系結(jié)構(gòu)和實(shí)現(xiàn)方式,對(duì)通用壓力測(cè)試工具的需求不斷增長(zhǎng)。

Apache Jmeter是進(jìn)行負(fù)載測(cè)試時(shí)最著名的工具之一。 它支持許多協(xié)議,例如ftp http tcp,并且可以輕松地用于分布式測(cè)試。

Jmeter還為您提供了一種創(chuàng)建自定義采樣器的簡(jiǎn)便方法。 例如,如果您需要對(duì)HTTP終結(jié)點(diǎn)進(jìn)行負(fù)載測(cè)試,而該終結(jié)點(diǎn)需要用于簽名標(biāo)頭的特定過(guò)程,那么自定義采樣器將派上用場(chǎng)。

目標(biāo)是實(shí)現(xiàn)一個(gè)自定義采樣器項(xiàng)目,該項(xiàng)目將對(duì)一個(gè)簡(jiǎn)單功能進(jìn)行負(fù)載測(cè)試。

在此示例中,我使用gradle 。

group 'com.gkatzioura.jmeter' version '1.0-SNAPSHOT'apply plugin: 'java'sourceCompatibility = 1.6repositories {mavenCentral() }dependencies {compile 'org.apache.jmeter:ApacheJMeter_java:2.11'compile 'org.json:json:20151123'testCompile group: 'junit', name: 'junit', version: '4.11' }task copySample(type:Copy,dependsOn:[build]) {copy {from project.buildDir.getPath()+'/libs/jmeter-sampler-1.0-SNAPSHOT.jar'into 'pathtoyourjmeterinstallation/apache-jmeter-2.13/lib/ext/'} }

我包括對(duì)項(xiàng)目的ApacheJMeter依賴(lài)項(xiàng),因?yàn)椴蓸悠鲗⒈仨殧U(kuò)展AbstractJavaSamplerClient。 copySample任務(wù)會(huì)將jar復(fù)制到所有采樣器所在的Jmeter的lib / ext路徑中。

采樣器將調(diào)用一個(gè)簡(jiǎn)單的函數(shù):

package com.gkatzioura.jmeter;/*** Created by gkatzioura on 30/1/2016.*/ public class FunctionalityForSampling {public String testFunction(String arguement1,String arguement2) throws Exception {if (arguement1.equals(arguement2)) {throw new Exception();}else return arguement1+arguement2;}}

CustomSampler類(lèi)擴(kuò)展AbstractJavaSamplerClient類(lèi)并調(diào)用testFunction。 通過(guò)覆蓋getDefaultParameters函數(shù),我們可以應(yīng)用可與請(qǐng)求一起使用的默認(rèn)參數(shù)。

package com.gkatzioura.jmeter;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 org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.io.Serializable;/*** Created by gkatzioura on 30/1/2016.*/ public class CustomSampler extends AbstractJavaSamplerClient implements Serializable {private static final String METHOD_TAG = "method";private static final String ARG1_TAG = "arg1";private static final String ARG2_TAG = "arg2";private static final Logger LOGGER = LoggerFactory.getLogger(CustomSampler.class);@Overridepublic Arguments getDefaultParameters() {Arguments defaultParameters = new Arguments();defaultParameters.addArgument(METHOD_TAG,"test");defaultParameters.addArgument(ARG1_TAG,"arg1");defaultParameters.addArgument(ARG2_TAG,"arg2");return defaultParameters;}@Overridepublic SampleResult runTest(JavaSamplerContext javaSamplerContext) {String method = javaSamplerContext.getParameter(METHOD_TAG);String arg1 = javaSamplerContext.getParameter(ARG1_TAG);String arg2 = javaSamplerContext.getParameter(ARG2_TAG);FunctionalityForSampling functionalityForSampling = new FunctionalityForSampling();SampleResult sampleResult = new SampleResult();sampleResult.sampleStart();try {String message = functionalityForSampling.testFunction(arg1,arg2);sampleResult.sampleEnd();;sampleResult.setSuccessful(Boolean.TRUE);sampleResult.setResponseCodeOK();sampleResult.setResponseMessage(message);} catch (Exception e) {LOGGER.error("Request was not successfully processed",e);sampleResult.sampleEnd();sampleResult.setResponseMessage(e.getMessage());sampleResult.setSuccessful(Boolean.FALSE);}return sampleResult;}}

編譯完成后,必須將創(chuàng)建的jar復(fù)制到JMeter安裝目錄的lib / ext目錄。 同樣,如果還有更多依賴(lài)項(xiàng)需要導(dǎo)入,則還應(yīng)該將它們復(fù)制到JMeter安裝目錄的lib路徑中。

通過(guò)將Java Sampler添加到JMeter線(xiàn)程組來(lái)完成該過(guò)程之后,我們可以選擇我們的自定義采樣器。

  • 您也可以在此處找到源代碼。

翻譯自: https://www.javacodegeeks.com/2016/02/implement-custom-jmeter-samplers.html

總結(jié)

以上是生活随笔為你收集整理的实施自定义JMeter采样器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。