jmeter+dubbo接口开发
一、在本身安装的Linux机器上面安装zookeeper服务
若是没有wget命令,使用yum进行下载:( yum install wget* -y)
2)tar -zxvf文件名
tar -zxvf zookeeper-3.4.14.tar.gz
3)在zookeeper的主路径下新建下面两个文件名
mkdir {logs,data},这个命令一会儿建立两个文件夹
4)进入到conf目录下,修改zookeeper配置文件(备份一个,防止设置错误,没法恢复)
备份文件命令: cp zoo_sample.cfg zoo.cfg
修改配置文件zoo.cfg:vim zoo.cfg
在配置文件的tickTime=2000行下添加一下内容:
dataDir=/root/data/zookeeper-3.4.14/data
dataLogDir=/root/data/zookeeper-3.4.14/logs
配置集群方式,这须要写多个,ip值就是对应的主机ip,由于是不一样的主机因此端口号能够彻底同样,如图
在以前设置的dataDir中新建myid文件, 写入一个数字, 该数字表示这是第几号server. 该数字必须和zoo.cfg文件中的server.X中的X一一对应.
5)在配置文件vim /etc/profile中添加下面两句
#zookeeper
export ZK_HOME=/data/zookeeper-3.4.14
export PATH=………………:$PATH:$ZK_HOME/bin(path前面路径不要动,添加上后面部分便可)
使用source /etc/profile实时更新修改的配置文件
6)启动
切换到bin目录下启动:./zkServer.sh start
查看是否启动成功: zkServer.sh status
链接 (-Initiating client) :链接本机能够直接使用 zkCli.sh
链接其余地址,使用: zkCli.sh -server ip:2181(2181为默认端口)
而后使用ls /:前提条件:添加环境变量
配置文件说明:
一、myid文件和server.myid 在快照目录下存放的标识本台服务器的文件,他是整个zk集群用来发现彼此的一个重要标识;
二、zoo.cfg 文件是zookeeper配置文件 在conf目录里;
三、log4j.properties文件是zk的日志输出文件 在conf目录里用java写的程序基本上有个共同点日志都用log4j,来进行管理;
二、在idea工具里面完成dubbo消费提供者和消费者模块
1)建立一个发送接口文件SmsService,文件内容以下:
package com.pertest.server;
public interface SmsService {
/*
* 定义一个发短信的接口
* @param content 内容
* @param platform平台,分别对应LIANTONG,YIDONG,DIANXIN
* @return 正常返回发送成功,失败便可,这里为了展现发送的手机号和内容平台,直接把内容再返回去
*/
String sendSms(String mobile, String content, String platform);
}
2)建立SmsServiceImpl文件,该文件模拟是发送信息,文件内容为:
package com.pertest.server.impl;
import com.pertest.server.SmsService;
import org.springframework.stereotype.Service;
@Service
@Component
public class SmsServiceImpl implements SmsService {
public String sendSms(String mobile, String content, String platform) {
try{
Thread.sleep(2000); // 模拟调用短信接口耗时2s
return String.format("发送结果:%s, 手机号码:%s, 内容:%s, 平台:%s", "SUCCESS", mobile,content,platform);
}
catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
3)编辑pom.xml文件,须要将用到的其余依赖包都添加进来
4)在resources下添加日志文件log4j.xml,文件中包含了日志文件的格式
5)在resources下添加日志文件applicationProvider.xml,文件中包含注册地址,注册地址(zookeeper所在的地址),用dubbo协议在28080端口暴露服务,接口的位置,实现bean(对应第二步骤)
6)在建立包com.pertest.main,下建立调用java文件MyMainPertest,文件内容以下:
package com.pertest.main;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyMainPertest {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"applicationProvider.xml"});
context.start();
System.out.println("按任意键退出");
System.in.read();
}}
7)编译,进行调试
8)打Maven包
view--Tool windows----Maven--install---绿色运行键
消费端:
1)将一些依赖包添加进来,包括消费提供端的刚刚打的Maven包
<dependency>
<groupId>com.pertest</groupId>
<artifactId>dubbo_provider</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
2)在resources下添加日志文件log4j2.xml,文件中包含了日志文件的格式
3)在resources下添加日志文件customer.xml,文件中包含调用的信息
4)在建立包com.pertest.main,下建立调用java文件ConsumerApplicationTests这个类名会在jmeter中用到:
1.写一个测试方法,GetStringTest随便取名字
public static String GetStringTest(String mobile, String content, String platform){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:customer.xml");写一个//步骤3对应的文件目录
context.start();
SmsService smsService = (SmsService) context.getBean("demoService");
String s = smsService.sendSms(mobile, content, platform);//消息发送端中编写的那个接口
return s;
}
2.//主函数进行调用
public static void main(String[] args) {
String mobile = "18262988703";
String content = "pertest";//内容
String platform = "test";//平台
String result = GetStringTest(mobile,content,platform); // 调用java接口
System.out.println("+++++++++"+result);
}
3.//jmeter每次执行的内容部分
public SampleResult runTest(JavaSamplerContext args0) {
//setValues(args);
SampleResult sr = new SampleResult();
sr.setSampleLabel("JmeterDubboTest");//在jmeter结果树查看显示的内容
sr.sampleStart(); //事务开始,开始计算时间
try {
String result = GetStringTest(mobile,content,platform); // 调用java接口
sr.setResponseData("From dubbo provider:"+result,null); //输入方法结果
sr.setDataType(SampleResult.TEXT); //输入结果保存内容
System.out.println(result); //在jmeter的控制台终端显示
sr.setSuccessful(true); //设置测试结果true
}
catch (Throwable e) {
sr.setSuccessful(false); //设置测试结果false
e.printStackTrace();//失败进行捕获跟踪
}
finally {
sr.sampleEnd(); // 事务结束,计算时间
}
return sr;
}
4.最后打包:view--Tool windows----Maven--install---绿色运行键
5.若是未制定打包文件的位置,则在src同级的target目录下面
在Maven找包方法:
2)直接复制该信息,并粘贴在pom.xml里面就能够啦
三、修改为jmeter的参数化脚本,并在jmeter里面完成调用