1. 程式人生 > 實用技巧 >jmeter Java請求

jmeter Java請求

jmeter Java請求

jmeter 裡面的java請求是將自己開發的java程式碼執行在jmeter裡面,這個Java程式碼裡面的Java類一般沒有main方法。

而且這個Java類要繼承 jmeter裡面的AbstractJavaSamplerClient 類。

所以自己開發Java請求寫的Java程式碼一定要將apache-jmeter-3.2\lib\ext\下jar都導進來,

另外還需要導進來D:\apache-jmeter-3.2\lib\junit裡面的test包,還有apache-jmeter-3.2\lib下面的部分包

建立class: JMeterSCFTest 將新建的類extends AbstractJavaSamplerClient 類。 繼承"getDefaultParameters","setupTest","runTest"和"teardownTest"四個方法
public Arguments getDefaultParameters();設定可用引數及的預設值;
public void setupTest(JavaSamplerContext arg0):每個執行緒測試前執行一次,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0):開始測試,從arg0引數可以獲得引數值,執行多次依賴於設定方式;
public void teardownTest(JavaSamplerContext arg0):測試結束時呼叫,只執行一次;

下面開始進行Java請求開發:

一,在idea建立普通的java專案(也可以建立一個maven專案)

然後再點選file-------->project structure

選擇jmeter裡面的jar包進行匯入

有選擇性的將lib下面的jar匯入,也可以全部匯入

二,將log4j2.xml檔案放在專案的classpath裡面(也就是src裡面)

<?xml version="1.0" encoding="UTF-8"?>


<configuration status="error">
    <!--先定義所有的appender
--> <appenders> <!--這個輸出控制檯的配置--> <Console name="Console" target="SYSTEM_OUT"> <!--控制檯只輸出level及以上級別的資訊(onMatch),其他的直接拒絕(onMismatch)--> <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/> <!--這個都知道是輸出日誌的格式
--> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </Console> <!--檔案會打印出所有資訊,這個log每次執行程式會自動清空,由append屬性決定,這個也挺有用的,適合臨時測試用--> <File name="log" fileName="log/test.log" append="false"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </File> <!--這個會打印出所有的資訊,每次大小超過size,則這size大小的日誌會自動存入按年份-月份建立的資料夾下面並進行壓縮,作為存檔--> <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <SizeBasedTriggeringPolicy size="50MB"/> </RollingFile> </appenders> <!--然後定義logger,只有定義了logger並引入的appender,appender才會生效--> <loggers> <!--建立一個預設的root的logger--> <root level="trace"> <appender-ref ref="RollingFile"/> <appender-ref ref="Console"/> </root> </loggers> </configuration>