扩展功能
支持DNS服务压力测试。支持多域名配置;支持多类型请求类型查询;支持多用户并发请求;支持DNS服务器IP和端口配置。
开发环境 64位window系统,1.8版本JDK,4.5版本eclipse开发工具.
准备环境
JDK安装 安装JDK(1.8版本),配置环境变量JAVA_HOME.进入DOS,输出java -version 检查JDK安装是否成功。
eclipse安装
安装4.5以上eclipse版本。 jmeter最新源码下载 下载地址: http://jmeter.apache.org/
eclipse建立java project
1、打开 eclipse,新建java project. 备注:项目已经创建,提示 A project with this name already exists.
2、从文件系统导入源码到jmeter工程。 3、classpath配置。 关闭eclipse,到工程根目录下,把eclipse.classpath配置复制到.classpath配置文件中。
4、依赖包下载。 在Java项目的根目录下执行ant download_jars或者把同版本可运行的jmeter程序lib下面的文件复制到jmeter 工程目录下面的lib下面。
5、程序运行配置 打开eclipse,进入newdriver类,启动java applaction 。第一启动会失败,进行run configurations 配置 argument 的工作目录为:${workspace_loc:jmeter/bin}
6、再次启动工程可以运行OK。
DNS代码开发。
1、源文件夹建立 新建src/protocol/dns源码文件夹。 2、DNS包建立 在DNS源码文件夹分别建立org.apache.jmeter.protocol.dns.config.gui、org.apache.jmeter.protocol.dns.control.gui、org.apache.jmeter.protocol.dns.sampler用于DNS参数配置、参数下发、DNS业务实现。
3、dns gui conf 组件开发。 新建如下类:
package org.apache.jmeter.protocol.dns.config.gui; import org.apache.jmeter.config.gui.AbstractConfigGui; import org.apache.jmeter.testelement.TestElement; public class DnsConfigGui extends AbstractConfigGui{ @Override public String getLabelResource() { // TODO Auto-generated method stub return null; } @Override public TestElement createTestElement() { // TODO Auto-generated method stub return null; } @Override public void modifyTestElement(TestElement element) { // TODO Auto-generated method stub } }4、dns test Sampler gui开发。
新建如下类:
package org.apache.jmeter.protocol.dns.control.gui; import org.apache.jmeter.samplers.gui.AbstractSamplerGui; import org.apache.jmeter.testelement.TestElement; public class DnsTestSamplerGui extends AbstractSamplerGui{ @Override public String getLabelResource() { // TODO Auto-generated method stub return null; } @Override public TestElement createTestElement() { // TODO Auto-generated method stub return null; } @Override public void modifyTestElement(TestElement element) { // TODO Auto-generated method stub } }5、dns sampler开发。 新建如下类:
package org.apache.jmeter.protocol.dns.sampler; import org.apache.jmeter.samplers.AbstractSampler; import org.apache.jmeter.samplers.Entry; import org.apache.jmeter.samplers.Interruptible; import org.apache.jmeter.samplers.SampleResult; public class DnsSampler extends AbstractSampler implements Interruptible{ @Override public SampleResult sample(Entry e) { // TODO Auto-generated method stub return null; } @Override public boolean interrupt() { // TODO Auto-generated method stub return false; } }开发完成GUI如下: